# Netgis client update

* minor changes to configuration
This commit is contained in:
mpeltriaux 2025-10-12 11:30:04 +02:00
parent 97f1882698
commit 7bcd32fd7a
2 changed files with 13 additions and 14 deletions

View File

@ -27,7 +27,7 @@ class SimpleGeomForm(BaseForm):
""" """
read_only = True read_only = True
geometry_simplified = False geometry_simplified = False
geom = JSONField( output = JSONField(
label=_("Geometry"), label=_("Geometry"),
help_text=_(""), help_text=_(""),
label_suffix="", label_suffix="",
@ -48,30 +48,29 @@ class SimpleGeomForm(BaseForm):
raise AttributeError raise AttributeError
geojson = self.instance.geometry.as_feature_collection(srid=DEFAULT_SRID_RLP) geojson = self.instance.geometry.as_feature_collection(srid=DEFAULT_SRID_RLP)
geojson = self._set_properties(geojson, self.instance.identifier)
geom = json.dumps(geojson) geom = json.dumps(geojson)
except AttributeError: except AttributeError:
# If no geometry exists for this form, we simply set the value to None and zoom to the maximum level # If no geometry exists for this form, we simply set the value to None and zoom to the maximum level
geom = "" geom = ""
self.empty = True self.empty = True
self.initialize_form_field("geom", geom) self.initialize_form_field("output", geom)
def is_valid(self): def is_valid(self):
super().is_valid() super().is_valid()
is_valid = True is_valid = True
# Get geojson from form # Get geojson from form
geom = self.data["geom"] geom = self.data["output"]
if geom is None or len(geom) == 0: if geom is None or len(geom) == 0:
# empty geometry is a valid geometry # 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 return is_valid
geom = json.loads(geom) geom = json.loads(geom)
# Write submitted data back into form field to make sure invalid geometry # Write submitted data back into form field to make sure invalid geometry
# will be rendered again on failed submit # 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 # Initialize features list with empty MultiPolygon, so that an empty input will result in a
# proper empty MultiPolygon object # proper empty MultiPolygon object
@ -97,7 +96,7 @@ class SimpleGeomForm(BaseForm):
g = self.__flatten_geom_to_2D(g) g = self.__flatten_geom_to_2D(g)
if g.geom_type not in accepted_ogr_types: 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 is_valid &= False
return is_valid return is_valid
@ -105,7 +104,7 @@ class SimpleGeomForm(BaseForm):
g = Polygon.from_ewkt(g.ewkt) g = Polygon.from_ewkt(g.ewkt)
is_valid &= g.valid is_valid &= g.valid
if not g.valid: if not g.valid:
self.add_error("geom", g.valid_reason) self.add_error("output", g.valid_reason)
return is_valid return is_valid
if isinstance(g, Polygon): if isinstance(g, Polygon):
@ -125,7 +124,7 @@ class SimpleGeomForm(BaseForm):
# Write unioned Multipolygon into cleaned data # Write unioned Multipolygon into cleaned data
if self.cleaned_data is None: if self.cleaned_data is None:
self.cleaned_data = {} self.cleaned_data = {}
self.cleaned_data["geom"] = form_geom.ewkt self.cleaned_data["output"] = form_geom.ewkt
return is_valid return is_valid
@ -135,7 +134,7 @@ class SimpleGeomForm(BaseForm):
Returns: Returns:
""" """
geom = self.cleaned_data.get("geom") geom = self.cleaned_data.get("output")
g = gdal.OGRGeometry(geom, srs=DEFAULT_SRID_RLP) g = gdal.OGRGeometry(geom, srs=DEFAULT_SRID_RLP)
num_vertices = g.num_coords num_vertices = g.num_coords
@ -151,7 +150,7 @@ class SimpleGeomForm(BaseForm):
if not is_area_valid: if not is_area_valid:
self.add_error( self.add_error(
"geom", "output",
_("Geometry must be greater than 1m². Currently is {}").format( _("Geometry must be greater than 1m². Currently is {}").format(
float(geom.area) float(geom.area)
) )
@ -194,14 +193,14 @@ class SimpleGeomForm(BaseForm):
if self.instance is None or self.instance.geometry is None: if self.instance is None or self.instance.geometry is None:
raise LookupError raise LookupError
geometry = self.instance.geometry 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.modified = action
geometry.save() geometry.save()
except LookupError: except LookupError:
# No geometry or linked instance holding a geometry exist --> create a new one! # No geometry or linked instance holding a geometry exist --> create a new one!
geometry = Geometry.objects.create( 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, created=action,
) )

View File

@ -32,7 +32,7 @@
{ {
"projection": "EPSG:25832", "projection": "EPSG:25832",
"center_lonlat": [ 7.0, 50.0 ], "center_lonlat": [ 7.0, 50.0 ],
"zoom": 12, "zoom": 9,
"min_zoom": 5, "min_zoom": 5,
"max_zoom": 24, "max_zoom": 24,
"scalebar": true, "scalebar": true,