# Geometry conflicts on API
* refactors internal fetching of GeometryConflict data * adds serializing of GeometryConflict entry data (identifier, id) to GET API calls
This commit is contained in:
+7
-16
@@ -676,24 +676,15 @@ class GeoReferencedMixin(models.Model):
|
||||
if self.geometry is None:
|
||||
return request
|
||||
|
||||
instance_objs = []
|
||||
needed_data_object_attrs = [
|
||||
"identifier"
|
||||
]
|
||||
conflicts = self.geometry.conflicts_geometries.iterator()
|
||||
conflicting_geometries = self.geometry.get_conflict_geometries()
|
||||
data_object_identifiers = []
|
||||
for conflicting_geom in conflicting_geometries:
|
||||
data_object_identifiers.append(conflicting_geom.get_data_object(["identifier"]))
|
||||
|
||||
for conflict in conflicts:
|
||||
# Only check the affected geometry of this conflict, since we know the conflicting geometry is self.geometry
|
||||
instance_objs += conflict.affected_geometry.get_data_objects(needed_data_object_attrs)
|
||||
|
||||
conflicts = self.geometry.conflicted_by_geometries.iterator()
|
||||
for conflict in conflicts:
|
||||
# Only check the conflicting geometry of this conflict, since we know the affected geometry is self.geometry
|
||||
instance_objs += conflict.conflicting_geometry.get_data_objects(needed_data_object_attrs)
|
||||
|
||||
add_message = len(instance_objs) > 0
|
||||
add_message = len(data_object_identifiers) > 0
|
||||
if add_message:
|
||||
instance_identifiers = ", ".join(instance_objs)
|
||||
data_object_identifiers = [x["identifier"] for x in data_object_identifiers]
|
||||
instance_identifiers = ", ".join(data_object_identifiers)
|
||||
message_str = GEOMETRY_CONFLICT_WITH_TEMPLATE.format(instance_identifiers)
|
||||
messages.info(request, message_str)
|
||||
return request
|
||||
|
||||
Reference in New Issue
Block a user