StudE-Backend/stude/accounts/admin.py

44 lines
1.5 KiB
Python

from django import forms
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import CustomUser
from year_levels.models import Year_Level
from semesters.models import Semester
from courses.models import Course
from subjects.models import SubjectInstance
from django.contrib.admin.widgets import FilteredSelectMultiple
class CustomUserForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(CustomUserForm, self).__init__(*args, **kwargs)
if self.instance:
self.fields['subjects'].queryset = SubjectInstance.objects.filter(
course=self.instance.course)
year_level = forms.ModelChoiceField(
queryset=Year_Level.objects.all(), required=False)
semester = forms.ModelChoiceField(
queryset=Semester.objects.all(), required=False)
course = forms.ModelChoiceField(
queryset=Course.objects.all(), required=False)
subjects = forms.ModelMultipleChoiceField(
queryset=SubjectInstance.objects.none(), required=False, widget=FilteredSelectMultiple("Subjects", is_stacked=False))
avatar = forms.ImageField(required=False)
class Meta:
model = CustomUser
fields = '__all__'
class CustomUserAdmin(UserAdmin):
model = CustomUser
form = CustomUserForm
fieldsets = UserAdmin.fieldsets + (
(None, {'fields': ('student_id_number',
'year_level', 'semester', 'course', 'subjects', 'avatar', 'is_student', 'irregular')}),
)
admin.site.register(CustomUser, CustomUserAdmin)