Fixed issue #585. Sort group members by first name or last name in group detail view according to config variable
This commit is contained in:
parent
e5c18d71f4
commit
82b1796875
@ -18,7 +18,7 @@
|
|||||||
<h4>{% trans "Members" %}</h4>
|
<h4>{% trans "Members" %}</h4>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
{% for member in group.user_set.all %}
|
{% for member in group_members %}
|
||||||
<li>{{ member }}</li>
|
<li>{{ member }}</li>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
<p>{% trans "No members available." %}</p>
|
<p>{% trans "No members available." %}</p>
|
||||||
|
@ -343,6 +343,16 @@ class GroupDetailView(DetailView, PermissionMixin):
|
|||||||
template_name = 'participant/group_detail.html'
|
template_name = 'participant/group_detail.html'
|
||||||
context_object_name = 'group'
|
context_object_name = 'group'
|
||||||
|
|
||||||
|
def get_context_data(self, *args, **kwargs):
|
||||||
|
context = super(GroupDetailView, self).get_context_data(*args, **kwargs)
|
||||||
|
query = User.objects
|
||||||
|
if config['participant_sort_users_by_first_name']:
|
||||||
|
query = query.order_by('first_name')
|
||||||
|
else:
|
||||||
|
query = query.order_by('last_name')
|
||||||
|
context['group_members'] = query.filter(django_user__groups__in=[context['group']])
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
class GroupCreateView(CreateView):
|
class GroupCreateView(CreateView):
|
||||||
"""
|
"""
|
||||||
|
54
tests/participant/test_views.py
Normal file
54
tests/participant/test_views.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
Tests for views of openslides.participant
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
:copyright: 2011–2013 by OpenSlides team, see AUTHORS.
|
||||||
|
:license: GNU GPL, see LICENSE for more details.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import re
|
||||||
|
from django.test.client import Client
|
||||||
|
|
||||||
|
from openslides.config.api import config
|
||||||
|
from openslides.utils.test import TestCase
|
||||||
|
from openslides.participant.models import User, Group
|
||||||
|
|
||||||
|
|
||||||
|
class GroupViews(TestCase):
|
||||||
|
"""
|
||||||
|
Tests the detail view for groups and later also the other views.
|
||||||
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
self.user_1 = User.objects.create(last_name='chahshah7eiqueip5eiW',
|
||||||
|
first_name='mi6iu2Te6ei9iohue3ex',
|
||||||
|
username='mi6iu2Te6ei9iohue3ex chahshah7eiqueip5eiW',
|
||||||
|
is_superuser=True)
|
||||||
|
self.user_2 = User.objects.create(last_name='uquahx3Wohtieph9baer',
|
||||||
|
first_name='aWei4ien6Se0vie0xeiv',
|
||||||
|
username='aWei4ien6Se0vie0xeiv uquahx3Wohtieph9baer')
|
||||||
|
self.delegate = Group.objects.get(pk=3)
|
||||||
|
self.user_1.groups.add(self.delegate)
|
||||||
|
self.user_2.groups.add(self.delegate)
|
||||||
|
|
||||||
|
self.client = Client()
|
||||||
|
login_user = User.objects.create(username='loginusername', is_superuser=True)
|
||||||
|
login_user.reset_password('default')
|
||||||
|
self.client.login(username='loginusername', password='default')
|
||||||
|
|
||||||
|
def test_detail(self):
|
||||||
|
self.assertFalse(config['participant_sort_users_by_first_name'])
|
||||||
|
response = self.client.get('/participant/group/3/')
|
||||||
|
pattern = r'mi6iu2Te6ei9iohue3ex chahshah7eiqueip5eiW|aWei4ien6Se0vie0xeiv uquahx3Wohtieph9baer'
|
||||||
|
match = re.findall(pattern, response.content)
|
||||||
|
self.assertEqual(match[0], 'mi6iu2Te6ei9iohue3ex chahshah7eiqueip5eiW')
|
||||||
|
self.assertEqual(match[1], 'aWei4ien6Se0vie0xeiv uquahx3Wohtieph9baer')
|
||||||
|
|
||||||
|
config['participant_sort_users_by_first_name'] = True
|
||||||
|
self.assertTrue(config['participant_sort_users_by_first_name'])
|
||||||
|
response = self.client.get('/participant/group/3/')
|
||||||
|
pattern = r'mi6iu2Te6ei9iohue3ex chahshah7eiqueip5eiW|aWei4ien6Se0vie0xeiv uquahx3Wohtieph9baer'
|
||||||
|
match = re.findall(pattern, response.content)
|
||||||
|
self.assertEqual(match[1], 'mi6iu2Te6ei9iohue3ex chahshah7eiqueip5eiW')
|
||||||
|
self.assertEqual(match[0], 'aWei4ien6Se0vie0xeiv uquahx3Wohtieph9baer')
|
Loading…
Reference in New Issue
Block a user