summaryrefslogtreecommitdiff
path: root/archaeological_finds/migrations/0123_remove_old_conservatory_state.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/migrations/0123_remove_old_conservatory_state.py')
-rw-r--r--archaeological_finds/migrations/0123_remove_old_conservatory_state.py56
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',
+ ),
+ ]