From d9563b71679398e6c5a8b45295bb293121a57229 Mon Sep 17 00:00:00 2001 From: mlbonhomme <bonhomme@teklia.com> Date: Thu, 15 Dec 2022 15:44:05 +0100 Subject: [PATCH] Make process elements name filtering case-insensitive --- arkindex/process/models.py | 2 +- .../process/tests/test_process_elements.py | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/arkindex/process/models.py b/arkindex/process/models.py index acd0ff13bd..3c0bee0a5b 100644 --- a/arkindex/process/models.py +++ b/arkindex/process/models.py @@ -181,7 +181,7 @@ class Process(IndexableModel): "corpus_id": self.corpus_id, } if self.name_contains: - filters['name__contains'] = self.name_contains + filters['name__icontains'] = self.name_contains if self.element_type: filters['type_id'] = self.element_type_id diff --git a/arkindex/process/tests/test_process_elements.py b/arkindex/process/tests/test_process_elements.py index e029b15e98..463a700a40 100644 --- a/arkindex/process/tests/test_process_elements.py +++ b/arkindex/process/tests/test_process_elements.py @@ -233,6 +233,29 @@ class TestProcessElements(FixtureAPITestCase): for element in elements ]) + def test_filter_name_case_insensitive(self): + self.process.name_contains = "Rhum" + self.process.load_children = True + self.process.save() + elements = [self.folder_1, self.page_1, self.page_5] + + self.client.force_login(self.superuser) + with self.assertNumQueries(6): + response = self.client.get(reverse('api:process-elements-list', kwargs={'pk': self.process.id})) + self.assertEqual(response.status_code, status.HTTP_200_OK) + data = response.json() + self.assertEqual(data["count"], None) + self.assertEqual(data["next"], None) + self.assertCountEqual(data["results"], [ + { + 'id': str(element.id), + 'type_id': str(element.type_id), + 'name': element.name, + 'confidence': element.confidence, + } + for element in elements + ]) + def test_filter_name_from_element(self): self.process.element = self.folder_1 self.process.name_contains = "rhum" -- GitLab