diff --git a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/default_constants.yml b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/default_constants.yml index 033a05e7da8a5112ec7e52d2fa80c31bbb8aef78..046cca51e7f31a9e423ec9131e627cdecdb6f7e0 100644 --- a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/default_constants.yml +++ b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/default_constants.yml @@ -65,6 +65,7 @@ entity_names: start_date_prop: start_date end_date_prop: end_date igsn_doi_prop: igsn_doi + parent_sample_prop: Parent_Sample error_prefix: "Something went wrong:" error_suffix: "Please contact your administrator(s)." diff --git a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_add_special_properties.py b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_add_special_properties.py index b4e13307d17c1451188b37f62c9e885e858c9845..d32c3dea86abe2b5258c0df6ea9b79f44445f756 100644 --- a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_add_special_properties.py +++ b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_add_special_properties.py @@ -34,6 +34,7 @@ def add_special_properties(sample: db.Record, data: pd.Series) -> db.Record: main_user_prop = db.get_entity_by_name(get_entity_name("Main User")) container_rt = db.get_entity_name(get_entity_name("container_rt")) + parent_sample_prop = db.get_entity_name(get_entity_name("parent_sample_prop")) if (get_column_header_name("Main User") in data and return_value_if_not_none(data[get_column_header_name("Main User")]) is not None): @@ -46,8 +47,14 @@ def add_special_properties(sample: db.Record, data: pd.Series) -> db.Record: data[get_column_header_name("Storage ID")])) sample = update_property(sample, container_rt.id, container) + if (get_column_header_name("Parent LinkAhead ID") in data and + return_value_if_not_none(data[get_column_header_name("Parent LinkAhead ID")]) is not None): + parent = return_value_if_not_none( + data[get_column_header_name("Parent LinkAhead ID")]) + sample = update_property(sample, parent_sample_prop.id, parent) + for name in ["Curator", "Collector"]: - prop = db.get_entity_by_name(name) + prop = db.get_entity_by_name(get_entity_name(name)) if (get_column_header_name(name) in data and return_value_if_not_none(data[get_column_header_name(name)]) is not None): persons = [get_person(id_str) for id_str in return_value_if_not_none(