0001-base-log-searching-in-messages-42357.patch
passerelle/views.py | ||
---|---|---|
27 | 27 |
from django.contrib.auth import logout as auth_logout |
28 | 28 |
from django.contrib.auth import views as auth_views |
29 | 29 |
from django.db import transaction |
30 |
from django.db.models import TextField |
|
30 |
from django.db.models import TextField, Q
|
|
31 | 31 |
from django.db.models.functions import Cast |
32 | 32 |
from django.http import HttpResponse, HttpResponseRedirect, Http404 |
33 | 33 |
from django.views.decorators.csrf import csrf_exempt |
... | ... | |
249 | 249 |
except Exception: |
250 | 250 |
qs = qs.annotate( |
251 | 251 |
text_extra=Cast('extra', TextField()) |
252 |
).filter(text_extra__icontains=query)
|
|
252 |
).filter(Q(text_extra__icontains=query) | Q(message__icontains=query))
|
|
253 | 253 |
else: |
254 | 254 |
date = make_aware(date) |
255 | 255 |
if date.hour == 0 and date.minute == 0 and date.second == 0: |
tests/test_manager.py | ||
---|---|---|
10 | 10 |
from django.utils.timezone import now |
11 | 11 |
import pytest |
12 | 12 | |
13 |
from passerelle.base.models import ApiUser, AccessRight, ResourceStatus, Job |
|
13 |
from passerelle.base.models import ApiUser, AccessRight, ResourceStatus, Job, ResourceLog
|
|
14 | 14 |
from passerelle.apps.csvdatasource.models import CsvDataSource, Query |
15 | 15 | |
16 | 16 |
pytestmark = pytest.mark.django_db |
... | ... | |
236 | 236 |
assert resp.text.count('level-info') == 2 |
237 | 237 | |
238 | 238 | |
239 |
def test_logs_search_in_message(app, admin_user): |
|
240 |
csv = CsvDataSource.objects.create(csv_file=File(StringIO('1;t\n'), 't.csv'), slug='t', title='t') |
|
241 |
app = login(app) |
|
242 | ||
243 |
ResourceLog.objects.create(appname=csv.get_connector_slug(), slug=csv.slug, levelno=1, message='hop') |
|
244 |
resp = app.get(csv.get_absolute_url()) |
|
245 |
resp = resp.click('full page') |
|
246 |
assert resp.text.count('<td class="timestamp">') == 1 |
|
247 | ||
248 |
resp.form['q'] = 'not there' |
|
249 |
resp = resp.form.submit() |
|
250 |
assert resp.text.count('<td class="timestamp">') == 0 |
|
251 | ||
252 |
resp.form['q'] = 'hop' |
|
253 |
resp = resp.form.submit() |
|
254 |
assert resp.text.count('<td class="timestamp">') == 1 |
|
255 | ||
256 | ||
239 | 257 |
def test_logging_parameters(app, admin_user): |
240 | 258 |
data = StringIO('1;Foo\n2;Bar\n3;Baz') |
241 | 259 |
csv = CsvDataSource.objects.create(csv_file=File(data, 't.csv'), |
242 |
- |