fix(inspections): corriger lookup sub_type dans migration 0013 sur base vierge
This commit is contained in:
parent
f2fbe7e394
commit
bbaa092550
1 changed files with 21 additions and 10 deletions
|
|
@ -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):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue