# 86 LANIS link fix
* simplifies creation of LANIS link by refactoring into super class
This commit is contained in:
		
							parent
							
								
									6ea66180d1
								
							
						
					
					
						commit
						a096b2a413
					
				@ -331,28 +331,6 @@ class Compensation(AbstractCompensation, CEFMixin, CoherenceMixin):
 | 
			
		||||
        """
 | 
			
		||||
        return self.intervention.users.all()
 | 
			
		||||
 | 
			
		||||
    def get_LANIS_link(self) -> str:
 | 
			
		||||
        """ Generates a link for LANIS depending on the geometry
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        try:
 | 
			
		||||
            geom = self.geometry.geom.transform(DEFAULT_SRID_RLP, clone=True)
 | 
			
		||||
            x = geom.centroid.x
 | 
			
		||||
            y = geom.centroid.y
 | 
			
		||||
            zoom_lvl = 16
 | 
			
		||||
        except AttributeError:
 | 
			
		||||
            # If no geometry has been added, yet.
 | 
			
		||||
            x = 1
 | 
			
		||||
            y = 1
 | 
			
		||||
            zoom_lvl = 6
 | 
			
		||||
        return LANIS_LINK_TEMPLATE.format(
 | 
			
		||||
            zoom_lvl,
 | 
			
		||||
            x,
 | 
			
		||||
            y,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def get_documents(self) -> QuerySet:
 | 
			
		||||
        """ Getter for all documents of a compensation
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -123,28 +123,6 @@ class EcoAccount(AbstractCompensation, ShareableObjectMixin, RecordableObjectMix
 | 
			
		||||
 | 
			
		||||
        return ret_val_total, ret_val_relative
 | 
			
		||||
 | 
			
		||||
    def get_LANIS_link(self) -> str:
 | 
			
		||||
        """ Generates a link for LANIS depending on the geometry
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        try:
 | 
			
		||||
            geom = self.geometry.geom.transform(DEFAULT_SRID_RLP, clone=True)
 | 
			
		||||
            x = geom.centroid.x
 | 
			
		||||
            y = geom.centroid.y
 | 
			
		||||
            zoom_lvl = 16
 | 
			
		||||
        except AttributeError:
 | 
			
		||||
            # If no geometry has been added, yet.
 | 
			
		||||
            x = 1
 | 
			
		||||
            y = 1
 | 
			
		||||
            zoom_lvl = 6
 | 
			
		||||
        return LANIS_LINK_TEMPLATE.format(
 | 
			
		||||
            zoom_lvl,
 | 
			
		||||
            x,
 | 
			
		||||
            y,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def quality_check(self) -> EcoAccountQualityChecker:
 | 
			
		||||
        """ Quality check
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -51,28 +51,6 @@ class Ema(AbstractCompensation, ShareableObjectMixin, RecordableObjectMixin):
 | 
			
		||||
            self.identifier = new_id
 | 
			
		||||
        super().save(*args, **kwargs)
 | 
			
		||||
 | 
			
		||||
    def get_LANIS_link(self) -> str:
 | 
			
		||||
        """ Generates a link for LANIS depending on the geometry
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        try:
 | 
			
		||||
            geom = self.geometry.geom.transform(DEFAULT_SRID_RLP, clone=True)
 | 
			
		||||
            x = geom.centroid.x
 | 
			
		||||
            y = geom.centroid.y
 | 
			
		||||
            zoom_lvl = 16
 | 
			
		||||
        except AttributeError:
 | 
			
		||||
            # If no geometry has been added, yet.
 | 
			
		||||
            x = 1
 | 
			
		||||
            y = 1
 | 
			
		||||
            zoom_lvl = 6
 | 
			
		||||
        return LANIS_LINK_TEMPLATE.format(
 | 
			
		||||
            zoom_lvl,
 | 
			
		||||
            x,
 | 
			
		||||
            y,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def quality_check(self) -> EmaQualityChecker:
 | 
			
		||||
        """ Quality check
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -100,34 +100,6 @@ class Intervention(BaseObject, ShareableObjectMixin, RecordableObjectMixin, Chec
 | 
			
		||||
        checker.run_check()
 | 
			
		||||
        return checker
 | 
			
		||||
 | 
			
		||||
    def get_LANIS_link(self) -> str:
 | 
			
		||||
        """ Generates a link for LANIS depending on the geometry
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        try:
 | 
			
		||||
            geom = self.geometry.geom.transform(DEFAULT_SRID_RLP, clone=True)
 | 
			
		||||
            x = geom.centroid.x
 | 
			
		||||
            y = geom.centroid.y
 | 
			
		||||
            area = int(geom.envelope.area)
 | 
			
		||||
            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,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
    def get_documents(self) -> (QuerySet, QuerySet):
 | 
			
		||||
        """ Getter for all documents of an intervention
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,6 +12,7 @@ from abc import abstractmethod
 | 
			
		||||
from django.contrib import messages
 | 
			
		||||
from django.db.models import QuerySet
 | 
			
		||||
 | 
			
		||||
from konova.sub_settings.lanis_settings import DEFAULT_SRID_RLP, LANIS_ZOOM_LUT, LANIS_LINK_TEMPLATE
 | 
			
		||||
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_deleted, celery_send_mail_shared_data_checked
 | 
			
		||||
@ -544,3 +545,31 @@ class GeoReferencedMixin(models.Model):
 | 
			
		||||
            message_str = GEOMETRY_CONFLICT_WITH_TEMPLATE.format(instance_identifiers)
 | 
			
		||||
            messages.info(request, message_str)
 | 
			
		||||
        return request
 | 
			
		||||
 | 
			
		||||
    def get_LANIS_link(self) -> str:
 | 
			
		||||
        """ Generates a link for LANIS depending on the geometry
 | 
			
		||||
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        try:
 | 
			
		||||
            geom = self.geometry.geom.transform(DEFAULT_SRID_RLP, clone=True)
 | 
			
		||||
            x = geom.centroid.x
 | 
			
		||||
            y = geom.centroid.y
 | 
			
		||||
            area = int(geom.envelope.area)
 | 
			
		||||
            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,
 | 
			
		||||
        )
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user