Files
backend-v1/core/apps/accounts/admin/user.py
2026-03-17 18:25:20 +05:00

65 lines
1.9 KiB
Python

from django.contrib.auth import admin
from django.utils.translation import gettext_lazy as _
from django.utils.safestring import mark_safe
from unfold.admin import ModelAdmin
from unfold.forms import AdminPasswordChangeForm # UserCreationForm,
from unfold.forms import UserChangeForm
class CustomUserAdmin(admin.UserAdmin, ModelAdmin):
change_password_form = AdminPasswordChangeForm
# add_form = UserCreationForm
form = UserChangeForm
list_display = (
"display_avatar",
"first_name",
"last_name",
"phone",
"role",
)
search_fields = ("phone", "first_name", "last_name", "username")
autocomplete_fields = ["groups", "user_permissions"]
fieldsets = ((None, {"fields": ("phone", "avatar",)}),) + (
(None, {"fields": ("username", "password")}),
(_("Personal info"), {"fields": ("first_name", "last_name", "email")}),
(
_("Permissions"),
{
"fields": (
"is_active",
"is_staff",
"is_superuser",
"groups",
"user_permissions",
"role",
),
},
),
(_("Important dates"), {"fields": ("last_login", "date_joined")}),
)
def display_avatar(self, obj):
if obj.avatar:
return mark_safe(
f'<img src="{obj.avatar.url}" width="35" height="35" style="border-radius: 50%; object-fit: cover;" />'
)
return _("No Image")
display_avatar.short_description = _("Avatar")
class PermissionAdmin(ModelAdmin):
list_display = ("name",)
search_fields = ("name",)
class GroupAdmin(ModelAdmin):
list_display = ["name"]
search_fields = ["name"]
autocomplete_fields = ("permissions",)
class SmsConfirmAdmin(ModelAdmin):
list_display = ["phone", "code", "resend_count", "try_count"]
search_fields = ["phone", "code"]