From 72f156fda828a7e28605d0fe07bd990d05f61925 Mon Sep 17 00:00:00 2001 From: scragly <29337040+scragly@users.noreply.github.com> Date: Sun, 20 Oct 2019 07:18:42 +1000 Subject: Show role colour style and add hex value, link perms to calc page, add role search. --- pydis_site/apps/api/admin.py | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'pydis_site/apps') diff --git a/pydis_site/apps/api/admin.py b/pydis_site/apps/api/admin.py index fe0e3235..237d68a4 100644 --- a/pydis_site/apps/api/admin.py +++ b/pydis_site/apps/api/admin.py @@ -209,6 +209,38 @@ class OffTopicChannelNameAdmin(admin.ModelAdmin): search_fields = ("name",) +class RoleAdmin(admin.ModelAdmin): + """Admin formatting for the Role model.""" + + exclude = ("permissions", "colour") + readonly_fields = ( + "name", + "id", + "colour_with_preview", + "permissions_with_calc_link", + "position" + ) + search_fields = ("name", "id") + + def colour_with_preview(self, instance: Role) -> str: + """Show colour value in both int and hex, in bolded and coloured style.""" + return format_html( + "{1} / #{0}", + f"{instance.colour:06x}", + instance.colour + ) + + def permissions_with_calc_link(self, instance: Role) -> str: + """Show permissions with link to API permissions calculator page.""" + return format_html( + "{0}", + instance.permissions + ) + + colour_with_preview.short_description = "Colour" + permissions_with_calc_link.short_description = "Permissions" + + class StaffRolesFilter(admin.SimpleListFilter): """Filter options for Staff Roles.""" @@ -257,6 +289,6 @@ admin.site.register(LogEntry, LogEntryAdmin) admin.site.register(MessageDeletionContext, MessageDeletionContextAdmin) admin.site.register(Nomination, NominationAdmin) admin.site.register(OffTopicChannelName, OffTopicChannelNameAdmin) -admin.site.register(Role) +admin.site.register(Role, RoleAdmin) admin.site.register(Tag) admin.site.register(User, UserAdmin) -- cgit v1.2.3