diff --git a/src/caosdb/common/models.py b/src/caosdb/common/models.py index 8522f14c9ec902675e9c63d63d4b92ee1c106655..ab8e9f06c3590e1f01fc3700bd364395686b0d24 100644 --- a/src/caosdb/common/models.py +++ b/src/caosdb/common/models.py @@ -1040,15 +1040,12 @@ class Entity(object): if len(c) == 1: c[0].messages.extend(c.messages) - return c[0] - else: - # TODO: This has to be chnaged once ambiguous - # retrievals are delat with server-side. - raise QueryNotUniqueError("This retrieval was not unique!!!") - else: - return Container().append(self).retrieve( - unique=unique, raise_exception_on_error=raise_exception_on_error, flags=flags) + + raise QueryNotUniqueError("This retrieval was not unique!!!") + + return Container().append(self).retrieve( + unique=unique, raise_exception_on_error=raise_exception_on_error, flags=flags) def insert(self, raise_exception_on_error=True, unique=True, sync=True, strict=False, flags=None): @@ -2238,14 +2235,19 @@ def _basic_sync(e_local, e_remote): def _deletion_sync(e_local, e_remote): if e_local is None or e_remote is None: - return None + return + try: - _basic_sync(e_local, e_remote) - e_local.is_valid = lambda: False - e_local.is_deleted = lambda: True - e_local.id = None + e_remote.get_messages()["info", 10] # try and get the deletion info except KeyError: + # deletion info wasn't there e_local.messages = e_remote.messages + return + + _basic_sync(e_local, e_remote) + e_local.is_valid = lambda: False + e_local.is_deleted = lambda: True + e_local.id = None class Container(list):