Skip to content
Snippets Groups Projects
Commit 9e12fd40 authored by Konrad Mohrfeldt's avatar Konrad Mohrfeldt :koala:
Browse files

feat(REST): add order filter to /shows endpoint

The dashboard must be able to sort shows.
parent d72df7c1
No related branches found
No related tags found
No related merge requests found
...@@ -39,6 +39,10 @@ class IntegerInFilter(filters.BaseInFilter): ...@@ -39,6 +39,10 @@ class IntegerInFilter(filters.BaseInFilter):
class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet): class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet):
order = filters.OrderingFilter(
fields=["name", "id", "is_active", "is_owner"],
help_text="Order shows by the given field(s).",
)
category_ids = IntegerInFilter( category_ids = IntegerInFilter(
field_name="category", field_name="category",
help_text="Return only shows of the given category or categories.", help_text="Return only shows of the given category or categories.",
...@@ -96,6 +100,11 @@ class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet): ...@@ -96,6 +100,11 @@ class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet):
help_text="Return only shows of the given type slug.", help_text="Return only shows of the given type slug.",
) )
def filter_queryset(self, queryset):
_id = getattr(self.request.user, "id", None)
queryset = queryset.annotate(is_owner=Q(owners=_id))
return super().filter_queryset(queryset)
def filter_active(self, queryset: QuerySet, name: str, value: bool): def filter_active(self, queryset: QuerySet, name: str, value: bool):
# Filter currently running shows # Filter currently running shows
# Get currently running schedules to filter by first # Get currently running schedules to filter by first
...@@ -127,6 +136,7 @@ class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet): ...@@ -127,6 +136,7 @@ class ShowFilterSet(StaticFilterHelpTextMixin, filters.FilterSet):
class Meta: class Meta:
model = models.Show model = models.Show
fields = [ fields = [
"order",
"category_ids", "category_ids",
"category_slug", "category_slug",
"host_ids", "host_ids",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment