From ed684a836ce8528598453e5ec092d846765874a9 Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Wed, 17 Jul 2024 20:52:37 -0400
Subject: [PATCH] refactor: reuse the existing Timesolt serializer, exclude the
 memo field

---
 program/serializers.py | 29 +++--------------------------
 1 file changed, 3 insertions(+), 26 deletions(-)

diff --git a/program/serializers.py b/program/serializers.py
index c041761d..579d307c 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -1389,32 +1389,9 @@ class CalendarSchemaSerializer(serializers.Serializer):
         def link_types(self):
             return LinkType.objects.all()
 
-    class CalendarTimeslotSerializer(serializers.ModelSerializer):
-        note_id = serializers.SerializerMethodField()
-        show_id = serializers.SerializerMethodField()
-        schedule_id = serializers.PrimaryKeyRelatedField(
-            queryset=Schedule.objects.all(),
-            required=False,
-            source="schedule",
-        )
-        repetition_of_id = serializers.PrimaryKeyRelatedField(
-            allow_null=True,
-            queryset=TimeSlot.objects.all(),
-            required=False,
-            source="repetition_of",
-        )
-
-        class Meta:
-            exclude = ("memo", "schedule", "repetition_of")
-            model = TimeSlot
-
-        @staticmethod
-        def get_show_id(obj) -> int:
-            return obj.schedule.show.id
-
-        @staticmethod
-        def get_note_id(obj) -> int:
-            return obj.note.id
+    class CalendarTimeslotSerializer(TimeSlotSerializer):
+        class Meta(TimeSlotSerializer.Meta):
+            fields = [f for f in TimeSlotSerializer.Meta.fields if f != "memo"]
 
     shows = ShowSerializer(many=True)
     timeslots = CalendarTimeslotSerializer(many=True)
-- 
GitLab