logs: fix searching for uuid in log messages (#67494)

This commit is contained in:
Valentin Deniaud 2022-07-20 15:17:29 +02:00
parent e7db96aa4f
commit e1940ff73c
2 changed files with 11 additions and 2 deletions

View File

@ -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)

View File

@ -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) == []