From ba46d7de54f1c9045e44bc23830125847fa1baf3 Mon Sep 17 00:00:00 2001 From: Sabrina Demagny Date: Tue, 27 Aug 2024 10:11:05 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(users)=20improve=20user=20display=20o?= =?UTF-8?q?n=20admin=20users=20list?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If user email exists, display it instead of sub to identify users in admin view list. --- src/backend/core/admin.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/backend/core/admin.py b/src/backend/core/admin.py index 60260f4..4c2b758 100644 --- a/src/backend/core/admin.py +++ b/src/backend/core/admin.py @@ -42,7 +42,7 @@ class UserAdmin(auth_admin.UserAdmin): ) }, ), - (_("Personal info"), {"fields": ("email", "language", "timezone")}), + (_("Personal info"), {"fields": ("name", "email", "language", "timezone")}), ( _("Permissions"), { @@ -69,8 +69,7 @@ class UserAdmin(auth_admin.UserAdmin): ) inlines = (TeamAccessInline, MailDomainAccessInline) list_display = ( - "sub", - "email", + "get_user", "created_at", "updated_at", "is_active", @@ -81,7 +80,7 @@ class UserAdmin(auth_admin.UserAdmin): list_filter = ("is_staff", "is_superuser", "is_device", "is_active") ordering = ("is_active", "-is_superuser", "-is_staff", "-is_device", "-updated_at") readonly_fields = ["id", "created_at", "updated_at"] - search_fields = ("id", "email", "sub") + search_fields = ("id", "email", "sub", "name") def get_readonly_fields(self, request, obj=None): """The sub should only be editable for a create, not for updates.""" @@ -89,6 +88,14 @@ class UserAdmin(auth_admin.UserAdmin): return self.readonly_fields + ["sub"] return self.readonly_fields + def get_user(self, obj): + """Provide a nice display for user""" + return ( + obj.name if obj.name else (obj.email if obj.email else f"[sub] {obj.sub}") + ) + + get_user.short_description = _("User") + @admin.register(models.Team) class TeamAdmin(admin.ModelAdmin):