Skip to content
Snippets Groups Projects
Commit c02184ec authored by Martin Burchell's avatar Martin Burchell
Browse files

Search on translation as well as message

parent f30e1f00
No related branches found
No related tags found
2 merge requests!166Staging,!137Keyword search
Pipeline #9033 passed
......@@ -373,3 +373,52 @@ Mauris nec mauris vestibulum, laoreet mi ut, facilisis massa. Pellentesque
assert 'Latrine' in payload[0]['body']
assert 'LATRINE' in payload[1]['body']
assert 'latrines' in payload[2]['body']
@pytest.mark.django_db
def test_filter_translation_by_keyword():
create_item(
body="item 1",
translation="""Latrine ipsum dolor sit amet, consectetur adipiscing elit.
Pellentesque vitae ipsum a magna rutrum facilisis. Fusce vitae dolor dolor.
Nullam."""
)
create_item(
body="item 2",
translation="""Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Suspendisse ut orci diam. Donec scelerisque id massa vitae laoreet. Ut sit."""
)
create_item(
body="item 3",
translation="""Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Pellentesque ac orci felis. Pellentesque hendrerit laoreet dolor nec euismod.
Fusce pretium."""
)
create_item(
body="item 4",
translation="""Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec at justo sit amet ante LATRINE semper tempus. Suspendisse vulputate
urna nec."""
)
create_item(
body="item 5",
translation="""Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Mauris nec mauris vestibulum, laoreet mi ut, facilisis massa.
Pellentesque quam tortor. latrines""",
)
payload = get(
data={
'search': 'latrine',
}
).data
assert len(payload) == 3
assert 'Latrine' in payload[0]['translation']
assert 'LATRINE' in payload[1]['translation']
assert 'latrines' in payload[2]['translation']
from django.db.models import Count
from django.db.models import Count, Q
from django.utils.translation import ugettext as _
from rest_framework import status, viewsets
......@@ -108,7 +108,8 @@ class ItemViewSet(viewsets.ModelViewSet, BulkDestroyModelMixin):
search = self.request.query_params.get('search', None)
if search is not None:
items = items.filter(body__icontains=search)
items = items.filter(
Q(body__icontains=search) | Q(translation__icontains=search))
ordering = self.request.query_params.get('ordering', '-timestamp')
items = items.order_by(ordering)
......
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