58 lines
2.0 KiB
Python
58 lines
2.0 KiB
Python
from django.contrib import admin
|
|
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
|
from django.shortcuts import redirect
|
|
|
|
from .models import TermsAndConditions, User
|
|
|
|
|
|
@admin.register(User)
|
|
class UserAdmin(BaseUserAdmin):
|
|
model = User
|
|
list_display = ("phone", "name", "state", "gem_balance", "referral_code", "is_active", "is_staff", "created_at")
|
|
list_filter = ("state", "is_active", "is_staff")
|
|
search_fields = ("phone", "name", "referral_code")
|
|
ordering = ("-created_at",)
|
|
readonly_fields = (
|
|
"otp_code",
|
|
"otp_expiry",
|
|
"created_at",
|
|
"updated_at",
|
|
"last_login",
|
|
"gem_balance",
|
|
"referral_code",
|
|
"referral_bonus_granted",
|
|
)
|
|
autocomplete_fields = ["referred_by"]
|
|
|
|
fieldsets = (
|
|
(None, {"fields": ("phone", "password")}),
|
|
("اطلاعات شخصی", {"fields": ("name",)}),
|
|
("وضعیت", {"fields": ("state", "is_active", "is_staff", "is_superuser", "groups", "user_permissions")}),
|
|
(
|
|
"جم و معرفی",
|
|
{"fields": ("gem_balance", "trial_expires_at", "referral_code", "referred_by", "referral_bonus_granted")},
|
|
),
|
|
("OTP", {"fields": ("otp_code", "otp_expiry")}),
|
|
("تاریخها", {"fields": ("created_at", "updated_at", "last_login")}),
|
|
)
|
|
add_fieldsets = (
|
|
(None, {"classes": ("wide",), "fields": ("phone", "password1", "password2")}),
|
|
)
|
|
|
|
|
|
@admin.register(TermsAndConditions)
|
|
class TermsAndConditionsAdmin(admin.ModelAdmin):
|
|
"""تکردیفی — لیست را رد میکنیم و مستقیم فرم ویرایش همان یک ردیف را نشان میدهیم."""
|
|
|
|
list_display = ("updated_at",)
|
|
|
|
def has_add_permission(self, request):
|
|
return not TermsAndConditions.objects.exists()
|
|
|
|
def has_delete_permission(self, request, obj=None):
|
|
return False
|
|
|
|
def changelist_view(self, request, extra_context=None):
|
|
obj = TermsAndConditions.get_solo()
|
|
return redirect("admin:account_termsandconditions_change", obj.pk)
|