Files
catops/cntmanage/flightslot/models/missions.py

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}"