skillbox/server/users/admin.py

56 lines
1.3 KiB
Python

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from users.forms import CustomUserCreationForm, CustomUserChangeForm
from .models import User, SchoolClass, Role, UserRole
class SchoolClassInline(admin.TabularInline):
model = SchoolClass.users.through
class RoleInline(admin.TabularInline):
model = UserRole
@admin.register(SchoolClass)
class SchoolClassAdmin(admin.ModelAdmin):
list_display = ('id', 'name')
@admin.register(Role)
class SchoolRoleAdmin(admin.ModelAdmin):
list_display = ('name',)
list_filter = ('name',)
@admin.register(UserRole)
class UserSchoolRoleAdmin(admin.ModelAdmin):
list_display = ('user', 'role')
# list_filter = ('role__school',)
readonly_fields = []
# search_fields = ('user__email', 'user__username')
class CustomUserAdmin(UserAdmin):
add_form = CustomUserCreationForm
form = CustomUserChangeForm
model = User
list_display = ('username', 'first_name', 'last_name', 'school_classes_list')
list_filter = ('school_classes',)
inlines = [
SchoolClassInline,
RoleInline,
]
def school_classes_list(self, obj):
return ', '.join([s.name for s in obj.school_classes.all()])
# fieldsets = UserAdmin.fieldsets + (
# (None, {'fields': ('school_classes',)}),
# )
admin.site.register(User, CustomUserAdmin)