#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:
@@ -14,16 +14,14 @@ from user.models import User, Team
|
||||
from django.db import models, transaction
|
||||
from django.db.models import QuerySet, Sum
|
||||
from django.http import HttpRequest
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from compensation.managers import CompensationManager
|
||||
from compensation.models import CompensationState, CompensationAction
|
||||
from compensation.utils.quality import CompensationQualityChecker
|
||||
from konova.models import BaseObject, AbstractDocument, Deadline, generate_document_file_upload_path, \
|
||||
GeoReferencedMixin
|
||||
from konova.settings import DEFAULT_SRID_RLP, LANIS_LINK_TEMPLATE
|
||||
GeoReferencedMixin, DeadlineType
|
||||
from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION, COMPENSATION_REMOVED_TEMPLATE, \
|
||||
DOCUMENT_REMOVED_TEMPLATE, COMPENSATION_EDITED_TEMPLATE, DEADLINE_REMOVED, ADDED_DEADLINE, \
|
||||
DOCUMENT_REMOVED_TEMPLATE, DEADLINE_REMOVED, ADDED_DEADLINE, \
|
||||
COMPENSATION_ACTION_REMOVED, COMPENSATION_STATE_REMOVED, INTERVENTION_HAS_REVOCATIONS_TEMPLATE
|
||||
from user.models import UserActionLogEntry
|
||||
|
||||
@@ -226,6 +224,15 @@ class AbstractCompensation(BaseObject, GeoReferencedMixin):
|
||||
request = self.set_geometry_conflict_message(request)
|
||||
return request
|
||||
|
||||
def get_finished_deadlines(self):
|
||||
""" Getter for FINISHED-deadlines
|
||||
|
||||
Returns:
|
||||
queryset (QuerySet): The finished deadlines
|
||||
"""
|
||||
return self.deadlines.filter(
|
||||
type=DeadlineType.FINISHED
|
||||
)
|
||||
|
||||
class CEFMixin(models.Model):
|
||||
""" Provides CEF flag as Mixin
|
||||
|
||||
@@ -20,6 +20,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if not has_finished_deadlines %}
|
||||
<div class="alert alert-danger mb-0">
|
||||
{% trans 'Missing finished deadline ' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
|
||||
@@ -20,6 +20,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if not has_finished_deadlines %}
|
||||
<div class="alert alert-danger mb-0">
|
||||
{% trans 'Missing finished deadline ' %}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="card-body scroll-300 p-2">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
|
||||
@@ -19,6 +19,7 @@ class CompensationQualityChecker(AbstractQualityChecker):
|
||||
self._check_states()
|
||||
self._check_actions()
|
||||
self._check_geometry()
|
||||
self._check_deadlines()
|
||||
self.valid = len(self.messages) == 0
|
||||
|
||||
def _check_states(self):
|
||||
@@ -47,6 +48,16 @@ class CompensationQualityChecker(AbstractQualityChecker):
|
||||
if not self.obj.actions.all():
|
||||
self._add_missing_attr_name(_con("Compensation", "Actions"))
|
||||
|
||||
def _check_deadlines(self):
|
||||
""" Checks data quality for related Deadline objects
|
||||
|
||||
Returns:
|
||||
|
||||
"""
|
||||
finished_deadlines = self.obj.get_finished_deadlines()
|
||||
if not finished_deadlines.exists():
|
||||
self._add_missing_attr_name(_("Finished deadlines"))
|
||||
|
||||
|
||||
class EcoAccountQualityChecker(CompensationQualityChecker):
|
||||
def run_check(self):
|
||||
|
||||
@@ -240,6 +240,7 @@ def detail_view(request: HttpRequest, id: str):
|
||||
"is_ets_member": in_group(_user, ETS_GROUP),
|
||||
"LANIS_LINK": comp.get_LANIS_link(),
|
||||
TAB_TITLE_IDENTIFIER: f"{comp.identifier} - {comp.title}",
|
||||
"has_finished_deadlines": comp.get_finished_deadlines().exists(),
|
||||
}
|
||||
context = BaseContext(request, context).context
|
||||
return render(request, template, context)
|
||||
|
||||
@@ -242,6 +242,7 @@ def detail_view(request: HttpRequest, id: str):
|
||||
"deductions": deductions,
|
||||
"actions": actions,
|
||||
TAB_TITLE_IDENTIFIER: f"{acc.identifier} - {acc.title}",
|
||||
"has_finished_deadlines": acc.get_finished_deadlines().exists(),
|
||||
}
|
||||
context = BaseContext(request, context).context
|
||||
return render(request, template, context)
|
||||
|
||||
Reference in New Issue
Block a user