From baf378d53dfe9f56383fe70bb2fe93ace07b0195 Mon Sep 17 00:00:00 2001 From: lebaudantoine Date: Thu, 23 Oct 2025 06:23:47 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8(backend)=20add=20the=20owner=20column?= =?UTF-8?q?=20to=20the=20Room=20Admin=20view?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable administrators to easily identify the owners of a room when possible. Save one precious click and time. --- src/backend/core/admin.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/backend/core/admin.py b/src/backend/core/admin.py index ec45b602..3797d118 100644 --- a/src/backend/core/admin.py +++ b/src/backend/core/admin.py @@ -111,10 +111,27 @@ class RoomAdmin(admin.ModelAdmin): inlines = (ResourceAccessInline,) search_fields = ["name", "slug", "=id"] - list_display = ["name", "slug", "access_level", "created_at"] + list_display = ["name", "slug", "access_level", "get_owner", "created_at"] list_filter = ["access_level", "created_at"] readonly_fields = ["id", "created_at", "updated_at"] + def get_owner(self, obj): + """Return the owner of the room for display in the admin list.""" + + owners = [ + access + for access in obj.accesses.all() + if access.role == models.RoleChoices.OWNER + ] + + if not owners: + return _("No owner") + + if len(owners) > 1: + return _("Multiple owners") + + return str(owners[0].user) + class RecordingAccessInline(admin.TabularInline): """Inline admin class for recording accesses."""