From dac47da584475c777738e4da940229e1017b5b7e Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Thu, 22 Feb 2018 23:33:59 +0100
Subject: [PATCH] Import request filter

---
 api/funkwhale_api/requests/filters.py | 14 ++++++++++++++
 api/funkwhale_api/requests/views.py   |  8 +++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)
 create mode 100644 api/funkwhale_api/requests/filters.py

diff --git a/api/funkwhale_api/requests/filters.py b/api/funkwhale_api/requests/filters.py
new file mode 100644
index 0000000000..bf353e8ad0
--- /dev/null
+++ b/api/funkwhale_api/requests/filters.py
@@ -0,0 +1,14 @@
+import django_filters
+
+from . import models
+
+
+class ImportRequestFilter(django_filters.FilterSet):
+
+    class Meta:
+        model = models.ImportRequest
+        fields = {
+            'artist_name': ['exact', 'iexact', 'startswith', 'icontains'],
+            'status': ['exact'],
+            'user__username': ['exact'],
+        }
diff --git a/api/funkwhale_api/requests/views.py b/api/funkwhale_api/requests/views.py
index 345ff6f3bb..395fac66cf 100644
--- a/api/funkwhale_api/requests/views.py
+++ b/api/funkwhale_api/requests/views.py
@@ -5,6 +5,7 @@ from rest_framework.decorators import detail_route
 
 from funkwhale_api.music.views import SearchMixin
 
+from . import filters
 from . import models
 from . import serializers
 
@@ -17,8 +18,13 @@ class ImportRequestViewSet(
         viewsets.GenericViewSet):
 
     serializer_class = serializers.ImportRequestSerializer
-    queryset = models.ImportRequest.objects.all().select_related()
+    queryset = (
+        models.ImportRequest.objects.all()
+              .select_related()
+              .order_by('-creation_date'))
     search_fields = ['artist_name', 'album_name', 'comment']
+    filter_class = filters.ImportRequestFilter
+    ordering_fields = ('id', 'artist_name', 'creation_date', 'status')
 
     def perform_create(self, serializer):
         return serializer.save(user=self.request.user)
-- 
GitLab