Merge pull request '# HOTFIX: empty geometry save' (#510) from hotfix_empty_geometry_save into master
Reviewed-on: #510
This commit is contained in:
commit
4c4d64cc3d
@ -54,7 +54,7 @@ class SimpleGeomForm(BaseForm):
|
|||||||
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 = json.dumps({})
|
||||||
self.empty = True
|
self.empty = True
|
||||||
|
|
||||||
self.initialize_form_field("output", geom)
|
self.initialize_form_field("output", geom)
|
||||||
@ -72,20 +72,12 @@ class SimpleGeomForm(BaseForm):
|
|||||||
self.initialize_form_field("output", json.dumps(submitted_data))
|
self.initialize_form_field("output", json.dumps(submitted_data))
|
||||||
|
|
||||||
# Get geojson from form for validity checking
|
# Get geojson from form for validity checking
|
||||||
geom = self.data.get("output", None)
|
geom = self.data.get("output", json.dumps({}))
|
||||||
geom_is_empty = geom is None or len(geom) == 0
|
geom = json.loads(geom)
|
||||||
if geom_is_empty:
|
|
||||||
# If no geometry has been submitted, we create an empty geometry object since
|
|
||||||
# an empty geometry is a valid geometry
|
|
||||||
self.cleaned_data["output"] = MultiPolygon(srid=DEFAULT_SRID_RLP).ewkt
|
|
||||||
return is_valid
|
|
||||||
|
|
||||||
# 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
|
||||||
features = []
|
features = []
|
||||||
|
|
||||||
# Prepare geometry for validity checks (create iterable dict)
|
|
||||||
geom = json.loads(geom)
|
|
||||||
features_json = geom.get("features", [])
|
features_json = geom.get("features", [])
|
||||||
accepted_ogr_types = [
|
accepted_ogr_types = [
|
||||||
"Polygon",
|
"Polygon",
|
||||||
@ -141,6 +133,7 @@ class SimpleGeomForm(BaseForm):
|
|||||||
if features:
|
if features:
|
||||||
form_geom = MultiPolygon(*features, srid=DEFAULT_SRID_RLP).unary_union
|
form_geom = MultiPolygon(*features, srid=DEFAULT_SRID_RLP).unary_union
|
||||||
else:
|
else:
|
||||||
|
# If no features have been processed, this indicates an empty geometry - so we store an empty geometry
|
||||||
form_geom = MultiPolygon(srid=DEFAULT_SRID_RLP)
|
form_geom = MultiPolygon(srid=DEFAULT_SRID_RLP)
|
||||||
|
|
||||||
# Make sure to convert into a MultiPolygon. Relevant if a single Polygon is provided.
|
# Make sure to convert into a MultiPolygon. Relevant if a single Polygon is provided.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user