summaryrefslogtreecommitdiff
path: root/archaeological_files/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-04-28 09:55:25 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2022-07-08 09:58:47 +0200
commitfd232fdba395c96564934052233dd23604082693 (patch)
tree5284082668976459d1b304532f883aad0f8044a9 /archaeological_files/models.py
parentde4a4dc7b9d7a227a4e48323db878c3db156389c (diff)
downloadIshtar-fd232fdba395c96564934052233dd23604082693.tar.bz2
Ishtar-fd232fdba395c96564934052233dd23604082693.zip
WIP: preventive forms
Diffstat (limited to 'archaeological_files/models.py')
-rw-r--r--archaeological_files/models.py65
1 files changed, 37 insertions, 28 deletions
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index db46c1ca7..fde527ae1 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -521,6 +521,18 @@ class File(
)
# <-- research archaeology
+ # --> preventive detail
+ study_period = models.CharField(_("Study period"), max_length=200,
+ default="", blank=True)
+ start_date = models.DateField(_("Start date"), blank=True, null=True)
+ end_date = models.DateField(_("End date"), blank=True, null=True)
+ ground_start_date = models.DateField(_("Ground start date"), blank=True, null=True)
+ ground_end_date = models.DateField(_("Ground end date"), blank=True, null=True)
+ execution_report_date = models.DateField(_("Execution report date"), blank=True,
+ null=True)
+ linear_meter = models.IntegerField(_("Linear meter"), blank=True, null=True)
+ # <-- preventive detail
+
documents = models.ManyToManyField(
Document, related_name="files", verbose_name=_("Documents"), blank=True
)
@@ -1142,47 +1154,44 @@ class FileDashboard:
)
-class PreventiveFile(models.Model):
- file = models.ForeignKey(File, verbose_name=_("File"))
- study_period = models.CharField(_("Study period"), max_length=200,
- default="", blank=True)
- start_date = models.DateField(_("Start date"), blank=True, null=True)
- end_date = models.DateField(_("End date"), blank=True, null=True)
- ground_start_date = models.DateField(_("Ground start date"), blank=True, null=True)
- ground_end_date = models.DateField(_("Ground end date"), blank=True, null=True)
- execution_report_date = models.DateField(_("Execution report date"), blank=True,
- null=True)
- linear_meter = models.IntegerField(_("Linear meter"), blank=True, null=True)
+class ManDays(models.Model):
+ man_by_day_planned = models.FloatField(
+ _("Man by day - planned"), null=True, blank=True)
+ days_planned = models.FloatField(
+ _("Days - planned"), null=True, blank=True)
+ man_by_day_worked = models.FloatField(
+ _("Man by day - worked"), null=True, blank=True)
+ days_worked = models.FloatField(
+ _("Days - worked"), null=True, blank=True)
- class Meta:
- verbose_name = _("Preventive file")
- verbose_name_plural = _("Preventive files")
+ @property
+ def man_days_planned(self):
+ if not self.days_planned or not self.man_by_day_planned:
+ return 0
+ return self.days_planned * self.man_by_day_planned
+ @property
+ def man_days_worked(self):
+ if not self.days_worked or not self.man_by_day_worked:
+ return 0
+ return self.days_worked * self.man_by_day_worked
-class ManDays(models.Model):
- man_days_planned = models.FloatField(
- _("Man-day planned"), null=True, blank=True)
- man_days_worked = models.FloatField(
- _("Man-day worked"), null=True, blank=True)
- class Meta:
- abstract = True
+class PreventiveFileGroundJob(ManDays):
+ file = models.ForeignKey(File, related_name="ground_jobs")
+ job = models.ForeignKey(Job)
class PreventiveFileJob(ManDays):
- file = models.ForeignKey(PreventiveFile)
+ file = models.ForeignKey(File, related_name="jobs")
job = models.ForeignKey(Job)
- ground_man_days_planned = models.FloatField(
- _("Ground man-day planned"), null=True, blank=True)
- ground_man_days_worked = models.FloatField(
- _("Ground man-day worked"), null=True, blank=True)
class PreventiveFileEquipmentCost(ManDays):
- file = models.ForeignKey(PreventiveFile)
+ file = models.ForeignKey(File, related_name="equipment_costs")
equipment_cost = models.ForeignKey(EquipmentCost)
class PreventiveFileTechnicalServiceCost(ManDays):
- file = models.ForeignKey(PreventiveFile)
+ file = models.ForeignKey(File, related_name="technical_service_costs")
technical_service_cost = models.ForeignKey(TechnicalServiceCost)