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>
|
||||
|
||||
<ol>
|
||||
{% for member in group.user_set.all %}
|
||||
{% for member in group_members %}
|
||||
<li>{{ member }}</li>
|
||||
{% empty %}
|
||||
<p>{% trans "No members available." %}</p>
|
||||
|
@ -343,6 +343,16 @@ class GroupDetailView(DetailView, PermissionMixin):
|
||||
template_name = 'participant/group_detail.html'
|
||||
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):
|
||||
"""
|
||||
|
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