diff --git a/src/formpack/schema/fields.py b/src/formpack/schema/fields.py index 1878a33..d8229d8 100644 --- a/src/formpack/schema/fields.py +++ b/src/formpack/schema/fields.py @@ -544,11 +544,8 @@ def get_value_from_entry(self, entry): except KeyError: return '' - # sure would be nice if this were a dict with uuids as keys instead of - # a list requiring this kind of iteration - for response in responses: - if response['uuid'] == field_uuid: - return response['value'] + if question_response := responses.get(field_uuid): + return question_response['value'] return '' diff --git a/tests/fixtures/analysis_form/v1.json b/tests/fixtures/analysis_form/v1.json index dac01cb..c394687 100644 --- a/tests/fixtures/analysis_form/v1.json +++ b/tests/fixtures/analysis_form/v1.json @@ -65,12 +65,11 @@ } }, "clerk_details/name_of_clerk": { - "qual": [ - { - "uuid": "uuid_for_comment", + "qual": { + "uuid_for_comment": { "value": "Sounds like an interesting person" } - ] + } } } }, diff --git a/tests/fixtures/analysis_form/v2.json b/tests/fixtures/analysis_form/v2.json index cfd8877..306a096 100644 --- a/tests/fixtures/analysis_form/v2.json +++ b/tests/fixtures/analysis_form/v2.json @@ -59,12 +59,11 @@ } }, "clerk_details/name_of_shop": { - "qual": [ - { - "uuid": "uuid_for_comment", + "qual": { + "uuid_for_comment": { "value": "Pretty cliche" } - ] + } } } }, diff --git a/tests/fixtures/analysis_form_advanced/v1.json b/tests/fixtures/analysis_form_advanced/v1.json index 42e9c28..aab8766 100644 --- a/tests/fixtures/analysis_form_advanced/v1.json +++ b/tests/fixtures/analysis_form_advanced/v1.json @@ -83,9 +83,8 @@ "value": "Hello how may I help you?", "languageCode": "en" }, - "qual": [ - { - "uuid": "uuid_for_tone_of_voice", + "qual": { + "uuid_for_tone_of_voice": { "value": [ { "uuid": "uuid_for_excited", @@ -101,16 +100,14 @@ } ] } - ] + } }, "clerk_interactions/goods_sold": { - "qual": [ - { - "uuid": "uuid_for_comment", + "qual": { + "uuid_for_comment": { "value": "Not much diversity" }, - { - "uuid": "uuid_for_rating", + "uuid_for_rating": { "value": { "uuid": "uuid_for_3", "labels": { @@ -118,7 +115,7 @@ } } } - ] + } } } }, @@ -137,9 +134,8 @@ "value": "Thank you for your business", "languageCode": "en" }, - "qual": [ - { - "uuid": "uuid_for_tone_of_voice", + "qual": { + "uuid_for_tone_of_voice": { "value": [ { "uuid": "uuid_for_anxious", @@ -155,12 +151,11 @@ } ] } - ] + } }, "clerk_interactions/goods_sold": { - "qual": [ - { - "uuid": "uuid_for_rating", + "qual": { + "uuid_for_rating": { "value": { "uuid": "uuid_for_2", "labels": { @@ -168,7 +163,7 @@ } } } - ] + } } } }, @@ -183,9 +178,8 @@ ], "_supplementalDetails": { "clerk_interactions/goods_sold": { - "qual": [ - { - "uuid": "uuid_for_rating", + "qual": { + "uuid_for_rating": { "value": { "uuid": "uuid_for_3", "labels": { @@ -193,7 +187,7 @@ } } } - ] + } } } }