diff --git a/passerelle/views.py b/passerelle/views.py index c284b48d..d21c1a42 100644 --- a/passerelle/views.py +++ b/passerelle/views.py @@ -256,6 +256,7 @@ class GenericViewLogsConnectorView(GenericConnectorMixin, ListView): try: date = date_parser.parse(query, dayfirst=True) except Exception: + initial_qs = qs query_uuid = None try: query_uuid = uuid.UUID(query) @@ -264,7 +265,7 @@ class GenericViewLogsConnectorView(GenericConnectorMixin, ListView): else: qs = qs.filter(transaction_id=query_uuid) if query_uuid is None or query_uuid is not None and not qs.exists(): - qs = qs.filter(Q(message__icontains=query) | Q(extra__icontains=query)) + qs = initial_qs.filter(Q(message__icontains=query) | Q(extra__icontains=query)) else: if is_naive(date): date = make_aware(date) diff --git a/tests/test_manager.py b/tests/test_manager.py index 0ce4d72c..353cac95 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -362,6 +362,7 @@ def test_logs_search(app, admin_user): app = login(app) transaction_id = str(uuid.uuid4()) + looks_like_transaction_id = str(uuid.uuid4()) log1 = ResourceLog.objects.create( appname=csv.get_connector_slug(), slug=csv.slug, @@ -381,14 +382,21 @@ def test_logs_search(app, admin_user): log3 = ResourceLog.objects.create( appname=csv.get_connector_slug(), slug=csv.slug, levelno=1, message='foo', extra={'bar': 'hop'} ) + log4 = ResourceLog.objects.create( + appname=csv.get_connector_slug(), slug=csv.slug, levelno=1, message=looks_like_transaction_id + ) resp = app.get('/manage/csvdatasource/t/logs/') - assert list(resp.context['page_obj'].object_list) == [log3, log2, log1] + assert list(resp.context['page_obj'].object_list) == [log4, log3, log2, log1] resp.form['q'] = transaction_id resp = resp.form.submit() assert list(resp.context['page_obj'].object_list) == [log2, log1] + resp.form['q'] = looks_like_transaction_id + resp = resp.form.submit() + assert list(resp.context['page_obj'].object_list) == [log4] + resp.form['q'] = str(uuid.uuid4()) resp = resp.form.submit() assert list(resp.context['page_obj'].object_list) == []