Skip to content
Snippets Groups Projects
Commit 8f585c96 authored by Erwan Rouchet's avatar Erwan Rouchet
Browse files

Merge branch 'filter-processes-name' into 'master'

Allow filtering dataimports by name

Closes #928

See merge request !1584
parents 0a4ac04e 1412df44
No related branches found
No related tags found
1 merge request!1584Allow filtering dataimports by name
......@@ -189,6 +189,9 @@ class DataImportsList(ProcessACLMixin, ListAPIView):
if 'id' in self.request.query_params:
filters &= Q(id__startswith=self.request.query_params['id'])
if 'name' in self.request.query_params:
filters &= Q(name__icontains=self.request.query_params['name'])
qs = self.readable_processes \
.filter(filters) \
.prefetch_related('workflow__tasks')
......
......@@ -259,6 +259,31 @@ class TestImports(FixtureAPITestCase):
self.assertEqual(len(data['results']), 1)
self.assertEqual(data['results'][0]['id'], str(dataimport2.id))
def test_list_filter_name(self):
self.client.force_login(self.user)
dataimport_id_1 = str(uuid.uuid4())
dataimport1 = self.corpus.imports.create(
id=dataimport_id_1,
creator=self.user,
mode=DataImportMode.Workers,
name='Number One'
)
dataimport_id_2 = str(uuid.uuid4())
self.corpus.imports.create(
id=dataimport_id_2,
creator=self.user,
mode=DataImportMode.Workers,
name='Numero Duo'
)
response = self.client.get(reverse('api:import-list'), {'name': 'Numb', 'with_workflow': False})
self.assertEqual(response.status_code, status.HTTP_200_OK)
data = response.json()
self.assertEqual(len(data['results']), 1)
self.assertEqual(data['results'][0]['id'], str(dataimport1.id))
def test_list_no_tasks(self):
"""
Ensure the DataImport reports an Unscheduled state when there are no tasks in its workflow
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment