from django.utils.translation import gettext_lazy as _ from django.db import models from datetime import timedelta from ..models.weekpref import WeekPreference class MissionType(models.TextChoices): OTHER = "OTHER", _("OTHER") PPL = "PPL", _("PPL") IR = "IR", _("IR") MEP = "MEP", _("MEP") CPL = "CPL", _("CPL") FI = "FI", _("FI") PC = "PC", _("PC") CHK = "CHK", _("CHK_6M") class MissionProfile(models.Model): id = models.AutoField( primary_key=True ) mtype = models.CharField( null=False, default=MissionType.PPL, choices=MissionType, verbose_name="Mission Type" ) mnum = models.PositiveSmallIntegerField( null=True, default=0, verbose_name="Mission Number" ) duration = models.DurationField( null=False, default=timedelta(hours=1) ) 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}"