diff options
Diffstat (limited to 'archaeological_files/models.py')
-rw-r--r-- | archaeological_files/models.py | 65 |
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) |