From 29dc4b4295404d2be12e4282ecd07d9ae387fd9e Mon Sep 17 00:00:00 2001 From: Florian Spreckelsen <f.spreckelsen@indiscale.com> Date: Fri, 7 Feb 2025 13:51:13 +0100 Subject: [PATCH] EN: Also support parent/child samples --- .../scripting/bin/sample_helpers/default_constants.yml | 1 + .../sample_upload_add_special_properties.py | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) 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 033a05e..046cca5 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 b4e1330..d32c3de 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( -- GitLab