#190 Mandatory finished deadline

* adds template message to indicate a finished-deadline is mandatory
* adds finished deadline existance to quality check of compensation-like entries
* adds proper warning to quality check result
* extends tests
This commit is contained in:
2022-08-08 14:57:36 +02:00
parent f717e650e6
commit 538d8d1ed2
11 changed files with 106 additions and 37 deletions

View File

@@ -22,7 +22,7 @@ from codelist.models import KonovaCode, KonovaCodeList
from compensation.models import Compensation, CompensationState, CompensationAction, EcoAccount, EcoAccountDeduction
from intervention.models import Legal, Responsibility, Intervention, Handler
from konova.management.commands.setup_data import GROUPS_DATA
from konova.models import Geometry
from konova.models import Geometry, Deadline, DeadlineType
from konova.settings import DEFAULT_GROUP
from konova.utils.generators import generate_random_string
from user.models import UserActionLogEntry
@@ -41,6 +41,7 @@ class BaseTestCase(TestCase):
eco_account = None
comp_state = None
comp_action = None
finished_deadline = None
codes = None
superuser_pw = "root"
@@ -69,6 +70,7 @@ class BaseTestCase(TestCase):
self.create_dummy_action()
self.codes = self.create_dummy_codes()
self.team = self.create_dummy_team()
self.finished_deadline = self.create_dummy_deadline()
# Set the default group as only group for the user
default_group = self.groups.get(name=DEFAULT_GROUP)
@@ -279,6 +281,20 @@ class BaseTestCase(TestCase):
return team
def create_dummy_deadline(self, type: DeadlineType = DeadlineType.FINISHED):
""" Creates a dummy deadline.
If type is not specified, it defaults to DeadlineType.FINISHED
Returns:
deadline (Deadline): A deadline
"""
deadline = Deadline.objects.create(
type=type,
date="1970-01-01"
)
return deadline
@staticmethod
def create_dummy_geometry() -> MultiPolygon:
""" Creates some geometry
@@ -361,6 +377,7 @@ class BaseTestCase(TestCase):
compensation.before_states.add(self.comp_state)
compensation.actions.add(self.comp_action)
compensation.geometry.geom = self.create_dummy_geometry()
compensation.deadlines.add(self.finished_deadline)
compensation.geometry.save()
return compensation
@@ -390,6 +407,7 @@ class BaseTestCase(TestCase):
ema.before_states.add(self.comp_state)
ema.actions.add(self.comp_action)
ema.geometry.geom = self.create_dummy_geometry()
ema.deadlines.add(self.finished_deadline)
ema.geometry.save()
return ema
@@ -410,6 +428,7 @@ class BaseTestCase(TestCase):
eco_account.geometry.geom = self.create_dummy_geometry()
eco_account.geometry.save()
eco_account.deductable_surface = eco_account.get_state_after_surface_sum()
eco_account.deadlines.add(self.finished_deadline)
eco_account.save()
return eco_account