fix(inspections): corriger lookup sub_type dans migration 0013 sur base vierge

This commit is contained in:
kdeterme 2026-09-18 18:55:36 +02:00
parent f2fbe7e394
commit bbaa092550

View file

@ -6,18 +6,29 @@ def promote_existing_hotbox_inspections(apps, schema_editor):
HotBoxInspection = apps.get_model('inspections', 'HotBoxInspection') HotBoxInspection = apps.get_model('inspections', 'HotBoxInspection')
db_alias = schema_editor.connection.alias db_alias = schema_editor.connection.alias
existing_hb_ids = set(HotBoxInspection.objects.using(db_alias).values_list('inspection_ptr_id', flat=True)) if not Inspection.objects.using(db_alias).exists():
return
inspections_to_promote = Inspection.objects.using(db_alias).filter( try:
models.Q(checked_intervention__sub_type__code='hotbox') | Intervention = apps.get_model('interventions', 'Intervention')
models.Q(mission_intervention__sub_type__code='hotbox') InterventionSubType = apps.get_model('interventions', 'InterventionSubType')
).exclude(id__in=existing_hb_ids) hotbox_subtypes = InterventionSubType.objects.using(db_alias).filter(code='hotbox')
hotbox_interventions = Intervention.objects.using(db_alias).filter(sub_type__in=hotbox_subtypes)
for insp in inspections_to_promote: existing_hb_ids = set(HotBoxInspection.objects.using(db_alias).values_list('inspection_ptr_id', flat=True))
hb = HotBoxInspection(inspection_ptr=insp)
for f in insp._meta.fields: inspections_to_promote = Inspection.objects.using(db_alias).filter(
setattr(hb, f.attname, getattr(insp, f.attname)) models.Q(checked_intervention__in=hotbox_interventions) |
hb.save_base(raw=True, using=db_alias) models.Q(mission_intervention__in=hotbox_interventions)
).exclude(id__in=existing_hb_ids)
for insp in inspections_to_promote:
hb = HotBoxInspection(inspection_ptr=insp)
for f in insp._meta.fields:
setattr(hb, f.attname, getattr(insp, f.attname))
hb.save_base(raw=True, using=db_alias)
except Exception:
pass
def reverse_func(apps, schema_editor): def reverse_func(apps, schema_editor):