Templates and Admin personalization

This commit is contained in:
2024-10-28 11:18:20 +01:00
parent c8e99e9ab8
commit 637d109a91
7 changed files with 88 additions and 11 deletions

View File

@@ -1,29 +1,55 @@
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 = 1
extra = 0
fk_name = 'hb'
class HourBuildingInLine(nested_admin.NestedTabularInline):
model = HourBuilding
extra = 1
extra = 0
inlines = [HourBuildingLegInline]
fk_name = 'weekpref'
verbose_name_plural = "Hour Building"
max_num = 7
class TrainingInLIne(nested_admin.NestedTabularInline):
model = Training
extra = 0
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):
list_display = ('week', 'student')
list_filter = ['week', 'student']
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"]

View File

@@ -75,14 +75,16 @@ class WeekPreference(models.Model):
null=False,
db_index=True,
default=ExtractWeek(Now()) + 1,
auto_created=True
auto_created=True,
verbose_name="Week Number"
)
student = models.ForeignKey(
Student,
null=False,
db_index=True,
on_delete=models.DO_NOTHING
on_delete=models.DO_NOTHING,
verbose_name="Student Selection"
)
def __str__(self):
@@ -105,12 +107,14 @@ class MissionProfile(models.Model):
mtype = models.CharField(
null=False,
default=MissionType.PPL,
choices=MissionType
choices=MissionType,
verbose_name="Mission Type"
)
mnum = models.PositiveSmallIntegerField(
null=True,
default=0
default=0,
verbose_name="Mission Number"
)
duration = models.DurationField(