diff --git a/sample-management-custom/caosdb-server/scripting/bin/export_sample_csv.py b/sample-management-custom/caosdb-server/scripting/bin/export_sample_csv.py index 169575aca15084c9545230027158e3daad85019b..7311fc101929f2012269d4001904c1c34edf3f09 100755 --- a/sample-management-custom/caosdb-server/scripting/bin/export_sample_csv.py +++ b/sample-management-custom/caosdb-server/scripting/bin/export_sample_csv.py @@ -75,7 +75,10 @@ def cached_query(query, unique=False): def reverse_semicolon_separated_list(value): if isinstance(value, list): - return ";".join([str(val) for val in value if val is not None]) + ret_str = ";".join([str(val) for val in value if val is not None]) + if ',' in ret_str: + ret_str = f"\"{ret_str}\"" + return ret_str else: return value @@ -168,7 +171,7 @@ def retrieve_event(record): ids = extract_value_as_list(record, get_entity_name("event_rt")) if record.get_property(get_entity_name("event_rt")) is None: # there are cases where this property is named "Event" - ids = extract_value_as_list(record, 'Event') + ids = extract_value_as_list(record, get_entity_name("event_rt")) return [cached_record(i) for i in ids] @@ -205,7 +208,7 @@ def extract_ele_start(record, key): def extract_ele_stop(record, key): - return extract_position(record, get_enum_value("StopPosition"), get_entity_name("elevation")) + return extract_position(record, get_entity_name("StopPosition"), get_entity_name("elevation")) def extract_lat_start(record, key): @@ -213,7 +216,7 @@ def extract_lat_start(record, key): def extract_lat_stop(record, key): - return extract_position(record, get_enum_value("StopPosition"), get_entity_name("latitude")) + return extract_position(record, get_entity_name("StopPosition"), get_entity_name("latitude")) def extract_lng_start(record, key): @@ -277,6 +280,11 @@ def extract_end_date(record, key): return _extract_event_prop(record, get_entity_name("end_date_prop")) +def extract_start_date(record, key): + + return _extract_event_prop(record, get_entity_name("start_date_prop")) + + def extract_level(record, key): return _extract_event_prop(record, get_entity_name("level")) @@ -349,7 +357,7 @@ EXTRACTORS = use_custom_names({ "PDFReport": extract_pdf_id, "Sampling method": default_find, "Sphere": extract_sphere, - "Start date": extract_end_date, + "Start date": extract_start_date, "Storage ID": extract_storage_id, "Storage chain": extract_storage_chain, "URL Event": extract_event_url, @@ -380,7 +388,7 @@ IGNORE_KEYS_PARENT = IGNORE_KEYS + use_custom_names([ # the import. ADDITIONAL_EXPORTS = use_custom_names([ "LinkAhead URL", - "Parent LinkAhead ID", + "parent_sample_prop", "Storage chain", ]) diff --git a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_column_definitions.py b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_column_definitions.py index 3912595be60fbe9f672b579a8df538f287aeaef3..9347ad438561c810291af028cad5ae2c79df1ad2 100644 --- a/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_column_definitions.py +++ b/sample-management-custom/caosdb-server/scripting/bin/sample_helpers/sample_upload_column_definitions.py @@ -57,20 +57,22 @@ def use_custom_names(definition: Union[list, dict]): DATATYPE_DEFINITIONS = use_custom_names({ + "entity_id": str, + "Main User": str, "Campaign": str, "Elevation start": float, "Elevation stop": float, + "End date": str, "Latitude start": float, "Latitude stop": float, "Longitude start": float, "Longitude stop": float, - "Main User": str, "PI": str, "Parent LinkAhead ID": str, "SampleMethod": str, "SampleType": str, + "Start Date": str, "Storage ID": str, - "entity_id": str, }) # Obligatory columns: Must exist and must not be empty @@ -113,7 +115,7 @@ SPECIAL_TREATMENT_SAMPLE = use_custom_names([ "Longitude stop", "Main User", "PDFReport", - "Parent Linkahead ID", + "parent_sample_prop", "Sphere", "Start date", "Storage ID",