mirror of
https://github.com/pretix/pretix.git
synced 2026-08-29 13:44:40 +00:00
API: Add stable and configurable filtering to events and organizers endpoints
This commit is contained in:
@@ -116,6 +116,9 @@ Endpoints
|
|||||||
:query is_future: If set to ``true`` (``false``), only events that happen currently or in the future are (not) returned. Event series are never (always) returned.
|
:query is_future: If set to ``true`` (``false``), only events that happen currently or in the future are (not) returned. Event series are never (always) returned.
|
||||||
:query is_past: If set to ``true`` (``false``), only events that are over are (not) returned. Event series are never (always) returned.
|
:query is_past: If set to ``true`` (``false``), only events that are over are (not) returned. Event series are never (always) returned.
|
||||||
:query ends_after: If set to a date and time, only events that happen during of after the given time are returned. Event series are never returned.
|
:query ends_after: If set to a date and time, only events that happen during of after the given time are returned. Event series are never returned.
|
||||||
|
:query string ordering: Manually set the ordering of results. Valid fields to be used are ``date_from`` and
|
||||||
|
``slug``. Keep in mind that ``date_from`` of event series does not really tell you anything.
|
||||||
|
Default: ``slug``.
|
||||||
:param organizer: The ``slug`` field of a valid organizer
|
:param organizer: The ``slug`` field of a valid organizer
|
||||||
:statuscode 200: no error
|
:statuscode 200: no error
|
||||||
:statuscode 401: Authentication failure
|
:statuscode 401: Authentication failure
|
||||||
|
|||||||
@@ -56,6 +56,8 @@ Endpoints
|
|||||||
}
|
}
|
||||||
|
|
||||||
:query page: The page number in case of a multi-page result set, default is 1
|
:query page: The page number in case of a multi-page result set, default is 1
|
||||||
|
:query string ordering: Manually set the ordering of results. Valid fields to be used are ``slug`` and
|
||||||
|
``name``. Default: ``slug``.
|
||||||
:statuscode 200: no error
|
:statuscode 200: no error
|
||||||
:statuscode 401: Authentication failure
|
:statuscode 401: Authentication failure
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,8 @@ class EventViewSet(viewsets.ModelViewSet):
|
|||||||
lookup_url_kwarg = 'event'
|
lookup_url_kwarg = 'event'
|
||||||
permission_classes = (EventCRUDPermission,)
|
permission_classes = (EventCRUDPermission,)
|
||||||
filter_backends = (DjangoFilterBackend, filters.OrderingFilter)
|
filter_backends = (DjangoFilterBackend, filters.OrderingFilter)
|
||||||
|
ordering = ('slug',)
|
||||||
|
ordering_fields = ('date_from', 'slug')
|
||||||
filterset_class = EventFilter
|
filterset_class = EventFilter
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from rest_framework import viewsets
|
from rest_framework import filters, viewsets
|
||||||
|
|
||||||
from pretix.api.models import OAuthAccessToken
|
from pretix.api.models import OAuthAccessToken
|
||||||
from pretix.api.serializers.organizer import OrganizerSerializer
|
from pretix.api.serializers.organizer import OrganizerSerializer
|
||||||
@@ -10,6 +10,9 @@ class OrganizerViewSet(viewsets.ReadOnlyModelViewSet):
|
|||||||
queryset = Organizer.objects.none()
|
queryset = Organizer.objects.none()
|
||||||
lookup_field = 'slug'
|
lookup_field = 'slug'
|
||||||
lookup_url_kwarg = 'organizer'
|
lookup_url_kwarg = 'organizer'
|
||||||
|
filter_backends = (filters.OrderingFilter,)
|
||||||
|
ordering = ('slug',)
|
||||||
|
ordering_fields = ('name', 'slug')
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
if self.request.user.is_authenticated:
|
if self.request.user.is_authenticated:
|
||||||
|
|||||||
Reference in New Issue
Block a user