From a19be9168510c78ae4f90faf87d8a3a1acce3dd4 Mon Sep 17 00:00:00 2001 From: gitea Date: Fri, 2 May 2025 08:13:35 +0000 Subject: [PATCH] alle nicht odoo nutzer sind als Kontakt archiviert --- models/ows_models.py | 25 +++++++++++++++++++++++++ post_init_hook.py | 7 +++++++ 2 files changed, 32 insertions(+) diff --git a/models/ows_models.py b/models/ows_models.py index 9fb1f8b..d199185 100644 --- a/models/ows_models.py +++ b/models/ows_models.py @@ -310,6 +310,31 @@ class ResPartner(models.Model): _logger.info(f"[OWS Migration] ✅ Maschinenfreigaben erstellt: {count_created}") self.env.cr.commit() + + @api.model + def archive_partners_without_users(self): + """ + Archiviert alle Partner (res.partner), die keine Benutzer (res.users) sind. + """ + Partner = self.env['res.partner'] + User = self.env['res.users'] + + # IDs aller Partner, die ein Benutzerkonto haben + user_partner_ids = User.search([]).mapped('partner_id').ids + + # Alle Partner ohne Benutzerkonto + partners_to_archive = Partner.search([ + ('id', 'not in', user_partner_ids), + ('active', '=', True), + ]) + + count = len(partners_to_archive) + partners_to_archive.write({'active': False}) + for p in partners_to_archive: + _logger.debug(f"[OWS] Archiviert Partner: {p.name} (ID {p.id})") + _logger.info(f"[OWS] Archiviert {count} Partner ohne Benutzerkonto.") + self.env.cr.commit() + class OwsUser(models.Model): _name = 'ows.user' diff --git a/post_init_hook.py b/post_init_hook.py index 7124c78..56e9eb4 100644 --- a/post_init_hook.py +++ b/post_init_hook.py @@ -36,6 +36,13 @@ def run_migration(cr, registry): except Exception as e: _logger.error(f"[OWS] Fehler bei Testsystem-Anpassung der Mitarbeiter: {e}") + # Archivierung aller Kontakte die keinen User Account haben + try: + env['res.partner'].archive_partners_without_users() + _logger.info("[OWS] Testsystem-Anpassung der Kontakte abgeschlossen.") + except Exception as e: + _logger.error(f"[OWS] Fehler bei Testsystem-Anpassung der Kontakte: {e}") + #import_machine_products.run_import(cr, registry)