64 lines
2.1 KiB
Python
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)
|