aboutsummaryrefslogtreecommitdiffstats
path: root/alphabetlearning/users/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'alphabetlearning/users/admin.py')
-rw-r--r--alphabetlearning/users/admin.py49
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"),
+ },
+ ),
+ )