added migration for vvow_* einweisungs fields in res.partner

This commit is contained in:
gitea 2025-04-06 19:16:13 +00:00
parent 0454aebc95
commit 95f3046196

View File

@ -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'