From b3608be9930f9b8a445c6ffed0a949331f2a78f6 Mon Sep 17 00:00:00 2001 From: Fredrik Jonsson <frjo@xdeb.org> Date: Fri, 21 Jun 2019 09:54:00 +0200 Subject: [PATCH] Add roles to the user admin index page. --- opentech/apply/users/models.py | 4 ++ .../templates/wagtailusers/users/list.html | 43 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 opentech/apply/users/templates/wagtailusers/users/list.html diff --git a/opentech/apply/users/models.py b/opentech/apply/users/models.py index 3752a5761..38c52a723 100644 --- a/opentech/apply/users/models.py +++ b/opentech/apply/users/models.py @@ -95,6 +95,10 @@ class User(AbstractUser): def get_short_name(self): return self.email + @cached_property + def roles(self): + return list(self.groups.values_list('name', flat=True)) + @cached_property def is_apply_staff(self): return self.groups.filter(name=STAFF_GROUP_NAME).exists() or self.is_superuser diff --git a/opentech/apply/users/templates/wagtailusers/users/list.html b/opentech/apply/users/templates/wagtailusers/users/list.html new file mode 100644 index 000000000..87ec4ac59 --- /dev/null +++ b/opentech/apply/users/templates/wagtailusers/users/list.html @@ -0,0 +1,43 @@ +{% load i18n wagtailusers_tags wagtailadmin_tags %} +<table class="listing"> + <thead> + <tr> + <th class="name"> + {% trans "Name" %} + {% if ordering == "name" %} + <a href="{% url 'wagtailusers_users:index' %}" class="icon icon-arrow-down-after teal"></a> + {% else %} + <a href="{% url 'wagtailusers_users:index' %}?ordering=name" class="icon icon-arrow-down-after"></a> + {% endif %} + </th> + <th class="username"> + {% trans "Username" %} + {% if ordering == "username" %} + <a href="{% url 'wagtailusers_users:index' %}" class="icon icon-arrow-down-after teal"></a> + {% else %} + <a href="{% url 'wagtailusers_users:index' %}?ordering=username" class="icon icon-arrow-down-after"></a> + {% endif %} + </th> + <th class="level">{% trans "Role" %}</th> + <th class="status">{% trans "Status" %}</th> + </tr> + </thead> + <tbody> + {% for user in users %} + <tr> + <td class="title" valign="top"> + <h2> + <span class="avatar small"><img src="{% avatar_url user size=25 %}" /></span> + <a href="{% url 'wagtailusers_users:edit' user.pk %}">{{ user.get_full_name|default:user.get_username }}</a> + </h2> + <ul class="actions"> + {% user_listing_buttons user %} + </ul> + </td> + <td class="username" valign="top">{{ user.get_username }}</td> + <td class="level" valign="top">{{ user.roles|join:', ' }}{% if user.is_superuser %} ({% trans "Admin" %}){% endif %}</td> + <td class="status" valign="top"><div class="status-tag {% if user.is_active %}primary{% endif %}">{% if user.is_active %}{% trans "Active" %}{% else %}{% trans "Inactive" %}{% endif %}</div></td> + </tr> + {% endfor %} + </tbody> +</table> -- GitLab