#50 Overlaying geometries KOM + OEK

* removes unused messages
* adds geometry conflict message rendering for KOM and OEK
* removes unused methods in GeoReferencedMixin
* generalizes geometrical lookup for conflicts from overlaps to intersects
This commit is contained in:
2021-12-15 15:10:35 +01:00
parent f4541abf20
commit 41af455d09
9 changed files with 70 additions and 37 deletions

View File

@@ -7,6 +7,7 @@ Created on: 16.11.21
"""
import shutil
from django.contrib import messages
from django.contrib.auth.models import User
from django.db import models, transaction
from django.db.models import QuerySet, Sum
@@ -19,6 +20,7 @@ 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
from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION
from user.models import UserActionLogEntry
@@ -155,6 +157,22 @@ class AbstractCompensation(BaseObject, GeoReferencedMixin):
checker.run_check()
return checker
def set_status_messages(self, request: HttpRequest):
""" Setter for different information that need to be rendered
Adds messages to the given HttpRequest
Args:
request (HttpRequest): The incoming request
Returns:
request (HttpRequest): The modified request
"""
if not self.is_shared_with(request.user):
messages.info(request, DATA_UNSHARED_EXPLANATION)
request = self._set_geometry_conflict_message(request)
return request
class CEFMixin(models.Model):
""" Provides CEF flag as Mixin

View File

@@ -184,8 +184,7 @@ def detail_view(request: HttpRequest, id: str):
sum_after_states = after_states.aggregate(Sum("surface"))["surface__sum"] or 0
diff_states = abs(sum_before_states - sum_after_states)
if not is_data_shared:
messages.info(request, DATA_UNSHARED_EXPLANATION)
request = comp.set_status_messages(request)
context = {
"obj": comp,

View File

@@ -202,8 +202,7 @@ def detail_view(request: HttpRequest, id: str):
)
actions = acc.actions.all()
if not is_data_shared:
messages.info(request, DATA_UNSHARED_EXPLANATION)
request = acc.set_status_messages(request)
context = {
"obj": acc,