diff --git a/program/filters.py b/program/filters.py index 60bbce5de6a0d766cbbc3bf807ac39d35d551041..af8421a919ffd1607b6c29dff3c70cec61654275 100644 --- a/program/filters.py +++ b/program/filters.py @@ -57,6 +57,10 @@ class ShowOrderingFilter(filters.OrderingFilter): class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet): + ids = IntegerInFilter( + field_name="id", + help_text="Return only shows matching the specified id(s).", + ) order = ShowOrderingFilter( fields=["name", "slug", "id", "is_active", "is_owner", "updated_at", "updated_by"], help_text="Order shows by the given field(s).", @@ -131,6 +135,7 @@ class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet): class Meta: model = models.Show fields = [ + "ids", "order", "category_ids", "category_slug", @@ -150,6 +155,10 @@ class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet): class ScheduleFilterSet(filters.FilterSet): + ids = IntegerInFilter( + field_name="id", + help_text="Return only schedules matching the specified id(s).", + ) show_ids = IntegerInFilter( field_name="show", help_text="Return only schedules that belong to the specified show(s).", @@ -171,6 +180,10 @@ class ScheduleFilterSet(filters.FilterSet): class TimeSlotFilterSet(filters.FilterSet): + ids = IntegerInFilter( + field_name="id", + help_text="Return only timeslots matching the specified id(s).", + ) order = filters.OrderingFilter( fields=[field.name for field in models.TimeSlot._meta.get_fields()] ) @@ -237,6 +250,7 @@ class TimeSlotFilterSet(filters.FilterSet): class Meta: model = models.TimeSlot fields = [ + "ids", "order", "start", "end",