From c328845dacc9f66fea624b26e06db20d764529be Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Tue, 3 Aug 2021 17:53:55 +0200 Subject: Preventive file: add fields - remove dynamic add (too buggy for now) --- archaeological_files/models.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'archaeological_files/models.py') diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 51273a17e..79dabc84d 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -25,6 +25,7 @@ from django.conf import settings from django.contrib.gis.db import models from django.contrib.postgres.indexes import GinIndex from django.core.cache import cache +from django.core.validators import MinValueValidator, MaxValueValidator from django.db.models import Q, Count, Sum from django.db.models.signals import post_save, m2m_changed, post_delete from django.core.urlresolvers import reverse @@ -57,6 +58,7 @@ from ishtar_common.models import ( SearchVectorConfig, DocumentItem, CompleteIdentifierItem, + HierarchicalType, ) from ishtar_common.models_common import HistoricalRecords, Department @@ -279,6 +281,36 @@ if settings.COUNTRY == "fr": post_delete.connect(post_save_cache, sender=SaisineType) +class AgreementType(GeneralType): + class Meta: + verbose_name = _("Agreement type - France") + verbose_name_plural = _("Agreement types - France") + ordering = ("label",) + + +post_save.connect(post_save_cache, sender=AgreementType) +post_delete.connect(post_save_cache, sender=AgreementType) + + +class OperationTypeForRoyalties(GeneralType): + increase_coefficient = models.FloatField( + _("Increase coefficient"), default=1) + increased_final_value = models.FloatField( + _("Increased final value"), default=1) + category = models.PositiveSmallIntegerField( + _("Category"), default=1, validators=[MinValueValidator(1), + MaxValueValidator(5)]) + + class Meta: + verbose_name = _("Operation type for royalties - France") + verbose_name_plural = _("Operation types for royalties - France") + ordering = ("id",) + + +post_save.connect(post_save_cache, sender=OperationTypeForRoyalties) +post_delete.connect(post_save_cache, sender=OperationTypeForRoyalties) + + class File( ClosedItem, DocumentItem, @@ -620,6 +652,16 @@ class File( _("Execution report date"), blank=True, null=True ) linear_meter = models.IntegerField(_("Linear meter"), blank=True, null=True) + type_of_agreement = models.ForeignKey( + AgreementType, blank=True, null=True, + on_delete=models.SET_NULL, + verbose_name=_("Type of agreement"), + ) + operation_type_for_royalties = models.ForeignKey( + OperationTypeForRoyalties, blank=True, null=True, + on_delete=models.SET_NULL, + verbose_name=_("Operation type for royalties"), + ) # <-- preventive detail documents = models.ManyToManyField( -- cgit v1.2.3