from utils.admin_base import CRMModelAdmin from django.contrib import admin from django.contrib.auth.admin import UserAdmin from apps.cuser.forms import CUserCreationForm, CUserChangeForm from apps.cuser.models import ( CUser as CUserModel, CuserRole as CuserRoleModel, RoleType as RoleTypeModel, SmsOpt as SmsOptModel ) # Register your models here. class CUserAdmin(UserAdmin): list_per_page = 50 save_on_top = True date_hierarchy = 'created_at' form = CUserChangeForm add_form = CUserCreationForm list_display = ('username', 'name_family', 'mobile', 'is_active', 'is_staff') search_fields = ('username', 'name_family', 'mobile') ordering = ('username',) readonly_fields = ('last_login', 'created_at', 'updated_at') fieldsets = ( (None, {'fields': ('username', 'password')}), ('اطلاعات کاربر', {'fields': ('name_family', 'mobile')}), ('دسترسی', {'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions')}), ('تاریخ‌ها', {'fields': ('last_login', 'created_at', 'updated_at')}), ) add_fieldsets = ( (None, {'classes': ('wide',), 'fields': ('username', 'name_family', 'mobile', 'password1', 'password2', 'is_active', 'is_staff')}), ) class CUserRoleAdmin(CRMModelAdmin): list_display = ('id', 'cuser', 'name_family', 'mobile', 'role_type', 'sys_ws', 'is_active', 'customer_panel', 'is_admin') search_fields = ('name_family', 'mobile', 'cuser__username') readonly_fields = ('created_at', 'updated_at') class RoleTypeAdmin(CRMModelAdmin): list_display = ('id', 'role_name', 'role_name_en', 'created_at') class SmsOptAdmin(CRMModelAdmin): list_display = ("id", "mobile", "expire", "created_at") exclude = ("opt",) sensitive_fields = ("opt",) def get_readonly_fields(self, request, obj=None): return ("mobile", "expire", "created_at", "updated_at") def has_add_permission(self, request): return False def has_change_permission(self, request, obj=None): return False admin.site.register(CUserModel, CUserAdmin) admin.site.register(CuserRoleModel, CUserRoleAdmin) admin.site.register(RoleTypeModel, RoleTypeAdmin) admin.site.register(SmsOptModel, SmsOptAdmin)