]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
REST: Integrate ordering
authorStephen Finucane <stephen@that.guru>
Fri, 30 Dec 2016 12:14:19 +0000 (12:14 +0000)
committerStephen Finucane <stephen@that.guru>
Sun, 22 Jan 2017 21:49:35 +0000 (21:49 +0000)
Order by way of the 'order' parameter on many endpoints.

Signed-off-by: Stephen Finucane <stephen@that.guru>
patchwork/api/cover.py
patchwork/api/patch.py
patchwork/api/person.py
patchwork/api/project.py
patchwork/api/series.py
patchwork/api/user.py
patchwork/settings/base.py

index 0b6b546cb3191e12097a897e2a50dfcb823433b3..8b8d47b1a69d28284f9e40a30a5a023ac9bc0c72 100644 (file)
@@ -69,6 +69,7 @@ class CoverLetterList(ListAPIView):
     serializer_class = CoverLetterListSerializer
     filter_class = CoverLetterFilter
     search_fields = ('name',)
+    ordering_fields = ('id', 'name', 'date', 'submitter')
 
     def get_queryset(self):
         qs = CoverLetter.objects.all().prefetch_related('series')\
index fc5a0ee1ac856b04b9ebe8d80775c66c7086b86f..e8fb0ef3cd804e038c202e66f8e24101c8aadf4b 100644 (file)
@@ -120,6 +120,8 @@ class PatchList(ListAPIView):
     serializer_class = PatchListSerializer
     filter_class = PatchFilter
     search_fields = ('name',)
+    ordering_fields = ('id', 'name', 'project', 'date', 'state', 'archived',
+                       'submitter', 'check')
 
     def get_queryset(self):
         return Patch.objects.all().with_tag_counts()\
index 10cf781c0980ca0979f8fc5ab1c92aac68eed066..7947f8259e90bb24ae362ba30c191c7b38aaf106 100644 (file)
@@ -47,6 +47,7 @@ class PersonList(PersonMixin, ListAPIView):
     """List users."""
 
     search_fields = ('name', 'email')
+    ordering_fields = ('id', 'name', 'email')
 
 
 class PersonDetail(PersonMixin, RetrieveAPIView):
index 8901ab48b3ca390ccd86692a1b45c2595080e919..ce3ed58191e3c4f3d9db37a96c7ba5c5d5d73418 100644 (file)
@@ -76,6 +76,7 @@ class ProjectList(ProjectMixin, ListAPIView):
 
     search_fields = ('link_name', 'list_id', 'list_email', 'web_url',
                      'scm_url', 'webscm_url')
+    ordering_fields = ('id', 'name', 'link_name', 'list_id')
 
 
 class ProjectDetail(ProjectMixin, RetrieveUpdateAPIView):
index 7e40a3215ded943e809bff753cd0986f1edb2d15..f66f0d2be7066514bc836d02c81833fb01eb7eff 100644 (file)
@@ -59,6 +59,7 @@ class SeriesList(SeriesMixin, ListAPIView):
 
     filter_class = SeriesFilter
     search_fields = ('name',)
+    ordering_fields = ('id', 'name', 'date', 'submitter', 'received_all')
 
 
 class SeriesDetail(SeriesMixin, RetrieveAPIView):
index 2c9f71b49aa67e75439a9b463129babb24157bcb..32fe836ac826ff4f0b0b1706aed147cc50711562 100644 (file)
@@ -57,6 +57,7 @@ class UserList(UserMixin, ListAPIView):
     """List users."""
 
     search_fields = ('username', 'first_name', 'last_name', 'email')
+    ordering_fields = ('id', 'username', 'email')
 
 
 class UserDetail(UserMixin, RetrieveUpdateAPIView):
index 82fd9c2ad3763d22fcb661c35796022ad1a7ac3e..67373502252eb38b51ec9a96a92617a818c6e100 100644 (file)
@@ -147,8 +147,10 @@ REST_FRAMEWORK = {
     'DEFAULT_FILTER_BACKENDS': (
         'django_filters.rest_framework.DjangoFilterBackend',
         'rest_framework.filters.SearchFilter',
+        'rest_framework.filters.OrderingFilter',
     ),
     'SEARCH_PARAM': 'q',
+    'ORDERING_PARAM': 'order',
 }
 
 #