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)