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