from django.contrib import admin from django.contrib.auth.admin import UserAdmin as BaseUserAdmin from django.utils.translation import gettext_lazy as _ from apps.users.models import User @admin.register(User) class UserAdmin(BaseUserAdmin): list_display = ( User.username.field.name, User.email.field.name, User.role.field.name, User.first_name.field.name, User.last_name.field.name, User.is_active.field.name, User.is_staff.field.name, ) list_filter = ( User.role.field.name, User.is_active.field.name, User.is_staff.field.name, User.is_superuser.field.name, ) search_fields = ( User.username.field.name, User.email.field.name, User.first_name.field.name, User.last_name.field.name, ) ordering = (User.username.field.name,) fieldsets = ( (None, {"fields": (User.username.field.name, "password")}), ( _("Personal info"), { "fields": ( User.first_name.field.name, User.last_name.field.name, User.email.field.name, ) }, ), ( _("Platform role"), { "fields": (User.role.field.name,), "description": _( "Platform role that defines user permissions: " "admin, experimenter, approver, or viewer." ), }, ), ( _("Permissions"), { "fields": ( User.is_active.field.name, User.is_staff.field.name, User.is_superuser.field.name, User.groups.field.name, User.user_permissions.field.name, ), }, ), ( _("Important dates"), { "fields": ( User.last_login.field.name, User.date_joined.field.name, ) }, ), ) add_fieldsets = ( ( None, { "classes": ("wide",), "fields": ( User.username.field.name, User.email.field.name, "password1", "password2", User.role.field.name, ), }, ), )