From 398829cec88eca24ccbcd3509875d751d3269605 Mon Sep 17 00:00:00 2001
From: manon blanco <blanco@teklia.com>
Date: Wed, 17 Apr 2019 14:12:04 +0000
Subject: [PATCH] Add a filter name

---
 arkindex/documents/api/elements.py            | 2 ++
 arkindex/documents/tests/test_elements_api.py | 9 +++++++++
 2 files changed, 11 insertions(+)

diff --git a/arkindex/documents/api/elements.py b/arkindex/documents/api/elements.py
index 72feeed841..8175bd79bc 100644
--- a/arkindex/documents/api/elements.py
+++ b/arkindex/documents/api/elements.py
@@ -31,6 +31,8 @@ class ElementsList(CorpusACLMixin, ListAPIView):
             filters['corpus'] = self.get_corpus(self.request.query_params['corpus'])
         else:
             filters['corpus__in'] = Corpus.objects.readable(self.request.user)
+        if 'name' in self.request.query_params:
+            filters['name__icontains'] = self.request.query_params['name']
         return Element.objects.filter(**filters).prefetch_related('corpus').order_by('corpus', 'type', 'name')
 
 
diff --git a/arkindex/documents/tests/test_elements_api.py b/arkindex/documents/tests/test_elements_api.py
index 482c3d7509..c62956e61c 100644
--- a/arkindex/documents/tests/test_elements_api.py
+++ b/arkindex/documents/tests/test_elements_api.py
@@ -60,3 +60,12 @@ class TestElementsAPI(FixtureAPITestCase):
         url += '?type=potato'
         response = self.client.get(url)
         self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
+
+    def test_list_elements_filter_name(self):
+        nameSelected = 'ol'
+        response = self.client.get(reverse('api:elements'), params={'name': nameSelected})
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
+        data = response.json()
+        results = data['results']
+        for result in results:
+            self.assertIn(nameSelected, result['name'])
-- 
GitLab