From 4aaf5320830a046f2d27b49fd014621fe0ac75e6 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Wed, 18 Oct 2023 16:55:32 -0400
Subject: [PATCH] fix: move language and topic from timeslot to note

---
 ...language_remove_timeslot_topic_and_more.py | 32 +++++++++++++++++++
 program/models.py                             |  4 +--
 2 files changed, 34 insertions(+), 2 deletions(-)
 create mode 100644 program/migrations/0075_remove_timeslot_language_remove_timeslot_topic_and_more.py

diff --git a/program/migrations/0075_remove_timeslot_language_remove_timeslot_topic_and_more.py b/program/migrations/0075_remove_timeslot_language_remove_timeslot_topic_and_more.py
new file mode 100644
index 00000000..b86403c0
--- /dev/null
+++ b/program/migrations/0075_remove_timeslot_language_remove_timeslot_topic_and_more.py
@@ -0,0 +1,32 @@
+# Generated by Django 4.2.6 on 2023-10-18 20:16
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+    dependencies = [
+        ("program", "0074_alter_note_slug"),
+    ]
+
+    operations = [
+        migrations.RemoveField(
+            model_name="timeslot",
+            name="language",
+        ),
+        migrations.RemoveField(
+            model_name="timeslot",
+            name="topic",
+        ),
+        migrations.AddField(
+            model_name="note",
+            name="language",
+            field=models.ManyToManyField(
+                blank=True, related_name="episodes", to="program.language"
+            ),
+        ),
+        migrations.AddField(
+            model_name="note",
+            name="topic",
+            field=models.ManyToManyField(blank=True, related_name="episodes", to="program.topic"),
+        ),
+    ]
diff --git a/program/models.py b/program/models.py
index 9080e4f3..c5aab086 100644
--- a/program/models.py
+++ b/program/models.py
@@ -394,7 +394,6 @@ class TimeSlotManager(models.Manager):
 
 class TimeSlot(models.Model):
     end = models.DateTimeField()
-    language = models.ManyToManyField(Language, blank=True, related_name="timeslots")
     memo = models.TextField(blank=True)
     playlist_id = models.IntegerField(null=True)
     repetition_of = models.ForeignKey(
@@ -402,7 +401,6 @@ class TimeSlot(models.Model):
     )
     schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE, related_name="timeslots")
     start = models.DateTimeField()
-    topic = models.ManyToManyField(Topic, blank=True, related_name="timeslots")
 
     objects = TimeSlotManager()
 
@@ -442,6 +440,7 @@ class Note(models.Model):
     created_at = models.DateTimeField(auto_now_add=True)
     created_by = models.CharField(max_length=150)
     image = models.ForeignKey(Image, null=True, on_delete=models.CASCADE, related_name="notes")
+    language = models.ManyToManyField(Language, blank=True, related_name="episodes")
     owner = models.ForeignKey(User, on_delete=models.CASCADE, related_name="notes", default=1)
     playlist = models.TextField(blank=True)
     # TODO: this requires show in the model and an unique_together constraint. Do we need this?
@@ -450,6 +449,7 @@ class Note(models.Model):
     tags = models.JSONField(blank=True, default=list)
     timeslot = models.OneToOneField(TimeSlot, null=True, on_delete=models.SET_NULL, unique=True)
     title = models.CharField(max_length=128)
+    topic = models.ManyToManyField(Topic, blank=True, related_name="episodes")
     updated_at = models.DateTimeField(auto_now=True, blank=True, null=True)
     updated_by = models.CharField(blank=True, default="", max_length=150)
 
-- 
GitLab