* fixes bug where geometries have been created each time a SimpleGeomForm has been saved
This commit is contained in:
mipel
2021-10-04 16:06:20 +02:00
parent a50deaaf18
commit feeddda90d
2 changed files with 76 additions and 4 deletions

View File

@@ -275,10 +275,28 @@ class SimpleGeomForm(BaseForm):
self.fields["geom"].disabled = True
def save(self, action: UserActionLogEntry):
geometry = Geometry.objects.create(
geom=self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID)),
created=action,
)
""" Saves the form's geometry
Creates a new geometry entry if none is set, yet
Args:
action ():
Returns:
"""
if self.instance.geometry is None:
geometry = Geometry.objects.create(
geom=self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID)),
created=action,
)
self.instance.geometry = geometry
self.instance.save()
else:
geometry = self.instance.geometry
geometry.geom = self.cleaned_data.get("geom", MultiPolygon(srid=DEFAULT_SRID))
geometry.modified = action
geometry.save()
return geometry