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): ...@@ -62,3 +62,15 @@ class ChangesTest(ViewTestCase):
) )
self.assertContains(response, 'Resource update') self.assertContains(response, 'Resource update')
self.assertContains(response, 'Invalid search string!') 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 @@ ...@@ -21,6 +21,7 @@
from django.views.generic.list import ListView from django.views.generic.list import ListView
from django.http import Http404 from django.http import Http404
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.models import User
from trans.models.changes import Change from trans.models.changes import Change
from trans.views.helper import get_project_translation from trans.views.helper import get_project_translation
from lang.models import Language from lang.models import Language
...@@ -39,6 +40,7 @@ class ChangesView(ListView): ...@@ -39,6 +40,7 @@ class ChangesView(ListView):
subproject = None subproject = None
translation = None translation = None
language = None language = None
user = None
# Filtering by translation/project # Filtering by translation/project
if 'project' in self.request.GET: if 'project' in self.request.GET:
...@@ -61,6 +63,15 @@ class ChangesView(ListView): ...@@ -61,6 +63,15 @@ class ChangesView(ListView):
except Language.DoesNotExist: except Language.DoesNotExist:
messages.error(self.request, _('Invalid search string!')) 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() result = Change.objects.all()
if translation is not None: if translation is not None:
...@@ -73,4 +84,7 @@ class ChangesView(ListView): ...@@ -73,4 +84,7 @@ class ChangesView(ListView):
if language is not None: if language is not None:
result = result.filter(translation__language=language) result = result.filter(translation__language=language)
if user is not None:
result = result.filter(user=user)
return result 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