summaryrefslogtreecommitdiff
path: root/archaeological_files/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-07-09 19:20:12 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-10-25 12:06:02 +0200
commitd62b140949294a3939eb6095206aef416e188806 (patch)
tree1d8e226217b00aaccfe0a4884710ff15b42c4f09 /archaeological_files/models.py
parent3a02fa2e99aa8383e876e0342c069656c6b5daea (diff)
downloadIshtar-d62b140949294a3939eb6095206aef416e188806.tar.bz2
Ishtar-d62b140949294a3939eb6095206aef416e188806.zip
Preventive file: work on inlines
Diffstat (limited to 'archaeological_files/models.py')
-rw-r--r--archaeological_files/models.py110
1 files changed, 51 insertions, 59 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 87abd4083..334e8faa4 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -88,84 +88,72 @@ class Job(GeneralType):
class Meta:
verbose_name = _("Job")
verbose_name_plural = _("Jobs")
- ordering = ("label",)
+ ordering = ("order", "label",)
+
+class GenericEquipmentServiceType(GeneralType):
+ order = models.IntegerField(_("Order"), default=10)
-class GenericEquipmentType(GeneralType):
class Meta:
verbose_name = _("Generic equipment type")
verbose_name_plural = _("Generic equipment types")
- ordering = ("label",)
+ ordering = ("order", "label",)
-class EquipmentType(GeneralType):
+class EquipmentServiceType(GeneralType):
generic_equipment_type = models.ForeignKey(
- GenericEquipmentType, verbose_name=_("Generic type"))
-
- class Meta:
- verbose_name = _("Equipment type")
- verbose_name_plural = _("Equipment types")
- ordering = ("label",)
-
-
-class EquipmentCost(models.Model):
- service_provider = models.CharField(_("Service provider"), max_length=200,
- default="-")
- equipment_type = models.ForeignKey(
- EquipmentType, verbose_name=_("Equipment"))
- flat_rate = models.BooleanField(_("Flat rate"), default=False)
- daily_cost = models.FloatField(_("Daily cost"), blank=True, null=True)
- monday = models.BooleanField(_("Monday"), default=True)
- tuesday = models.BooleanField(_("Tuesday"), default=True)
- wednesday = models.BooleanField(_("Wednesday"), default=True)
- thursday = models.BooleanField(_("Thursday"), default=True)
- friday = models.BooleanField(_("Friday"), default=True)
+ GenericEquipmentServiceType, verbose_name=_("Generic type"))
order = models.IntegerField(_("Order"), default=10)
- parents = models.ManyToManyField(
+ parent = models.ForeignKey(
"self",
blank=True,
- verbose_name=_("Parents"),
- help_text=_("Auto-add this cost when a parent is added")
+ null=True,
+ on_delete=models.CASCADE,
+ verbose_name=_("Parent"),
+ help_text=_("Auto-add this cost when a parent is added"),
+ related_name="children"
)
class Meta:
- verbose_name = _("Equipment cost")
- verbose_name_plural = _("Equipment costs")
-
-
-class TechnicalService(GeneralType):
- class Meta:
- verbose_name = _("Technical service")
- verbose_name_plural = _("Technical services")
- ordering = ("label",)
+ verbose_name = _("Equipment/service type")
+ verbose_name_plural = _("Equipment/service types")
+ ordering = ("order", "label",)
-TECH_UNITS = (
- ("D", _("Days")),
- ("M", _("Linear meter")),
+ES_UNITS = (
+ ("D", _("days")),
+ ("W", _("weeks")),
+ ("M", _("months")),
+ ("L", _("linear meter")),
)
-class TechnicalServiceCost(models.Model):
- service_provider = models.CharField(_("Service provider"), max_length=200,
- default="-")
- technical_service = models.ForeignKey(
- TechnicalService, verbose_name=_("Technical service"))
+class EquipmentServiceCost(models.Model):
+ equipment_service_type = models.ForeignKey(
+ EquipmentServiceType, verbose_name=_("Equipment/Service"))
+ service_provider = models.CharField(
+ _("Service provider"), max_length=200, blank=True, default="")
flat_rate = models.BooleanField(_("Flat rate"), default=False)
unitary_cost = models.FloatField(_("Unitary cost"), blank=True, null=True)
- unit = models.CharField(_("Unit"), max_length=1, choices=TECH_UNITS,
+ unit = models.CharField(_("Unit"), max_length=1, choices=ES_UNITS,
blank=True, null=True)
+ specificity = models.CharField(_("Specificity"), blank=True,
+ max_length=200, default="")
order = models.IntegerField(_("Order"), default=10)
- parents = models.ManyToManyField(
- "self",
- blank=True,
- verbose_name=_("Parents"),
- help_text=_("Auto-add this cost when a parent is added")
- )
+ available = models.BooleanField(_("Available"), default=True)
class Meta:
- verbose_name = _("Technical service cost")
- verbose_name_plural = _("Technical service costs")
+ verbose_name = _("Equipment/service cost")
+ verbose_name_plural = _("Equipment/service costs")
+ ordering = ("order", "equipment_service_type__label",)
+
+ def __str__(self):
+ lbl = str(self.equipment_service_type)
+ if self.specificity:
+ lbl += " - " + self.specificity
+ if self.service_provider:
+ lbl += f" ({self.service_provider})"
+ return lbl
class FileType(GeneralType):
@@ -1205,11 +1193,17 @@ class PreventiveFileGroundJob(ManDays):
file = models.ForeignKey(File, related_name="ground_jobs")
job = models.ForeignKey(Job)
+ class Meta:
+ ordering = ("job",)
+
class PreventiveFileJob(ManDays):
file = models.ForeignKey(File, related_name="jobs")
job = models.ForeignKey(Job)
+ class Meta:
+ ordering = ("job",)
+
class TechDays(models.Model):
quantity_by_day_planned = models.FloatField(
@@ -1237,11 +1231,9 @@ class TechDays(models.Model):
return self.days_worked * self.quantity_by_day_worked
-class PreventiveFileEquipmentCost(TechDays):
+class PreventiveFileEquipmentServiceCost(TechDays):
file = models.ForeignKey(File, related_name="equipment_costs")
- equipment_cost = models.ForeignKey(EquipmentCost)
+ equipment_service_cost = models.ForeignKey(EquipmentServiceCost)
-
-class PreventiveFileTechnicalServiceCost(TechDays):
- file = models.ForeignKey(File, related_name="technical_service_costs")
- technical_service_cost = models.ForeignKey(TechnicalServiceCost)
+ class Meta:
+ ordering = ("equipment_service_cost",)