#50 Overlaying geometries
* refactors geometry field into GeoReferencedMixin, holding more handy methods and used in all models, formerly holding the geometry field * refactors backend admin configuration, so modified, deleted and created are not editable in the backend which also skips loading of all possible choices * fixes typo in sanitize_db command * introduces GeometryConflict model, holding a link between two geometries, where one overlaps the other * adds first (WIP) messages into detail views of ema and intervention for test purposes
This commit is contained in:
@@ -7,6 +7,7 @@ Created on: 15.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
|
||||
@@ -18,13 +19,15 @@ from intervention.models.legal import Legal
|
||||
from intervention.models.responsibility import Responsibility
|
||||
from intervention.models.revocation import RevocationDocument, Revocation
|
||||
from intervention.utils.quality import InterventionQualityChecker
|
||||
from konova.models import generate_document_file_upload_path, AbstractDocument, Geometry, BaseObject, ShareableObjectMixin, \
|
||||
RecordableObjectMixin, CheckableObjectMixin
|
||||
from konova.models import generate_document_file_upload_path, AbstractDocument, BaseObject, \
|
||||
ShareableObjectMixin, \
|
||||
RecordableObjectMixin, CheckableObjectMixin, GeoReferencedMixin
|
||||
from konova.settings import LANIS_LINK_TEMPLATE, LANIS_ZOOM_LUT, DEFAULT_SRID_RLP
|
||||
from konova.utils.message_templates import DATA_UNSHARED_EXPLANATION
|
||||
from user.models import UserActionLogEntry
|
||||
|
||||
|
||||
class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, CheckableObjectMixin):
|
||||
class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, CheckableObjectMixin, GeoReferencedMixin):
|
||||
"""
|
||||
Interventions are e.g. construction sites where nature used to be.
|
||||
"""
|
||||
@@ -42,7 +45,6 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
|
||||
blank=True,
|
||||
help_text="Holds data on legal dates or law"
|
||||
)
|
||||
geometry = models.ForeignKey(Geometry, null=True, blank=True, on_delete=models.SET_NULL)
|
||||
|
||||
objects = InterventionManager()
|
||||
|
||||
@@ -263,6 +265,13 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
|
||||
if self.checked:
|
||||
self.set_unchecked()
|
||||
|
||||
def set_status_messages(self, request: HttpRequest):
|
||||
if not self.is_shared_with(request.user):
|
||||
messages.info(request, DATA_UNSHARED_EXPLANATION)
|
||||
request = self._set_overlapping_message(request)
|
||||
request = self._set_overlapped_by_message(request)
|
||||
return request
|
||||
|
||||
|
||||
class InterventionDocument(AbstractDocument):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user