From fe22b9ae1d679baccf52a52b47fa474a4b076c51 Mon Sep 17 00:00:00 2001 From: Chris Pastl <chris@crispybits.app> Date: Wed, 17 Apr 2024 16:29:27 +0200 Subject: [PATCH] Fix: add PlayoutFilterSet for doc autogen --- program/filters.py | 25 +++++++++++++++++++++++++ program/views.py | 9 ++++----- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/program/filters.py b/program/filters.py index dc2c841a..54e3cc8e 100644 --- a/program/filters.py +++ b/program/filters.py @@ -280,3 +280,28 @@ class ActiveFilterSet(StaticFilterHelpTextMixin, filters.FilterSet): fields = [ "is_active", ] + + +class PlayoutFilterSet(filters.FilterSet): + start = filters.DateFilter( + field_name="start", + lookup_expr="gte", + help_text="Returns timeslots that start at or after the specified datetime (default: today).", + ) + end = filters.DateFilter( + field_name="end", + lookup_expr="lte", + help_text="Returns timeslots that end at or before the specified datetime (default: one week after start date).", + ) + include_virtual = filters.BooleanFilter( + field_name="include_virtual", + help_text="Include virtual timeslots (default: false)." + ) + + class Meta: + model = models.TimeSlot + fields = [ + "start", + "end", + "include_virtual" + ] diff --git a/program/views.py b/program/views.py index dfd25ac3..4e97a539 100644 --- a/program/views.py +++ b/program/views.py @@ -193,11 +193,7 @@ class APIDayScheduleViewSet( list=extend_schema( summary="List scheduled playout.", description=( - "Returns a list of the scheduled playout." - "Expects parameters `start` (date), `end` (date), and `includeVirtual` (boolean)." - "- `start` is today by default." - "- `end` is one week after the start date by default." - "- `includeVirtual` is false by default." + "Returns a list of the scheduled playout. " "The schedule will include virtual timeslots to fill unscheduled gaps if requested." ), ), @@ -207,6 +203,9 @@ class APIPlayoutViewSet( viewsets.GenericViewSet, ): queryset = TimeSlot.objects.all() + serializer_class = TimeSlotSerializer + filter_backends = [DjangoFilterBackend] + filterset_class = filters.PlayoutFilterSet def list(self, request, *args, **kwargs): """ -- GitLab