Skip to content
Snippets Groups Projects
Commit 84933ee0 authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

ENH: Add missing event properties

parent 092be437
No related branches found
No related tags found
1 merge request!1F awi sams
......@@ -21,6 +21,9 @@ csv_column_names:
start_date_prop: "Start date"
end_date_prop: "End date"
igsn_doi_prop: "IGSN DOI"
locality_description_prop: "Locality description"
locality_name_prop: "Locality name"
responsible_person_event: "Event responsible"
csv_column_descriptions:
LinkAhead ID: "An ID generated by LinkAhead (either integer or URL to this entity). Do not change this column!"
......@@ -67,6 +70,9 @@ entity_names:
parent_sample_prop: Parent_Sample
responsible_rt: Responsible
start_date_prop: start_date
locality_description_prop: locality_description
locality_name_prop: locality_name
responsible_person_event: Responsible_Person
error_prefix: "Something went wrong:"
error_suffix: "Please contact your administrator(s)."
......@@ -103,12 +103,12 @@ SPECIAL_TREATMENT_SAMPLE = _use_custom_names([
"Embargo",
"End date",
"Event responsible",
"IGSN DOI",
"igsn_doi_prop",
"Latitude start",
"Latitude stop",
"Level",
"Locality description",
"Locality name",
"locality_description_prop",
"locality_name_prop",
"Longitude start",
"Longitude stop",
"Main User",
......
......@@ -55,6 +55,27 @@ def add_event_to_sample(sample: db.Record, data: pd.Series) -> db.Record:
event = update_property(event, position_prop.id, positions,
datatype=db.LIST(get_entity_name("Position")), property_name=position_prop.name)
# Further event properties
for event_p in ["Biome", "Campaign", "Device", "EventType",
"igsn_doi_prop", "level", "locality_description_prop",
"locality_name_prop", "Sphere"]:
prop = db.get_entity_by_name(get_entity_name(event_p))
if (get_column_header_name(event_p) in data and
return_value_if_not_none(data[get_column_header_name(event_p)]) is not None):
event = update_property(event, prop.id, return_value_if_not_none(
data[get_column_header_name(event_p)]), property_name=prop.name)
# Special treatment for (list of) persons
resp_prop = db.get_entity_by_name(get_entity_name("responsible_person_event"))
if (get_column_header_name("responsible_person_event") in data and
return_value_if_not_none(data[get_column_header_name("responsible_person_event")]) is not None):
resps = return_value_if_not_none(data[get_column_header_name("responsible_person_event")])
if not isinstance(resps, list):
resps = [resps]
recs = [get_person(resp) for resp in resps]
event = update_property(event, resp_prop.id, recs, datatype=db.LIST(
"Person"), property_name=resp_prop.name)
for time_p in ["start_date_prop", "end_date_prop"]:
prop = db.get_entity_by_name(get_entity_name(time_p))
if (get_column_header_name(time_p) in data and
......
Campaign:
- name
ControlledRecordType:
- name
Event:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment