# Netgis client update
* minor changes to configuration
This commit is contained in:
		
							parent
							
								
									97f1882698
								
							
						
					
					
						commit
						7bcd32fd7a
					
				@ -27,7 +27,7 @@ class SimpleGeomForm(BaseForm):
 | 
			
		||||
    """
 | 
			
		||||
    read_only = True
 | 
			
		||||
    geometry_simplified = False
 | 
			
		||||
    geom = JSONField(
 | 
			
		||||
    output = JSONField(
 | 
			
		||||
        label=_("Geometry"),
 | 
			
		||||
        help_text=_(""),
 | 
			
		||||
        label_suffix="",
 | 
			
		||||
@ -48,30 +48,29 @@ class SimpleGeomForm(BaseForm):
 | 
			
		||||
                raise AttributeError
 | 
			
		||||
 | 
			
		||||
            geojson = self.instance.geometry.as_feature_collection(srid=DEFAULT_SRID_RLP)
 | 
			
		||||
            geojson = self._set_properties(geojson, self.instance.identifier)
 | 
			
		||||
            geom = json.dumps(geojson)
 | 
			
		||||
        except AttributeError:
 | 
			
		||||
            # If no geometry exists for this form, we simply set the value to None and zoom to the maximum level
 | 
			
		||||
            geom = ""
 | 
			
		||||
            self.empty = True
 | 
			
		||||
 | 
			
		||||
        self.initialize_form_field("geom", geom)
 | 
			
		||||
        self.initialize_form_field("output", geom)
 | 
			
		||||
 | 
			
		||||
    def is_valid(self):
 | 
			
		||||
        super().is_valid()
 | 
			
		||||
        is_valid = True
 | 
			
		||||
 | 
			
		||||
        # Get geojson from form
 | 
			
		||||
        geom = self.data["geom"]
 | 
			
		||||
        geom = self.data["output"]
 | 
			
		||||
        if geom is None or len(geom) == 0:
 | 
			
		||||
            # empty geometry is a valid geometry
 | 
			
		||||
            self.cleaned_data["geom"] = MultiPolygon(srid=DEFAULT_SRID_RLP).ewkt
 | 
			
		||||
            self.cleaned_data["output"] = MultiPolygon(srid=DEFAULT_SRID_RLP).ewkt
 | 
			
		||||
            return is_valid
 | 
			
		||||
        geom = json.loads(geom)
 | 
			
		||||
 | 
			
		||||
        # Write submitted data back into form field to make sure invalid geometry
 | 
			
		||||
        # will be rendered again on failed submit
 | 
			
		||||
        self.initialize_form_field("geom", self.data["geom"])
 | 
			
		||||
        self.initialize_form_field("output", self.data["output"])
 | 
			
		||||
 | 
			
		||||
        # Initialize features list with empty MultiPolygon, so that an empty input will result in a
 | 
			
		||||
        # proper empty MultiPolygon object
 | 
			
		||||
@ -97,7 +96,7 @@ class SimpleGeomForm(BaseForm):
 | 
			
		||||
                g = self.__flatten_geom_to_2D(g)
 | 
			
		||||
 | 
			
		||||
            if g.geom_type not in accepted_ogr_types:
 | 
			
		||||
                self.add_error("geom", _("Only surfaces allowed. Points or lines must be buffered."))
 | 
			
		||||
                self.add_error("output", _("Only surfaces allowed. Points or lines must be buffered."))
 | 
			
		||||
                is_valid &= False
 | 
			
		||||
                return is_valid
 | 
			
		||||
 | 
			
		||||
@ -105,7 +104,7 @@ class SimpleGeomForm(BaseForm):
 | 
			
		||||
            g = Polygon.from_ewkt(g.ewkt)
 | 
			
		||||
            is_valid &= g.valid
 | 
			
		||||
            if not g.valid:
 | 
			
		||||
                self.add_error("geom", g.valid_reason)
 | 
			
		||||
                self.add_error("output", g.valid_reason)
 | 
			
		||||
                return is_valid
 | 
			
		||||
 | 
			
		||||
            if isinstance(g, Polygon):
 | 
			
		||||
@ -125,7 +124,7 @@ class SimpleGeomForm(BaseForm):
 | 
			
		||||
        # Write unioned Multipolygon into cleaned data
 | 
			
		||||
        if self.cleaned_data is None:
 | 
			
		||||
            self.cleaned_data = {}
 | 
			
		||||
        self.cleaned_data["geom"] = form_geom.ewkt
 | 
			
		||||
        self.cleaned_data["output"] = form_geom.ewkt
 | 
			
		||||
 | 
			
		||||
        return is_valid
 | 
			
		||||
 | 
			
		||||
@ -135,7 +134,7 @@ class SimpleGeomForm(BaseForm):
 | 
			
		||||
        Returns:
 | 
			
		||||
 | 
			
		||||
        """
 | 
			
		||||
        geom = self.cleaned_data.get("geom")
 | 
			
		||||
        geom = self.cleaned_data.get("output")
 | 
			
		||||
        g = gdal.OGRGeometry(geom, srs=DEFAULT_SRID_RLP)
 | 
			
		||||
        num_vertices = g.num_coords
 | 
			
		||||
 | 
			
		||||
@ -151,7 +150,7 @@ class SimpleGeomForm(BaseForm):
 | 
			
		||||
 | 
			
		||||
        if not is_area_valid:
 | 
			
		||||
            self.add_error(
 | 
			
		||||
                "geom",
 | 
			
		||||
                "output",
 | 
			
		||||
                _("Geometry must be greater than 1m². Currently is {}m²").format(
 | 
			
		||||
                    float(geom.area)
 | 
			
		||||
                )
 | 
			
		||||
@ -194,14 +193,14 @@ class SimpleGeomForm(BaseForm):
 | 
			
		||||
            if self.instance is None or self.instance.geometry is None:
 | 
			
		||||
                raise LookupError
 | 
			
		||||
            geometry = self.instance.geometry
 | 
			
		||||
            geometry.geom = self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID_RLP))
 | 
			
		||||
            geometry.geom = self.cleaned_data.get("output", MultiPolygon(srid=DEFAULT_SRID_RLP))
 | 
			
		||||
            geometry.modified = action
 | 
			
		||||
 | 
			
		||||
            geometry.save()
 | 
			
		||||
        except LookupError:
 | 
			
		||||
            # No geometry or linked instance holding a geometry exist --> create a new one!
 | 
			
		||||
            geometry = Geometry.objects.create(
 | 
			
		||||
                geom=self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID_RLP)),
 | 
			
		||||
                geom=self.cleaned_data.get("output", MultiPolygon(srid=DEFAULT_SRID_RLP)),
 | 
			
		||||
                created=action,
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -32,7 +32,7 @@
 | 
			
		||||
	{
 | 
			
		||||
		"projection": "EPSG:25832",
 | 
			
		||||
		"center_lonlat": [ 7.0, 50.0 ],
 | 
			
		||||
		"zoom": 12,
 | 
			
		||||
		"zoom": 9,
 | 
			
		||||
		"min_zoom": 5,
 | 
			
		||||
		"max_zoom": 24,
 | 
			
		||||
		"scalebar": true,
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user