From 959490ea855b938a4f3644d8b53bad9763311b6e Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Fri, 26 Jan 2018 17:16:07 +0000 Subject: [PATCH] Sort users by email address MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some teams have a lot of users now (I think the record is 172). So we should make it easier for teams to manage large numbers of users. This is the same change we made for templates (from most recent to alphabetical) when the number of templates was getting unmanageable. Sorted on email address because invited users don’t have a name (and not sorted on both, because a lot of departments have a `lastname.firstname` scheme for email addresses, but people generally enter their names as `Firstname Lastname`). --- app/main/views/manage_users.py | 8 ++++---- tests/app/main/views/test_manage_users.py | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/main/views/manage_users.py b/app/main/views/manage_users.py index ed6b26fed..8f20f1375 100644 --- a/app/main/views/manage_users.py +++ b/app/main/views/manage_users.py @@ -28,12 +28,12 @@ from app.utils import user_has_permissions @login_required @user_has_permissions('view_activity', admin_override=True) def manage_users(service_id): - users = ( - user_api_client.get_users_for_service(service_id=service_id) + - [ + users = sorted( + user_api_client.get_users_for_service(service_id=service_id) + [ invite for invite in invite_api_client.get_invites_for_service(service_id=service_id) if invite.status != 'accepted' - ] + ], + key=lambda user: user.email_address, ) return render_template( diff --git a/tests/app/main/views/test_manage_users.py b/tests/app/main/views/test_manage_users.py index c0761a72c..96a58938a 100644 --- a/tests/app/main/views/test_manage_users.py +++ b/tests/app/main/views/test_manage_users.py @@ -461,7 +461,7 @@ def test_manage_users_shows_invited_user( page = client_request.get('main.manage_users', service_id=SERVICE_ONE_ID) assert page.h1.string.strip() == 'Team members' - assert normalize_spaces(page.select('.user-list-item')[1].text) == ( + assert normalize_spaces(page.select('.user-list-item')[0].text) == ( 'invited_user@test.gov.uk (invited) ' 'Can’t Send messages Can’t Add and edit templates Can’t Manage service Can Access API keys ' 'Cancel invitation'