diff --git a/pyxform/question.py b/pyxform/question.py index 7d9ab56aa..56e9918ed 100644 --- a/pyxform/question.py +++ b/pyxform/question.py @@ -200,6 +200,7 @@ def build_xml(self): # check to prevent the rare dicts that show up if self["itemset"] and isinstance(self["itemset"], basestring): choice_filter = self.get("choice_filter") + itemset_value_ref = "name" itemset, file_extension = os.path.splitext(self["itemset"]) has_media = False is_previous_question = bool(re.match(r"^\${.*}$", self.get("itemset"))) @@ -226,6 +227,7 @@ def build_xml(self): .split("/") ) nodeset = "/".join(path[:-1]) + itemset_value_ref = path[-1] itemset_label_ref = path[-1] if choice_filter: choice_filter = choice_filter.replace( @@ -261,7 +263,7 @@ def build_xml(self): nodeset += ")" itemset_children = [ - node("value", ref="name"), + node("value", ref=itemset_value_ref), node("label", ref=itemset_label_ref), ] result.appendChild(node("itemset", *itemset_children, nodeset=nodeset)) diff --git a/pyxform/tests_v1/test_repeat.py b/pyxform/tests_v1/test_repeat.py index dc100d132..81adb45eb 100644 --- a/pyxform/tests_v1/test_repeat.py +++ b/pyxform/tests_v1/test_repeat.py @@ -339,19 +339,36 @@ def test_choice_from_previous_repeat_answers(self): | | begin repeat | rep | Repeat | | | text | name | Enter name | | | end repeat | | | - | | select one fruits | fruit | Choose a fruit | | | select one ${name} | choice | Choose name | - | choices | | | | - | | list name | name | label | - | | fruits | banana | Banana | - | | fruits | mango | Mango | """ self.assertPyxformXform( + name="data", md=xlsform_md, xml__contains=[ - "" + "", + '', + '