From d7db96236bfecba0e3288cefcdd837447cf203e7 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Fri, 29 Mar 2024 16:18:38 -0400
Subject: [PATCH] feat: add migration to set contributors, language & topic on
 notes

---
 .../0086_set_contributors_language_topic.py   | 42 +++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 program/migrations/0086_set_contributors_language_topic.py

diff --git a/program/migrations/0086_set_contributors_language_topic.py b/program/migrations/0086_set_contributors_language_topic.py
new file mode 100644
index 00000000..240d3782
--- /dev/null
+++ b/program/migrations/0086_set_contributors_language_topic.py
@@ -0,0 +1,42 @@
+# Generated by Django 4.2.11 on 2024-03-29 18:40
+
+from django.db import migrations
+
+
+def set_contributors(apps, _):
+    Note = apps.get_model("program", "Note")
+
+    for note in Note.objects.filter(contributors=None).exclude(
+        timeslot__schedule__show__hosts=None
+    ):
+        note.contributors.set(note.timeslot.schedule.show.hosts.values_list("id", flat=True))
+        note.save()
+
+
+def set_language(apps, _):
+    Note = apps.get_model("program", "Note")
+
+    for note in Note.objects.filter(language=None).exclude(
+        timeslot__schedule__show__language=None
+    ):
+        note.language.set(note.timeslot.schedule.show.language.values_list("id", flat=True))
+        note.save()
+
+
+def set_topic(apps, _):
+    Note = apps.get_model("program", "Note")
+
+    for note in Note.objects.filter(topic=None).exclude(timeslot__schedule__show__topic=None):
+        note.topic.set(note.timeslot.schedule.show.topic.values_list("id", flat=True))
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ("program", "0085_attach_notes"),
+    ]
+
+    operations = [
+        migrations.RunPython(code=set_contributors),
+        migrations.RunPython(code=set_language),
+        migrations.RunPython(code=set_topic),
+    ]
-- 
GitLab