# 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
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 {}").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,
)

View File

@ -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,