From 8de91024f4a06a78aa8d8e74f6ac66c2ce2e26c2 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Tue, 5 Sep 2023 22:16:43 -0400
Subject: [PATCH] feat: add languageIds and topicIds

---
 program/serializers.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/program/serializers.py b/program/serializers.py
index c4006ef5..9a8cded7 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -717,6 +717,13 @@ class ScheduleDryRunResponseSerializer(serializers.Serializer):
 
 
 class TimeSlotSerializer(serializers.ModelSerializer):
+    language_ids = serializers.PrimaryKeyRelatedField(
+        allow_null=True,
+        many=True,
+        queryset=Language.objects.all(),
+        required=False,
+        source="language",
+    )
     note_id = serializers.SerializerMethodField()
     show_id = serializers.SerializerMethodField()
     schedule_id = serializers.PrimaryKeyRelatedField(
@@ -727,6 +734,9 @@ class TimeSlotSerializer(serializers.ModelSerializer):
         queryset=TimeSlot.objects.all(),
         required=False,
     )
+    topic_ids = serializers.PrimaryKeyRelatedField(
+        allow_null=True, many=True, queryset=Topic.objects.all(), required=False, source="topic"
+    )
 
     class Meta:
         model = TimeSlot
@@ -739,9 +749,11 @@ class TimeSlotSerializer(serializers.ModelSerializer):
             "start",
         )
         fields = (
+            "language_ids",
             "memo",
             "playlist_id",
             "repetition_of_id",
+            "topic_ids",
         ) + read_only_fields
 
     @staticmethod
@@ -759,6 +771,10 @@ class TimeSlotSerializer(serializers.ModelSerializer):
         instance.memo = validated_data.get("memo", instance.memo)
         instance.repetition_of = validated_data.get("repetition_of_id", instance.repetition_of)
         instance.playlist_id = validated_data.get("playlist_id", instance.playlist_id)
+
+        instance.language.set(validated_data.get("language", []))
+        instance.topic.set(validated_data.get("topic", []))
+
         instance.save()
         return instance
 
-- 
GitLab