Files
backend-v1/core/apps/evaluation/models/report.py

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")