Commit 56a78289 authored by Michal Čihař's avatar Michal Čihař

Changes filtering by user (issue #192)

parent a61c1d85
......@@ -62,3 +62,15 @@ class ChangesTest(ViewTestCase):
)
self.assertContains(response, 'Resource update')
self.assertContains(response, 'Invalid search string!')
def test_user(self):
self.edit_unit(
'Hello, world!\n',
'Nazdar svete!\n'
)
response = self.client.get(
reverse('changes'),
{'user': self.user.username}
)
self.assertContains(response, 'New translation')
self.assertNotContains(response, 'Invalid search string!')
......@@ -21,6 +21,7 @@
from django.views.generic.list import ListView
from django.http import Http404
from django.contrib import messages
from django.contrib.auth.models import User
from trans.models.changes import Change
from trans.views.helper import get_project_translation
from lang.models import Language
......@@ -39,6 +40,7 @@ class ChangesView(ListView):
subproject = None
translation = None
language = None
user = None
# Filtering by translation/project
if 'project' in self.request.GET:
......@@ -61,6 +63,15 @@ class ChangesView(ListView):
except Language.DoesNotExist:
messages.error(self.request, _('Invalid search string!'))
# Filtering by user
if 'user' in self.request.GET:
try:
user = User.objects.get(
username=self.request.GET['user']
)
except User.DoesNotExist:
messages.error(self.request, _('Invalid search string!'))
result = Change.objects.all()
if translation is not None:
......@@ -73,4 +84,7 @@ class ChangesView(ListView):
if language is not None:
result = result.filter(translation__language=language)
if user is not None:
result = result.filter(user=user)
return result
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment