File size: 3,132 Bytes
a725af0 a63231d 7b05d65 a725af0 a63231d a725af0 a63231d a725af0 a63231d a725af0 a63231d a725af0 a63231d a725af0 a63231d a725af0 a63231d a725af0 a63231d a725af0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
#### PROCESS FUNCTIONS
def process_circumstance(data):
fields_to_check = ["option_dropdown", "open_field", "extra"]
reformatted ={}
if ("circumstance_radio" in data.keys()) and ("circumstance" in data.keys()) and ("circumstance_type" in data.keys()) and (data["circumstance_radio"] == "Yes"):
reformatted["circumstance_radio"] = data["circumstance_radio"]
reformatted["circumstance"] = data["circumstance"]
reformatted["circumstance_type"] = {}
if "type" in data["circumstance_type"]:
reformatted["circumstance_type"]["type"] = data["circumstance_type"]["type"]
for field in fields_to_check:
if not data["circumstance_type"][field+"_label"] == "NA":
val = data[f"circumstance_{field}"]
key = data["circumstance_type"][field+"_label"]
reformatted["circumstance_type"][key] = val
else:
reformatted["circumstance_radio"] = None
reformatted["circumstance"] = None
reformatted["circumstance_type"] = {}
return reformatted
def process_behaviors(data):
behaviors =[]
reformatted = {}
if ("behaviors_radio" in data.keys()) and ("behaviors_type" in data.keys()) and (data["behaviors_radio"] == "Yes"):
reformatted["behaviors_radio"] = data["behaviors_radio"]
for type in data["behaviors_type"]:
new_behavior = {}
new_behavior["type"] = type
behaviors.append(new_behavior)
reformatted["behaviors_type"] = behaviors
else:
reformatted["behaviors_radio"] = None
reformatted["behaviors_type"] = []
return reformatted
def process_physical(data):
body_parts= ["beak", "body", "legs", "feathers/wings/tail", "head incl. eyes"]
body_parts_search = ["beak", "body", "legs", "feathers", "head"]
anomalies=[]
reformatted = {}
if ("physical_radio" in data.keys()) and (data["physical_radio"] == "Yes") and any("type_" in key for key in data.keys()) and any("anomaly_" in key for key in data.keys()):
reformatted["physical_radio"] = data["physical_radio"]
for b, body_part in enumerate(body_parts_search):
anomaly = {}
for key, val in data.items():
if "type_"+ body_part in key:
anomaly["type"] = body_parts[b]
elif "anomaly_"+ body_part in key:
anomaly["anomaly_type"] = val
if anomaly:
anomalies.append(anomaly)
reformatted["physical_anomalies_type"] = anomalies
else:
reformatted["physical_radio"] = None
reformatted["physical_anomalies_type"] = []
return reformatted
def process_followup(data):
followup_events = []
for key, val in data.items():
followup_event={}
type = key.split("followup")[-1]
option = type.split(" ")[-1]
followup_event["type"] = type.strip()
followup_event[option.strip()] = val
followup_events.append(followup_event)
reformatted ={}
reformatted["follow_up_events"] = followup_events
return reformatted |