diff --git a/src/caosadvancedtools/structure_mapping.py b/src/caosadvancedtools/structure_mapping.py index 73ddac22a71bac15d5b5bb215cd04eb6bcb9cbf7..dfec80ada02d3c069208703172961d0ba78579b1 100644 --- a/src/caosadvancedtools/structure_mapping.py +++ b/src/caosadvancedtools/structure_mapping.py @@ -59,7 +59,7 @@ def collect_existing_structure(target_structure, existing_root, em): if prop.value is None: continue - if not prop.is_reference(): + if not prop.is_reference(server_retrieval=True): continue # TODO case where multiple properties of same name exist is not @@ -70,6 +70,7 @@ def collect_existing_structure(target_structure, existing_root, em): resolve_reference(prop) # TODO Lists of reference are not yet treated properly + resolve_reference(existing_root.get_property(prop.name)) referenced = existing_root.get_property(prop.name).value if not isinstance(referenced, list): @@ -107,7 +108,7 @@ def update_structure(em, updating: db.Container, target_structure: db.Record): em.to_existing[target_structure._cuid]) for prop in target_structure.get_properties(): - if prop.is_reference(): + if prop.is_reference(server_retrieval=True): update_structure(em, updating, prop.value) # TODO this can be moved to the general lib; it is the general case that