diff --git a/program/serializers.py b/program/serializers.py index 4dad927f0eecdf1538a4682c0b803d8c5989991c..c041761dbbe20b05ccce393764d11b420776f7f4 100644 --- a/program/serializers.py +++ b/program/serializers.py @@ -1389,8 +1389,35 @@ 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 + shows = ShowSerializer(many=True) - timeslots = TimeSlotSerializer(many=True) + timeslots = CalendarTimeslotSerializer(many=True) profiles = ProfileSerializer(many=True) categories = CategorySerializer(many=True) funding_categories = FundingCategorySerializer(many=True)