diff options
-rw-r--r-- | patchwork/api/event.py | 2 | ||||
-rw-r--r-- | patchwork/tests/api/test_event.py | 18 | ||||
-rw-r--r-- | releasenotes/notes/api-order-events-by-date-7484164761c5231b.yaml | 5 |
3 files changed, 24 insertions, 1 deletions
diff --git a/patchwork/api/event.py b/patchwork/api/event.py index c0d973d..e6d467d 100644 --- a/patchwork/api/event.py +++ b/patchwork/api/event.py @@ -77,7 +77,7 @@ class EventList(ListAPIView): serializer_class = EventSerializer filter_class = filterset_class = EventFilterSet page_size_query_param = None # fixed page size - ordering_fields = () + ordering_fields = ('date',) ordering = '-date' def get_queryset(self): diff --git a/patchwork/tests/api/test_event.py b/patchwork/tests/api/test_event.py index 8816538..bff8f40 100644 --- a/patchwork/tests/api/test_event.py +++ b/patchwork/tests/api/test_event.py @@ -149,6 +149,24 @@ class TestEventAPI(utils.APITestCase): resp = self.client.get(self.api_url(), {'series': 999999}) self.assertEqual(0, len(resp.data)) + def test_order_by_date_default(self): + """Assert the default ordering is by date descending.""" + self._create_events() + + resp = self.client.get(self.api_url()) + events = Event.objects.order_by("-date").all() + for api_event, event in zip(resp.data, events): + self.assertEqual(api_event["id"], event.id) + + def test_order_by_date_ascending(self): + """Assert the default ordering is by date descending.""" + self._create_events() + + resp = self.client.get(self.api_url(), {'order': 'date'}) + events = Event.objects.order_by("date").all() + for api_event, event in zip(resp.data, events): + self.assertEqual(api_event["id"], event.id) + def test_create(self): """Ensure creates aren't allowed""" user = create_maintainer() diff --git a/releasenotes/notes/api-order-events-by-date-7484164761c5231b.yaml b/releasenotes/notes/api-order-events-by-date-7484164761c5231b.yaml new file mode 100644 index 0000000..5d5328d --- /dev/null +++ b/releasenotes/notes/api-order-events-by-date-7484164761c5231b.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Allow ordering events from the events API by date. This can be done by + adding ``order=date`` or ``order=-date`` (the default) parameters. |