51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
from django.utils.translation import gettext_lazy as _
|
|
from django.db import models
|
|
|
|
class AircraftTypes(models.TextChoices):
|
|
C152 = "C152", _("Cessna 152")
|
|
P208 = "P208", _("Tecnam P2008")
|
|
PA28 = "PA28", _("Piper PA28R")
|
|
PA34 = "PA34", _("Piper PA34")
|
|
C182 = "C182", _("Cessna 182Q")
|
|
P210 = "TWEN", _("Tecnam P2010")
|
|
CP10 = "CP10", _("Cap 10")
|
|
ALX40 = "FSTD", _("Alsim ALX40")
|
|
|
|
class Aircraft(models.Model):
|
|
id = models.AutoField(
|
|
primary_key=True
|
|
)
|
|
|
|
type = models.CharField(
|
|
null=False,
|
|
blank=False,
|
|
max_length=4, # ICAO naming of aircraft,
|
|
choices=AircraftTypes
|
|
)
|
|
|
|
markings = models.CharField(
|
|
null=False,
|
|
blank=False,
|
|
max_length=6
|
|
)
|
|
|
|
complex = models.BooleanField(
|
|
null=False,
|
|
default=False
|
|
)
|
|
|
|
avail_hours = models.DurationField(
|
|
null=True,
|
|
verbose_name=_("Time until maintenance")
|
|
)
|
|
|
|
def __str__(self) -> str:
|
|
return f"{self.type} ({self.markings})"
|
|
|
|
# Insert dash between first and rest, I-OASM
|
|
def save(self, *args, **kwargs):
|
|
self.markings = self.markings.upper()
|
|
if not "-" in self.markings:
|
|
self.markings = self.markings[0] + "-" + self.markings[1:]
|
|
super().save(*args, **kwargs)
|