コード例 #1
0
 def test_default_is_dynamic_return_value(self):
     """Should find expected return value for each case passed to default_is_dynamic."""
     for c in (*self.case_data, *self.case_data_extras):
         with self.subTest(msg=repr(c)):
             self.assertEqual(
                 c.is_dynamic,
                 utils.default_is_dynamic(element_default=c.q_default,
                                          element_type=c.q_type),
             )
コード例 #2
0
    def xml_instance(self, **kwargs):
        survey = self.get_root()
        attributes = {}
        attributes.update(self.get("instance", {}))
        for key, value in attributes.items():
            attributes[key] = survey.insert_xpaths(value, self)

        if self.get("default") and not default_is_dynamic(self.default, self.type):
            return node(self.name, unicode(self.get("default")), **attributes)
        return node(self.name, **attributes)
コード例 #3
0
    def get_setvalue_node_for_dynamic_default(self, in_repeat=False):
        if not self.default or not default_is_dynamic(self.default, self.type):
            return None

        default_with_xpath_paths = self.get_root().insert_xpaths(
            self.default, self)

        triggering_events = "odk-instance-first-load"
        if in_repeat:
            triggering_events = triggering_events + " odk-new-repeat"

        return node(
            "setvalue",
            ref=self.get_xpath(),
            value=default_with_xpath_paths,
            event=triggering_events,
        )
コード例 #4
0
    def xml_dynamic_default(self, in_binding=False):
        if not self.default or not default_is_dynamic(self.default, self.type):
            return

        if self.parent.__class__.__name__ == "Survey" and in_binding:
            default_handler = {"event": "odk-instance-first-load"}
            return node("setvalue",
                        ref=self.get_xpath(),
                        value=self.default,
                        **default_handler)

        if self.parent.__class__.__name__ != "Survey" and not in_binding:
            default_handler = {
                "event": "odk-instance-first-load odk-new-repeat"
            }
            return node("setvalue",
                        ref=self.get_xpath(),
                        value=self.default,
                        **default_handler)
コード例 #5
0
ファイル: survey_element.py プロジェクト: ndibaza/pyxform
    def xml_dynamic_default(self):
        if not self.default or not default_is_dynamic(self.default, self.type):
            return

        default_with_xpaths = self.get_root().insert_xpaths(self.default, self)
        if self.parent.__class__.__name__ in ["Survey", "GroupedSection"]:
            default_handler = {"event": "odk-instance-first-load"}
            return node("setvalue",
                        ref=self.get_xpath(),
                        value=default_with_xpaths,
                        **default_handler)

        if self.parent.__class__.__name__ == "RepeatingSection":
            default_handler = {
                "event": "odk-instance-first-load odk-new-repeat"
            }
            return node("setvalue",
                        ref=self.get_xpath(),
                        value=default_with_xpaths,
                        **default_handler)