From 95f3046196eb4080e9783e83ec5789e1408278ab Mon Sep 17 00:00:00 2001 From: gitea Date: Sun, 6 Apr 2025 19:16:13 +0000 Subject: [PATCH] added migration for vvow_* einweisungs fields in res.partner --- models/ows_models.py | 51 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/models/ows_models.py b/models/ows_models.py index 0f846ab..5324764 100644 --- a/models/ows_models.py +++ b/models/ows_models.py @@ -157,7 +157,58 @@ class ResPartner(models.Model): 'sticky': False, } } + + @api.model + def migrate_machine_access_from_old_fields(self): + """ + Migriert alte vvow_* Boolean-Felder in strukturierte ows.machine.access Einträge. + """ + mapping = [ + # (altes Feld, machine.code) + ('vvow_holz_sander', 'bandschleifer'), + ('vvow_holz_felder_bandsaw', 'bandsaege_holz'), + ('vvow_holz_felder_jointer', 'dickenhobel'), + ('vvow_holz_felder_mill', 'felder_fraese'), + ('vvow_holz_felder_tablesaw', 'formatkreissaege'), + ('vvow_holz_mill', 'tischfraese'), + ('vvow_holz_lathe', 'drechselbank'), + ('vvow_holz_domino', 'festool_domino'), + ('vvow_holz_duoduebler', 'maffel_duo'), + ('vvow_holz_lamello', 'lamello_zeta_p2'), + ('vvow_fablab_laser_sabko', 'sabako_laser'), + ('vvow_fablab_3dprint_delta', '3d_delta'), + ('vvow_fablab_3dprint_prusa', 'prusa'), + ('vvow_fablab_3dprint_prusa_mmu', 'prusa_mmu'), + ('vvow_fablab_cnc_beamicon', 'cnc_beamicon'), + ('vvow_metall_welding_mig', 'mig_mag'), + ('vvow_metall_welding_wig', 'wig'), + ('vvow_metall_welding_misc', 'schweissen_allgemein'), + ('vvow_metall_lathe', 'drehbank'), + ('vvow_metall_bandsaw', 'bandsaege_metall'), + ('vvow_metall_mill_fp2', 'fraese'), + ('vvow_metall_bende', 'abkantbank'), + ('vvow_metall_chop_saw', 'kreissaege_metall'), + ] + count = 0 + for partner in self.search([]): + for field_name, machine_code in mapping: + if getattr(partner, field_name, False): + machine = self.env['ows.machine'].search([('code', '=', machine_code)], limit=1) + if machine: + already_exists = self.env['ows.machine.access'].search_count([ + ('partner_id', '=', partner.id), + ('machine_id', '=', machine.id), + ]) + if not already_exists: + self.env['ows.machine.access'].create({ + 'partner_id': partner.id, + 'machine_id': machine.id, + 'date_granted': partner.create_date.date() if partner.create_date else date.today(), + }) + count += 1 + _logger.info(f"[OWS Migration] {count} Maschinenfreigaben aus alten Feldern erstellt.") + self.env.cr.commit() class OwsUser(models.Model): _name = 'ows.user'