diff --git a/konova/models/geometry.py b/konova/models/geometry.py index cc3f581a..09915500 100644 --- a/konova/models/geometry.py +++ b/konova/models/geometry.py @@ -142,11 +142,22 @@ class Geometry(BaseResource): def get_data_object(self, limit_to_attrs: list = None): """ - Getter for the specific data object which is related to this geometry + Getter for the specific data object which is related to this geometry. + + !!! Only returns undeleted entries !!! + + Returns: + result (str|None): Returns the desired attributes or None if the data object is marked as deleted + """ objs = self.get_data_objects(limit_to_attrs) assert (len(objs) <= 1) - result = objs.pop() + try: + result = objs.pop() + except IndexError: + # If this happens, we just processed a GeometryConflict with an entry which is marked as deleted. + # Therefore we return None + result = None return result def update_parcels(self): diff --git a/konova/models/object.py b/konova/models/object.py index 15894629..360269f5 100644 --- a/konova/models/object.py +++ b/konova/models/object.py @@ -679,7 +679,9 @@ class GeoReferencedMixin(models.Model): 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"])) + data_obj_id = conflicting_geom.get_data_object(["identifier"]) + if data_obj_id: + data_object_identifiers.append(data_obj_id) add_message = len(data_object_identifiers) > 0 if add_message: