# Generated by Django 2.2.24 on 2024-04-18 14:24 import sys from django.db import migrations, models from ishtar_common.utils import BColors def migrate_conservatory_state(apps, __): Find = apps.get_model("archaeological_finds", "Find") q = Find.objects.filter(conservatory_state__isnull=False) sys.stdout.write("\n") total = q.count() for idx, find in enumerate(q.all()): sys.stdout.write(f"\r{BColors.OKBLUE}→ Migration {idx}/{total}{BColors.ENDC}") find.conservatory_states.add(find.conservatory_state) print(BColors.format("OKGREEN", f"\r* Conservatory state changed for {q.count()} find(s).")) # migrate importers ImporterDefault = apps.get_model("ishtar_common", "ImporterDefault") for default in ImporterDefault.objects.filter(target__contains='conservatory_state').all(): default.target = default.target.replace("conservatory_state", "conservatory_states") default.save() ImporterDuplicateField = apps.get_model("ishtar_common", "ImporterDuplicateField") for dup in ImporterDuplicateField.objects.filter(field_name__contains='conservatory_state').all(): dup.field_name = dup.field_name.replace("conservatory_state", "conservatory_states") dup.save() ImportTarget = apps.get_model("ishtar_common", "ImportTarget") for targ in ImportTarget.objects.filter(target__contains='conservatory_state').all(): targ.target = targ.target.replace("conservatory_state", "conservatory_states") targ.save() FormaterType = apps.get_model("ishtar_common", "FormaterType") for f in FormaterType.objects.filter(options__contains='ConservatoryState').all(): f.many_split = '&' f.save() class Migration(migrations.Migration): dependencies = [ ('archaeological_finds', '0122_conservatory_states_m2m'), ] operations = [ migrations.RunPython(migrate_conservatory_state), migrations.RemoveField( model_name='find', name='conservatory_state', ), migrations.RemoveField( model_name='historicalfind', name='conservatory_state', ), ]