Better inLine version with nested_admin

This commit is contained in:
2024-10-20 11:24:24 +02:00
parent eb9018928f
commit 78c2e45ca4
6 changed files with 132 additions and 25 deletions

View File

@@ -1,13 +1,31 @@
from django.db import models
from django.contrib import admin
from django.db.models.functions import Now, ExtractWeek
from django.http import HttpRequest
from django.db.models.functions import Now, ExtractWeek, ExtractYear
from django.utils.translation import gettext_lazy as _
# Create your models here.
class StudentAdmin(admin.ModelAdmin):
list_display = ("name", "surname", "email")
list_filter = []
class CourseTypes(models.TextChoices):
PPL = "PPL", _("PPL")
ATPL = "ATPL", _("ATPL")
class Course(models.Model):
id = models.AutoField(
primary_key=True
)
ctype = models.CharField(
null=False,
choices=CourseTypes
)
cnumber = models.PositiveSmallIntegerField(
null=False,
default=ExtractYear(Now())
)
def __str__(self):
return f"{self.ctype}-{self.cnumber}"
class Student(models.Model):
id = models.AutoField(
@@ -29,6 +47,20 @@ class Student(models.Model):
max_length=32
)
course = models.ForeignKey(
Course,
on_delete=models.DO_NOTHING,
null=True
)
active = models.BooleanField(
null=False,
default=True
)
def __str__(self):
return f"{self.surname} {self.name[0]}. - {self.course}"
class WeekPreference(models.Model):
id = models.BigAutoField(
primary_key=True
@@ -48,6 +80,9 @@ class WeekPreference(models.Model):
on_delete=models.DO_NOTHING
)
def __str__(self):
return f"{self.week} - {self.student.surname} {self.student.name[0]}."
class MissionType(models.TextChoices):
OTHER = "OTHER", _("OTHER")
PPL = "PPL", _("PPL")
@@ -80,7 +115,8 @@ class MissionProfile(models.Model):
notes = models.TextField(
max_length=140,
null=True
null=True,
blank=True
)
def __str__(self):
@@ -144,7 +180,8 @@ class HourBuilding(models.Model):
notes = models.TextField(
max_length=140,
null=True
null=True,
blank=True
)
class HourBuildingLeg(models.Model):
@@ -180,6 +217,12 @@ class HourBuildingLeg(models.Model):
default=False
)
def __str__(self):
if self.stop:
return "Refuelling Stop"
else:
return f"Flight Leg: {self.departure} -> {self.destination}"
class Training(models.Model):
id = models.BigAutoField(
primary_key=True
@@ -229,5 +272,9 @@ class Training(models.Model):
notes = models.TextField(
max_length=140,
null=True
null=True,
blank=True
)
def __str__(self):
return f"{self.mission}"