From 82064db2b54014f79df7bcfc5e766cf3d4d149df Mon Sep 17 00:00:00 2001 From: Lincoln Simba Date: Wed, 7 Nov 2018 16:27:40 +0300 Subject: [PATCH 1/4] Include choice_filter choices to XForm json --- pyxform/xls2json.py | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/pyxform/xls2json.py b/pyxform/xls2json.py index c5aca433c..e7831b779 100644 --- a/pyxform/xls2json.py +++ b/pyxform/xls2json.py @@ -264,7 +264,8 @@ def process_range_question_type(row): Raises PyXFormError when invalid range parameters are used. """ new_dict = row.copy() - parameters = get_parameters(new_dict.get('parameters', ''), ['start', 'end', 'step']) + parameters = get_parameters( + new_dict.get('parameters', ''), ['start', 'end', 'step']) parameters_map = {'start': 'start', 'end': 'end', 'step': 'step'} defaults = {'start': '1', 'end': '10', 'step': '1'} @@ -802,12 +803,16 @@ def replace_prefix(d, prefix): new_json_dict[constants.TYPE] = select_type # Look at parameters column for randomization parameters - parameters = get_parameters(row.get('parameters', ''), ['randomize', 'seed']) + parameters = get_parameters( + row.get('parameters', ''), ['randomize', 'seed']) if "randomize" in parameters.keys(): - if parameters["randomize"] != "true" and parameters["randomize"] != "false": - raise PyXFormError("randomize must be set to true or false: " - "'%s' is an invalid value" % parameters["randomize"]) + if parameters["randomize"] != "true" and \ + parameters["randomize"] != "false": + raise PyXFormError( + "randomize must be set to true or false: " + "'%s' is an invalid value" % + parameters["randomize"]) if "seed" in parameters.keys(): try: @@ -815,8 +820,9 @@ def replace_prefix(d, prefix): except ValueError: raise PyXFormError("seed value must be a number.") elif "seed" in parameters.keys(): - raise PyXFormError("Parameters must include randomize=true to use a seed.") - + raise PyXFormError( + "Parameters must include randomize=true to use a seed." + ) new_json_dict['parameters'] = parameters @@ -826,7 +832,11 @@ def replace_prefix(d, prefix): else: new_json_dict['itemset'] = list_name json_dict['choices'] = choices - elif "randomize" in parameters.keys() and parameters["randomize"] == "true": + if choices.get(list_name): + new_json_dict[constants.CHOICES] = \ + choices[list_name] + elif "randomize" in parameters.keys() and \ + parameters["randomize"] == "true": new_json_dict['itemset'] = list_name json_dict['choices'] = choices elif file_extension in ['.csv', '.xml']: @@ -894,16 +904,19 @@ def replace_prefix(d, prefix): if question_type == 'photo': new_dict = row.copy() - parameters = get_parameters(row.get('parameters', ''), ['max-pixels']) + parameters = get_parameters( + row.get('parameters', ''), ['max-pixels']) if 'max-pixels' in parameters.keys(): try: int(parameters['max-pixels']) except: - raise PyXFormError("Parameter max-pixels must have an integer value.") + raise PyXFormError( + "Parameter max-pixels must have an integer value.") new_dict['bind'] = new_dict.get('bind', {}) - new_dict['bind'].update({'orx:max-pixels': parameters['max-pixels']}) + new_dict['bind'].update( + {'orx:max-pixels': parameters['max-pixels']}) parent_children_array.append(new_dict) continue @@ -960,7 +973,7 @@ def replace_prefix(d, prefix): noop, survey_children_array = stack[0] survey_children_array.append(meta_element) - #print_pyobj_to_json(json_dict) + # print_pyobj_to_json(json_dict) return json_dict @@ -1026,6 +1039,7 @@ def organize_by_values(dict_list, key): result[val] = dicty_copy return result + def get_parameters(raw_parameters, allowed_parameters): parts = raw_parameters.split(';') if len(parts) == 1: @@ -1037,14 +1051,15 @@ def get_parameters(raw_parameters, allowed_parameters): for param in parts: if '=' not in param: raise PyXFormError("Expecting parameters to be in the form of " - "'parameter1=value parameter2=value'.") + "'parameter1=value parameter2=value'.") k, v = param.split('=')[:2] key = k.lower().strip() if key in allowed_parameters: params[key] = v.lower().strip() else: raise PyXFormError("Accepted parameters are " - "'%s': '%s' is an invalid parameter." % (", ".join(allowed_parameters), key)) + "'%s': '%s' is an invalid parameter." + % (", ".join(allowed_parameters), key)) return params From 175f67e6939e19aefa62ebbedaa488ac26d86a92 Mon Sep 17 00:00:00 2001 From: Lincoln Simba Date: Wed, 7 Nov 2018 16:29:18 +0300 Subject: [PATCH 2/4] tests --- pyxform/tests/xls2json_tests.py | 125 ++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/pyxform/tests/xls2json_tests.py b/pyxform/tests/xls2json_tests.py index 2ec6a32a7..983cd0362 100644 --- a/pyxform/tests/xls2json_tests.py +++ b/pyxform/tests/xls2json_tests.py @@ -158,6 +158,131 @@ def test_table(self): actual_json = json.load(actual_file) self.assertEqual(expected_json, actual_json) + def test_choice_filter_choice_fields(self): + """ + Test that the choice filter fields appear on children field of json + """ + choice_filter_survey = SurveyReader( + utils.path_to_text_fixture("choice_filter_test.xlsx")) + + expected_dict = [ + { + u'choices': [ + { + u'name': u'texas', + u'label': u'Texas' + }, + { + u'name': u'washington', + u'label': u'Washington' + } + ], + u'type': u'select one', + u'name': u'state', + u'parameters': {}, + u'label': u'state' + }, + { + u'name': u'county', + u'parameters': {}, + u'choice_filter': u'${state}=cf', + u'label': u'county', + u'itemset': u'counties', + u'choices': [ + { + u'label': u'King', + u'cf': u'washington', + u'name': u'king' + }, + { + u'label': u'Pierce', + u'cf': u'washington', + u'name': u'pierce' + }, + { + u'label': u'King', + u'cf': u'texas', + u'name': u'king' + }, + { + u'label': u'Cameron', + u'cf': u'texas', + u'name': u'cameron' + } + ], + u'type': u'select one' + }, + { + u'name': u'city', + u'parameters': {}, + u'choice_filter': u'${county}=cf', + u'label': u'city', + u'itemset': u'cities', + u'choices': [ + { + u'label': u'Dumont', + u'cf': u'king', + u'name': u'dumont' + }, + { + u'label': u'Finney', + u'cf': u'king', + u'name': u'finney' + }, + { + u'label': u'brownsville', + u'cf': u'cameron', + u'name': u'brownsville' + }, + { + u'label': u'harlingen', + u'cf': u'cameron', + u'name': u'harlingen' + }, + { + u'label': u'Seattle', + u'cf': u'king', + u'name': u'seattle' + }, + { + u'label': u'Redmond', + u'cf': u'king', + u'name': u'redmond' + }, + { + u'label': u'Tacoma', + u'cf': u'pierce', + u'name': u'tacoma' + }, + { + u'label': u'Puyallup', + u'cf': u'pierce', + u'name': u'puyallup' + } + ], + u'type': u'select one' + }, + { + u'control': { + u'bodyless': True + }, + u'type': u'group', + u'name': u'meta', + u'children': [ + { + u'bind': { + u'readonly': u'true()', + u'calculate': u"concat('uuid:', uuid())" + }, + u'type': u'calculate', + u'name': u'instanceID' + } + ] + } + ] + self.assertEqual( + choice_filter_survey.to_json_dict()[u"children"], expected_dict) + class CsvReaderEquivalencyTest(TestCase): def test_equivalency(self): From 4546fe27b4116930d9da33fe69b82172b8973348 Mon Sep 17 00:00:00 2001 From: Lincoln Simba Date: Wed, 7 Nov 2018 16:35:42 +0300 Subject: [PATCH 3/4] fixtures --- .../tests/example_xls/choice_filter_test.xlsx | Bin 0 -> 17739 bytes .../tests/test_output/yes_or_no_question.json | 1 + 2 files changed, 1 insertion(+) create mode 100644 pyxform/tests/example_xls/choice_filter_test.xlsx diff --git a/pyxform/tests/example_xls/choice_filter_test.xlsx b/pyxform/tests/example_xls/choice_filter_test.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..74088b8e43894c4f798cf1de80dde036610e48d2 GIT binary patch literal 17739 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 literal 0 HcmV?d00001 diff --git a/pyxform/tests/test_output/yes_or_no_question.json b/pyxform/tests/test_output/yes_or_no_question.json index 3b8ee3e13..e95631377 100644 --- a/pyxform/tests/test_output/yes_or_no_question.json +++ b/pyxform/tests/test_output/yes_or_no_question.json @@ -23,6 +23,7 @@ ], "type": "select one", "name": "good_day", + "parameters": {}, "label": { "english": "have you had a good day today?" } From 75aea0cc6bf964fa1900b625086fc39888213c0f Mon Sep 17 00:00:00 2001 From: Lincoln Simba Date: Tue, 13 Nov 2018 08:25:24 +0300 Subject: [PATCH 4/4] Remove unnecessary field --- pyxform/tests/test_output/yes_or_no_question.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pyxform/tests/test_output/yes_or_no_question.json b/pyxform/tests/test_output/yes_or_no_question.json index e95631377..2fdedd886 100644 --- a/pyxform/tests/test_output/yes_or_no_question.json +++ b/pyxform/tests/test_output/yes_or_no_question.json @@ -22,8 +22,7 @@ } ], "type": "select one", - "name": "good_day", - "parameters": {}, + "name": "good_day", "label": { "english": "have you had a good day today?" }