116 lines
2.2 KiB
Python
116 lines
2.2 KiB
Python
from django.utils.translation import gettext_lazy as _
|
|
from django.db import models
|
|
from datetime import timedelta
|
|
|
|
from ..models.weekpref import WeekPreference
|
|
from ..models.aircrafts import Aircraft
|
|
|
|
class MissionTypes(models.TextChoices):
|
|
OTHER = "OTHER", _("OTHER")
|
|
CHK = "CHK", _("CHK_6M")
|
|
PPL = "PPL", _("PPL")
|
|
IR = "IR", _("IR")
|
|
MEP = "MEP", _("MEP")
|
|
MEP_IR = "MEP_IR", _("MEP_IR")
|
|
CPL = "CPL", _("CPL")
|
|
UPRT = "UPRT", _("UPRT")
|
|
FI = "FI", _("FI")
|
|
PC = "PC", _("PC")
|
|
|
|
class MissionProfile(models.Model):
|
|
id = models.AutoField(
|
|
primary_key=True
|
|
)
|
|
|
|
mtype = models.CharField(
|
|
null=False,
|
|
default=MissionTypes.PPL,
|
|
choices=MissionTypes,
|
|
verbose_name="Mission Type"
|
|
)
|
|
|
|
mnum = models.PositiveSmallIntegerField(
|
|
null=True,
|
|
default=0,
|
|
verbose_name="Mission Number"
|
|
)
|
|
|
|
duration = models.DurationField(
|
|
null=False,
|
|
default=timedelta(hours=1)
|
|
)
|
|
|
|
aircrafts = models.ManyToManyField(
|
|
Aircraft
|
|
)
|
|
|
|
notes = models.TextField(
|
|
max_length=140,
|
|
null=True,
|
|
blank=True
|
|
)
|
|
|
|
def __str__(self):
|
|
return f"{self.mtype} {self.mnum}"
|
|
|
|
class Training(models.Model):
|
|
id = models.BigAutoField(
|
|
primary_key=True
|
|
)
|
|
|
|
weekpref = models.ForeignKey(
|
|
WeekPreference,
|
|
null=False,
|
|
on_delete=models.CASCADE
|
|
)
|
|
|
|
mission = models.ForeignKey(
|
|
MissionProfile,
|
|
null=True,
|
|
on_delete=models.CASCADE
|
|
)
|
|
|
|
monday = models.BooleanField(
|
|
default=True,
|
|
null=False
|
|
)
|
|
|
|
tuesday = models.BooleanField(
|
|
default=True,
|
|
null=False
|
|
)
|
|
|
|
wednesday = models.BooleanField(
|
|
default=True,
|
|
null=False
|
|
)
|
|
|
|
thursday = models.BooleanField(
|
|
default=True,
|
|
null=False
|
|
)
|
|
|
|
friday = models.BooleanField(
|
|
default=True,
|
|
null=False
|
|
)
|
|
|
|
saturday = models.BooleanField(
|
|
default=True,
|
|
null=False
|
|
)
|
|
|
|
sunday = models.BooleanField(
|
|
default=True,
|
|
null=False
|
|
)
|
|
|
|
notes = models.TextField(
|
|
max_length=140,
|
|
null=True,
|
|
blank=True
|
|
)
|
|
|
|
def __str__(self):
|
|
return f"{self.mission}"
|
|
|