|
|
@ -12,7 +12,7 @@ from abc import abstractmethod
|
|
|
|
from django.contrib import messages
|
|
|
|
from django.contrib import messages
|
|
|
|
from django.db.models import QuerySet
|
|
|
|
from django.db.models import QuerySet
|
|
|
|
|
|
|
|
|
|
|
|
from konova.sub_settings.lanis_settings import DEFAULT_SRID_RLP, LANIS_ZOOM_LUT, LANIS_LINK_TEMPLATE
|
|
|
|
from konova.sub_settings.lanis_settings import LANIS_LINK_TEMPLATE, LANIS_LINK_DEFAULT
|
|
|
|
from konova.tasks import celery_send_mail_shared_access_removed, celery_send_mail_shared_access_given, \
|
|
|
|
from konova.tasks import celery_send_mail_shared_access_removed, celery_send_mail_shared_access_given, \
|
|
|
|
celery_send_mail_shared_data_recorded, celery_send_mail_shared_data_unrecorded, \
|
|
|
|
celery_send_mail_shared_data_recorded, celery_send_mail_shared_data_unrecorded, \
|
|
|
|
celery_send_mail_shared_data_deleted, celery_send_mail_shared_data_checked, \
|
|
|
|
celery_send_mail_shared_data_deleted, celery_send_mail_shared_data_checked, \
|
|
|
@ -706,32 +706,23 @@ class GeoReferencedMixin(models.Model):
|
|
|
|
return request
|
|
|
|
return request
|
|
|
|
|
|
|
|
|
|
|
|
def get_LANIS_link(self) -> str:
|
|
|
|
def get_LANIS_link(self) -> str:
|
|
|
|
""" Generates a link for LANIS depending on the geometry
|
|
|
|
""" Creates the link for 'LANIS' button on detail view of an entry.
|
|
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
Returns:
|
|
|
|
|
|
|
|
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
try:
|
|
|
|
entry_has_geometry = not self.geometry.geom.empty
|
|
|
|
geom = self.geometry.geom.transform(DEFAULT_SRID_RLP, clone=True)
|
|
|
|
if entry_has_geometry:
|
|
|
|
x = geom.centroid.x
|
|
|
|
link = LANIS_LINK_TEMPLATE.format(
|
|
|
|
y = geom.centroid.y
|
|
|
|
self.get_lanis_layer_name(),
|
|
|
|
area = int(geom.envelope.area)
|
|
|
|
self.identifier
|
|
|
|
z_l = 16
|
|
|
|
|
|
|
|
for k_area, v_zoom in LANIS_ZOOM_LUT.items():
|
|
|
|
|
|
|
|
if k_area < area:
|
|
|
|
|
|
|
|
z_l = v_zoom
|
|
|
|
|
|
|
|
break
|
|
|
|
|
|
|
|
zoom_lvl = z_l
|
|
|
|
|
|
|
|
except (AttributeError, IndexError) as e:
|
|
|
|
|
|
|
|
# If no geometry has been added, yet.
|
|
|
|
|
|
|
|
x = 1
|
|
|
|
|
|
|
|
y = 1
|
|
|
|
|
|
|
|
zoom_lvl = 6
|
|
|
|
|
|
|
|
return LANIS_LINK_TEMPLATE.format(
|
|
|
|
|
|
|
|
zoom_lvl,
|
|
|
|
|
|
|
|
x,
|
|
|
|
|
|
|
|
y,
|
|
|
|
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
link = LANIS_LINK_DEFAULT
|
|
|
|
|
|
|
|
return link
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_lanis_layer_name(self):
|
|
|
|
|
|
|
|
raise NotImplementedError("Must be implemented in subclasses!")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ResubmitableObjectMixin(models.Model):
|
|
|
|
class ResubmitableObjectMixin(models.Model):
|
|
|
|