# Boost geometry conflict message fetch
* reduces runtime of geometry conflict info message generating to ~45% to prior runtime
This commit is contained in:
@@ -677,19 +677,23 @@ class GeoReferencedMixin(models.Model):
|
||||
return request
|
||||
|
||||
instance_objs = []
|
||||
needed_data_object_attrs = [
|
||||
"identifier"
|
||||
]
|
||||
conflicts = self.geometry.conflicts_geometries.iterator()
|
||||
|
||||
for conflict in conflicts:
|
||||
instance_objs += conflict.affected_geometry.get_data_objects()
|
||||
# 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:
|
||||
instance_objs += conflict.conflicting_geometry.get_data_objects()
|
||||
# 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
|
||||
if add_message:
|
||||
instance_identifiers = [x.identifier for x in instance_objs]
|
||||
instance_identifiers = ", ".join(instance_identifiers)
|
||||
instance_identifiers = ", ".join(instance_objs)
|
||||
message_str = GEOMETRY_CONFLICT_WITH_TEMPLATE.format(instance_identifiers)
|
||||
messages.info(request, message_str)
|
||||
return request
|
||||
|
||||
Reference in New Issue
Block a user