diff options
Diffstat (limited to 'archaeological_finds/migrations/0123_remove_old_conservatory_state.py')
-rw-r--r-- | archaeological_finds/migrations/0123_remove_old_conservatory_state.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/archaeological_finds/migrations/0123_remove_old_conservatory_state.py b/archaeological_finds/migrations/0123_remove_old_conservatory_state.py new file mode 100644 index 000000000..91a6fd4e6 --- /dev/null +++ b/archaeological_finds/migrations/0123_remove_old_conservatory_state.py @@ -0,0 +1,56 @@ +# 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', + ), + ] |