from django.contrib import admin from django.contrib.auth.admin import UserAdmin as BaseUserAdmin from django.utils.translation import gettext_lazy as _ from .models import CustomUser @admin.register(CustomUser) class CustomUserAdmin(BaseUserAdmin): """ Custom admin panel configuration for CustomUser model. """ # Fields to display in the user list list_display = ('email', 'first_name', 'last_name', 'is_staff', 'is_active', 'active_until', 'date_joined') list_filter = ('is_staff', 'is_superuser', 'is_active', 'active_until', 'date_joined') search_fields = ('email', 'first_name', 'last_name') ordering = ('-date_joined',) # Fields to display on the user detail/edit page fieldsets = ( (None, {'fields': ('email', 'password')}), (_('Personal info'), {'fields': ('first_name', 'last_name', 'active_until')}), (_('Permissions'), { 'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions'), }), (_('Important dates'), {'fields': ('last_login', 'date_joined')}), ) # Fields to display when creating a new user add_fieldsets = ( (None, { 'classes': ('wide',), 'fields': ('email', 'password1', 'password2', 'first_name', 'last_name', 'active_until', 'is_staff', 'is_active'), }), ) readonly_fields = ('date_joined', 'last_login')