11from django .contrib import admin
22from django .contrib .auth .admin import UserAdmin as BaseUserAdmin
3- from .models import User , Profile , Role , PagePermission , UserPermission
3+
4+ from .models import PagePermission , Profile , Role , User , UserPermission
45
56
67@admin .register (User )
78class UserAdmin (BaseUserAdmin ):
8- """Custom admin for User model"""
9-
9+ """Custom admin for User model. """
10+
1011 # Fields to display in list view
11- list_display = ['username' , 'email' , 'full_name' , 'mobile' , 'is_staff' , 'is_active' , 'date_joined' ]
12- list_filter = ['is_staff' , 'is_superuser' , 'is_active' , 'date_joined' ]
13- search_fields = ['username' , 'email' , 'full_name' , 'mobile' ]
14- ordering = ['-date_joined' ]
15-
12+ list_display = [
13+ "username" ,
14+ "email" ,
15+ "full_name" ,
16+ "mobile" ,
17+ "is_staff" ,
18+ "is_active" ,
19+ "date_joined" ,
20+ ]
21+ list_filter = ["is_staff" , "is_superuser" , "is_active" , "date_joined" ]
22+ search_fields = ["username" , "email" , "full_name" , "mobile" ]
23+ ordering = ["-date_joined" ]
24+
1625 # Fieldsets for add/edit form
1726 fieldsets = BaseUserAdmin .fieldsets + (
18- ('Additional Information' , {
19- 'fields' : ('full_name' , 'mobile' )
20- }),
27+ ("Additional Information" , {"fields" : ("full_name" , "mobile" )}),
2128 )
22-
29+
2330 # Fieldsets for creating new user
2431 add_fieldsets = BaseUserAdmin .add_fieldsets + (
25- ('Additional Information' , {
26- 'fields' : ('full_name' , 'mobile' , 'email' )
27- }),
32+ ("Additional Information" , {"fields" : ("full_name" , "mobile" , "email" )}),
2833 )
2934
3035
3136@admin .register (Profile )
3237class ProfileAdmin (admin .ModelAdmin ):
33- """Admin for Profile model"""
34-
35- list_display = [' user' , ' gender' , ' bio' , ' avatar' ]
36- list_filter = [' gender' ]
37- search_fields = [' user__username' , ' user__email' , ' bio' ]
38- raw_id_fields = [' user' ] # Use widget for user selection
39- readonly_fields = [' user' ] # Make user read-only after creation
40-
38+ """Admin for Profile model. """
39+
40+ list_display = [" user" , " gender" , " bio" , " avatar" ]
41+ list_filter = [" gender" ]
42+ search_fields = [" user__username" , " user__email" , " bio" ]
43+ raw_id_fields = [" user" ] # Use widget for user selection
44+ readonly_fields = [" user" ] # Make user read-only after creation
45+
4146 fieldsets = (
42- ('User' , {
43- 'fields' : ('user' ,)
44- }),
45- ('Profile Information' , {
46- 'fields' : ('bio' , 'avatar' , 'gender' )
47- }),
47+ ("User" , {"fields" : ("user" ,)}),
48+ ("Profile Information" , {"fields" : ("bio" , "avatar" , "gender" )}),
4849 )
4950
5051
51-
5252@admin .register (Role )
5353class RoleAdmin (admin .ModelAdmin ):
54- """Admin for Role model used in RBAC"""
54+ """Admin for Role model used in RBAC. """
5555
56- list_display = ['id' , ' name' ]
57- search_fields = [' name' ]
58- ordering = [' name' ]
56+ list_display = ["id" , " name" ]
57+ search_fields = [" name" ]
58+ ordering = [" name" ]
5959
6060
6161@admin .register (PagePermission )
6262class PagePermissionAdmin (admin .ModelAdmin ):
63- """Admin for PagePermission (URL + permission level)"""
63+ """Admin for PagePermission (URL + permission level). """
6464
65- list_display = ['id' , ' url_name' , ' permission_level' ]
66- list_filter = [' permission_level' ]
67- search_fields = [' url_name' ]
68- ordering = [' url_name' ]
65+ list_display = ["id" , " url_name" , " permission_level" ]
66+ list_filter = [" permission_level" ]
67+ search_fields = [" url_name" ]
68+ ordering = [" url_name" ]
6969
7070
7171@admin .register (UserPermission )
7272class UserPermissionAdmin (admin .ModelAdmin ):
73- """Admin for UserPermission (user + role + many page permissions)"""
73+ """Admin for UserPermission (user + role + many page permissions). """
7474
75- list_display = ['id' , ' user' , ' role' ]
76- list_filter = [' role' ]
77- search_fields = [' user__username' , ' user__email' , ' role__name' ]
78- filter_horizontal = [' page_permissions' ] # Better UI for ManyToMany
75+ list_display = ["id" , " user" , " role" ]
76+ list_filter = [" role" ]
77+ search_fields = [" user__username" , " user__email" , " role__name" ]
78+ filter_horizontal = [" page_permissions" ] # Better UI for ManyToMany
7979
8080 def get_queryset (self , request ):
8181 qs = super ().get_queryset (request )
82- return qs .select_related (' user' , ' role' ).prefetch_related (' page_permissions' )
82+ return qs .select_related (" user" , " role" ).prefetch_related (" page_permissions" )
0 commit comments