diff --git a/arkindex/process/models.py b/arkindex/process/models.py index acd0ff13bd543911a325866efceb94038c48224c..3c0bee0a5b46d457e6b0df84035b55ef8049db79 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 e029b15e982d362deeb78c9974b749c68ead6934..463a700a4028aa0629c60a99f95607defd3bdff2 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"