Files
catops/techdb/flightslot/admin.py

64 lines
2.1 KiB
Python

from django.contrib import admin
import nested_admin
from django import forms
from .models import *
class TrainingForm(forms.ModelForm):
model=Training
def get_form(self, request, obj=None, **kwargs):
form = super().get_form(request, obj, **kwargs)
form.base_fields['mission'].widget.can_add_related = False
form.base_fields['mission'].widget.can_delete_related = False
form.base_fields['mission'].widget.can_change_related = False
print("pluto")
return form
# Register your models here.
class HourBuildingLegInline(nested_admin.NestedTabularInline):
model = HourBuildingLeg
extra = 0
fk_name = 'hb'
class HourBuildingInLine(nested_admin.NestedTabularInline):
model = HourBuilding
extra = 0
inlines = [HourBuildingLegInline]
fk_name = 'weekpref'
verbose_name_plural = "Hour Building"
max_num = 7
class TrainingInLIne(nested_admin.NestedTabularInline):
model = Training
form = TrainingForm
extra = 1
fk_name = 'weekpref'
verbose_name_plural = "Training Missions"
max_num = 7
def get_formset(self, request, obj=None, **kwargs):
formset = super(TrainingInLIne, self).get_formset(request, obj=None, **kwargs)
return formset
class WeekPreferenceAdmin(nested_admin.NestedModelAdmin):
inlines = [TrainingInLIne, HourBuildingInLine]
def get_form(self, request, obj=None, **kwargs):
form: forms.Form = super().get_form(request, obj, **kwargs)
form.base_fields['student'].widget.can_add_related = False
form.base_fields['student'].widget.can_delete_related = False
form.base_fields['student'].widget.can_change_related = False
return form
class StudentAdmin(admin.ModelAdmin):
list_display = ("surname", "name", "course", "email","active")
list_filter = ["course", "active"]
class CourseAdmin(admin.ModelAdmin):
list_filter = ["ctype", "year"]
admin.site.register(Course, CourseAdmin)
admin.site.register(MissionProfile)
admin.site.register(Student, StudentAdmin)
admin.site.register(WeekPreference, WeekPreferenceAdmin)