diff options
Diffstat (limited to 'alphabetlearning/users/admin.py')
-rw-r--r-- | alphabetlearning/users/admin.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/alphabetlearning/users/admin.py b/alphabetlearning/users/admin.py new file mode 100644 index 0000000..04da035 --- /dev/null +++ b/alphabetlearning/users/admin.py @@ -0,0 +1,49 @@ +from django.conf import settings +from django.contrib import admin +from django.contrib.auth import admin as auth_admin +from django.contrib.auth.decorators import login_required +from django.utils.translation import gettext_lazy as _ + +from .forms import UserAdminChangeForm +from .forms import UserAdminCreationForm +from .models import User + +if settings.DJANGO_ADMIN_FORCE_ALLAUTH: + # Force the `admin` sign in process to go through the `django-allauth` workflow: + # https://docs.allauth.org/en/latest/common/admin.html#admin + admin.site.login = login_required(admin.site.login) # type: ignore[method-assign] + + +@admin.register(User) +class UserAdmin(auth_admin.UserAdmin): + form = UserAdminChangeForm + add_form = UserAdminCreationForm + fieldsets = ( + (None, {"fields": ("email", "password")}), + (_("Personal info"), {"fields": ("name",)}), + ( + _("Permissions"), + { + "fields": ( + "is_active", + "is_staff", + "is_superuser", + "groups", + "user_permissions", + ), + }, + ), + (_("Important dates"), {"fields": ("last_login", "date_joined")}), + ) + list_display = ["email", "name", "is_superuser"] + search_fields = ["name"] + ordering = ["id"] + add_fieldsets = ( + ( + None, + { + "classes": ("wide",), + "fields": ("email", "password1", "password2"), + }, + ), + ) |