49 lines
1.4 KiB
Python
49 lines
1.4 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django_core.models import AbstractBaseModel
|
|
from model_bakery import baker
|
|
|
|
|
|
from .valuation import ValuationModel
|
|
|
|
|
|
class EvaluationReportModel(AbstractBaseModel):
|
|
valuation = models.OneToOneField(
|
|
ValuationModel,
|
|
on_delete=models.CASCADE,
|
|
related_name="report",
|
|
verbose_name=_("valuation"),
|
|
)
|
|
evaluator = models.ForeignKey(
|
|
"accounts.User",
|
|
on_delete=models.PROTECT,
|
|
related_name="reports",
|
|
verbose_name=_("evaluator"),
|
|
)
|
|
report_number = models.CharField(
|
|
verbose_name=_("report number"), max_length=100, unique=True
|
|
)
|
|
final_value = models.DecimalField(
|
|
verbose_name=_("final value"), max_digits=15, decimal_places=2
|
|
)
|
|
report_file = models.FileField(
|
|
verbose_name=_("report file"), upload_to="evaluation/reports/", blank=True, null=True
|
|
)
|
|
conclusion_text = models.TextField(verbose_name=_("conclusion text"), blank=True)
|
|
approved_at = models.DateTimeField(
|
|
verbose_name=_("approved at"), blank=True, null=True
|
|
)
|
|
|
|
def __str__(self):
|
|
return f"Report #{self.report_number} for {self.valuation}"
|
|
|
|
@classmethod
|
|
def _baker(cls):
|
|
return baker.make(cls)
|
|
|
|
class Meta:
|
|
db_table = "EvaluationReport"
|
|
verbose_name = _("Evaluation Report")
|
|
verbose_name_plural = _("Evaluation Reports")
|
|
|