当前位置: 首页>>代码示例>>Python>>正文


Python builder.create_survey_element_from_dict函数代码示例

本文整理汇总了Python中pyxform.builder.create_survey_element_from_dict函数的典型用法代码示例。如果您正苦于以下问题:Python create_survey_element_from_dict函数的具体用法?Python create_survey_element_from_dict怎么用?Python create_survey_element_from_dict使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了create_survey_element_from_dict函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_answers_can_be_imported_from_xml

    def test_answers_can_be_imported_from_xml(self):
        surv = Survey(name="data")

        surv.add_child(
            create_survey_element_from_dict(
                {"type": "text", "name": "name", "label": "Name"}
            )
        )
        surv.add_child(
            create_survey_element_from_dict(
                {
                    "type": "integer",
                    "name": "users_per_month",
                    "label": "Users per month",
                }
            )
        )
        surv.add_child(
            create_survey_element_from_dict(
                {"type": "gps", "name": "geopoint", "label": "gps"}
            )
        )
        surv.add_child(
            create_survey_element_from_dict({"type": "imei", "name": "device_id"})
        )

        instance = surv.instantiate()
        import_xml = self.config.get(
            self.cls_name, "test_answers_can_be_imported_from_xml"
        )
        instance.import_from_xml(import_xml)
开发者ID:XLSForm,项目名称:pyxform,代码行数:31,代码来源:j2x_test_instantiation.py

示例2: test_simple_survey_answering

 def test_simple_survey_answering(self):
     surv = Survey(name=u"Water")
     q = create_survey_element_from_dict({u"type":u"text", u"name":u"color", u"label": u"Color"})
     q2 = create_survey_element_from_dict({u"type":u"text", u"name":u"feeling", u"label": u"Feeling"})
     
     surv.add_child(q)
     surv.add_child(q2)
     i = SurveyInstance(surv)
     
     i.answer(name=u"color", value=u"blue")
     self.assertEquals(i.answers()[u'color'], u"blue")
     
     i.answer(name=u"feeling", value=u"liquidy")
     self.assertEquals(i.answers()[u'feeling'], u"liquidy")
开发者ID:SEL-Columbia,项目名称:pyxform,代码行数:14,代码来源:j2x_test_instantiation.py

示例3: xls2xform_convert

def xls2xform_convert(
    xlsform_path, xform_path, validate=True, pretty_print=True, enketo=False
):
    warnings = []

    json_survey = xls2json.parse_file_to_json(xlsform_path, warnings=warnings)
    survey = builder.create_survey_element_from_dict(json_survey)
    # Setting validate to false will cause the form not to be processed by
    # ODK Validate.
    # This may be desirable since ODK Validate requires launching a subprocess
    # that runs some java code.
    survey.print_xform_to_file(
        xform_path,
        validate=validate,
        pretty_print=pretty_print,
        warnings=warnings,
        enketo=enketo,
    )
    output_dir = os.path.split(xform_path)[0]
    if has_external_choices(json_survey):
        itemsets_csv = os.path.join(output_dir, "itemsets.csv")
        choices_exported = sheet_to_csv(xlsform_path, itemsets_csv, "external_choices")
        if not choices_exported:
            warnings.append(
                "Could not export itemsets.csv, perhaps the "
                "external choices sheet is missing."
            )
        else:
            logger.info("External choices csv is located at: %s", itemsets_csv)
    return warnings
开发者ID:XLSForm,项目名称:pyxform,代码行数:30,代码来源:xls2xform.py

示例4: test_answers_can_be_imported_from_xml

 def test_answers_can_be_imported_from_xml(self):
     surv = Survey(name=u"data")
     
     surv.add_child(create_survey_element_from_dict({ \
                             u'type':u'text', u'name':u'name', u"label": u"Name"}))
     surv.add_child(create_survey_element_from_dict({ \
                             u'type':u'integer', u'name':u'users_per_month', u"label": u"Users per month"}))
     surv.add_child(create_survey_element_from_dict({ \
                             u'type':u'gps', u'name':u'geopoint', u'label': u'gps'}))
     surv.add_child(create_survey_element_from_dict({ \
                             u'type':u'imei', u'name':u'device_id'}))
     
     instance = surv.instantiate()
     instance.import_from_xml(u"""
     <?xml version='1.0' ?><data id="build_WaterSimple_1295821382"><name>JK Resevoir</name><users_per_month>300</users_per_month><geopoint>40.783594633609184 -73.96436698913574 300.0 4.0</geopoint></data>
     """.strip())
开发者ID:SEL-Columbia,项目名称:pyxform,代码行数:16,代码来源:j2x_test_instantiation.py

示例5: test_specify_other

 def test_specify_other(self):
     excel_reader = SurveyReader("pyxform/tests/specify_other.xls")
     d = excel_reader.to_dict()
     survey = create_survey_element_from_dict(d)
     expected_dict = {
         u'name': 'specify_other',
         u'type': u'survey',
         u'children': [
             {
                 u'name': u'sex',
                 u'label': {u'English': u'What sex are you?'},
                 u'type': u'select one',
                 u'children': [
                     {
                         u'name': u'male',
                         u'label': {u'English': u'Male'}
                         },
                     {
                         u'name': u'female',
                         u'label': {u'English': u'Female'}
                         },
                     {
                         u'name': u'other',
                         u'label': u'Other'
                         }
                     ]
                 },
             {
                 u'name': u'sex_other',
                 u'bind': {u'relevant': u"selected(../sex, 'other')"},
                 u'label': u'Specify other.',
                 u'type': u'text'}
             ]
         }
     self.assertEqual(survey.to_dict(), expected_dict)
开发者ID:aptivate,项目名称:pyxform,代码行数:35,代码来源:builder_tests.py

示例6: test_include_json

    def test_include_json(self):            
        excel_reader = SurveyReader("pyxform/tests/include_json.xls")
        d = excel_reader.to_dict()
        survey_in = create_survey_element_from_dict(d)

        for k, v in survey_in.to_dict().items():
            if k!="name": self.assertEqual(v, self.survey_out_dict[k])
开发者ID:aptivate,项目名称:pyxform,代码行数:7,代码来源:builder_tests.py

示例7: test_include

    def test_include(self):
        excel_reader = SurveyReader("pyxform/tests/include.xls")
        d = excel_reader.to_dict()
        survey = create_survey_element_from_dict(d)
        expected_dict = {
            u'name': 'include',
            u'type': u'survey',
            u'children': [
                {
                    u'name': u'name',
                    u'label': {u'English': u"What's your name?"},
                    u'type': u'text'
                    },
                    {
                        u'name': u'good_day',
                        u'label': {u'english': u'have you had a good day today?'},
                        u'type': u'select one',
                        u'children': [
                            {
                                u'name': u'yes',
                                u'label': {u'english': u'yes'}
                                },
                            {
                                u'name': u'no',
                                u'label': {u'english': u'no'}
                                }
                            ]}]}

        self.assertEqual(survey.to_dict(), expected_dict)
开发者ID:aptivate,项目名称:pyxform,代码行数:29,代码来源:builder_tests.py

示例8: render

    def render(self, data, *args, **kwargs):
        charset = 'utf-8'
        root_node = 'xforms'
        xmlns = "http://openrosa.org/xforms/xformsList"

        if 'detail' in data.keys():
            stream = StringIO()

            xml = SimplerXMLGenerator(stream, charset)
            xml.startDocument()
            xml.startElement(root_node, {'xmlns': xmlns})

            for key, value in six.iteritems(data):
                xml.startElement(key, {})
                xml.characters(smart_text(value))
                xml.endElement(key)

            xml.endElement(root_node)
            xml.endDocument()
            return stream.getvalue()
        else:
            json = self.transform_to_xform_json(data)
            survey = create_survey_element_from_dict(json)
            xml = survey.xml()
            fix_languages(xml)
            xml = xml.toxml()

            xml = self.insert_version_attribute(xml,
                                                data.get('id_string'),
                                                data.get('version'))
            xml = self.insert_uuid_bind(xml, data.get('id_string'))

            return xml
开发者ID:Cadasta,项目名称:cadasta-platform,代码行数:33,代码来源:renderers.py

示例9: test_select_one_question_multilingual

    def test_select_one_question_multilingual(self):
        """
        Test the lowest common denominator of question types.
        """
        simple_select_one_json = {
            "label": {"f": "ftext", "e": "etext"},
            "type": "select one",
            "name": "qname",
            "choices": [
                {"label": {"f": "fa", "e": "ea"}, "name": "a"},
                {"label": {"f": "fb", "e": "eb"}, "name": "b"},
            ],
        }

        # I copied the response in, since this is not our method of testing
        # valid return values.
        expected_select_one_control_xml = self.config.get(
            self.cls_name, "test_select_one_question_multilingual_control"
        )

        expected_select_one_binding_xml = self.config.get(
            self.cls_name, "test_select_one_question_multilingual_binding"
        )

        q = create_survey_element_from_dict(simple_select_one_json)
        self.s.add_child(q)
        self.assertEqual(ctw(q.xml_control()), expected_select_one_control_xml)

        if TESTING_BINDINGS:
            self.assertEqual(ctw(q.xml_binding()), expected_select_one_binding_xml)
开发者ID:XLSForm,项目名称:pyxform,代码行数:30,代码来源:j2x_question_tests.py

示例10: test_select_one_question_multilingual

 def test_select_one_question_multilingual(self):
     """
     Test the lowest common denominator of question types.
     """
     simple_select_one_json = {
         u"label" : {u"f": u"ftext",u"e": u"etext"},
         u"type" : u"select one",
         u"name" : u"qname",
         u"choices" : [
             {u"label": {u"f": u"fa",u"e": u"ea"},u"name": u"a"},
             {u"label": {u"f": u"fb",u"e": u"eb"},u"name": u"b"}
             ]
         }
     
     # I copied the response in, since this is not our method of testing
     # valid return values.
     expected_select_one_control_xml = u"""<select1 ref="/test/qname"><label ref="jr:itext('/test/qname:label')"/><item><label ref="jr:itext('/test/qname/a:label')"/><value>a</value></item><item><label ref="jr:itext('/test/qname/b:label')"/><value>b</value></item></select1>"""
     
     expected_select_one_binding_xml = u"""
     <bind nodeset="/test/qname" type="select1"/>
     """.strip()
     
     q = create_survey_element_from_dict(simple_select_one_json)
     self.s.add_child(q)
     self.assertEqual(ctw(q.xml_control()), expected_select_one_control_xml)
     
     if TESTING_BINDINGS:
         self.assertEqual(ctw(q.xml_binding()), expected_select_one_binding_xml)
开发者ID:Topol,项目名称:pyxform,代码行数:28,代码来源:j2x_question_tests.py

示例11: test_simple_integer_question_type_multilingual

    def test_simple_integer_question_type_multilingual(self):
        """
        not sure how integer questions should show up.
        """
        simple_integer_question = {
            u"label": {u"f": u"fc", u"e": u"ec"},
            u"type": u"integer",
            u"name": u"integer_q",
            u"attributes": {}
            }

        expected_integer_control_xml = u"""
        <input ref="/test/integer_q"><label ref="jr:itext('/test/integer_q:label')"/></input>
        """.strip()
        
        expected_integer_binding_xml = u"""
        <bind nodeset="/test/integer_q" type="int"/>
        """.strip()
        
        q = create_survey_element_from_dict(simple_integer_question)
        
        self.s.add_child(q)
        
        self.assertEqual(ctw(q.xml_control()), expected_integer_control_xml)
        
        if TESTING_BINDINGS:
            self.assertEqual(ctw(q.xml_binding()), expected_integer_binding_xml)
开发者ID:Topol,项目名称:pyxform,代码行数:27,代码来源:j2x_question_tests.py

示例12: test_simple_integer_question_type_multilingual

    def test_simple_integer_question_type_multilingual(self):
        """
        not sure how integer questions should show up.
        """
        simple_integer_question = {
            "label": {"f": "fc", "e": "ec"},
            "type": "integer",
            "name": "integer_q",
            "attributes": {},
        }

        expected_integer_control_xml = self.config.get(
            self.cls_name, "test_simple_integer_question_type_multilingual_control"
        )

        expected_integer_binding_xml = self.config.get(
            self.cls_name, "test_simple_integer_question_type_multilingual_binding"
        )

        q = create_survey_element_from_dict(simple_integer_question)

        self.s.add_child(q)

        self.assertEqual(ctw(q.xml_control()), expected_integer_control_xml)

        if TESTING_BINDINGS:
            self.assertEqual(ctw(q.xml_binding()), expected_integer_binding_xml)
开发者ID:XLSForm,项目名称:pyxform,代码行数:27,代码来源:j2x_question_tests.py

示例13: test_simple_select_all_question_multilingual

    def test_simple_select_all_question_multilingual(self):
        """
        not sure how select all questions should show up...
        """
        simple_select_all_question = {
            u"label": {u"f": u"f choisit", u"e": u"e choose"},
            u"type": u"select all that apply",
            u"name": u"select_all_q",
            u"choices": [
                {u"label": {u"f": u"ff", u"e": u"ef"}, u"name": u"f"},
                {u"label": {u"f": u"fg", u"e": u"eg"}, u"name": u"g"},
                {u"label": {u"f": u"fh", u"e": u"eh"}, u"name": u"h"}
                ]
            }

        expected_select_all_control_xml = u"""<select ref="/test/select_all_q"><label ref="jr:itext('/test/select_all_q:label')"/><hint>Select all that apply.</hint><item><label ref="jr:itext('/test/select_all_q/f:label')"/><value>f</value></item><item><label ref="jr:itext('/test/select_all_q/g:label')"/><value>g</value></item><item><label ref="jr:itext('/test/select_all_q/h:label')"/><value>h</value></item></select>"""
        
        expected_select_all_binding_xml = u"""
<bind nodeset="/test/select_all_q" type="select"/>
        """.strip()
        
        q = create_survey_element_from_dict(simple_select_all_question)
        self.s.add_child(q)
        self.assertEqual(ctw(q.xml_control()), expected_select_all_control_xml)
        
        if TESTING_BINDINGS:
            self.assertEqual(ctw(q.xml_binding()), expected_select_all_binding_xml)
开发者ID:Topol,项目名称:pyxform,代码行数:27,代码来源:j2x_question_tests.py

示例14: test_question_type_string

    def test_question_type_string(self):
        simple_string_json = {
            "label": {
                "French": "Nom du travailleur agricole:",
                "English": "Name of Community Agricultural Worker",
            },
            "type": "text",
            "name": "enumerator_name",
        }

        q = create_survey_element_from_dict(simple_string_json)

        expected_string_control_xml = self.config.get(
            self.cls_name, "test_question_type_string_control"
        )

        expected_string_binding_xml = self.config.get(
            self.cls_name, "test_question_type_string_binding"
        )

        self.s.add_child(q)
        self.assertEqual(ctw(q.xml_control()), expected_string_control_xml)

        if TESTING_BINDINGS:
            self.assertEqual(ctw(q.xml_binding()), expected_string_binding_xml)
开发者ID:XLSForm,项目名称:pyxform,代码行数:25,代码来源:j2x_question_tests.py

示例15: test_simple_select_all_question_multilingual

    def test_simple_select_all_question_multilingual(self):
        """
        not sure how select all questions should show up...
        """
        simple_select_all_question = {
            "label": {"f": "f choisit", "e": "e choose"},
            "type": "select all that apply",
            "name": "select_all_q",
            "choices": [
                {"label": {"f": "ff", "e": "ef"}, "name": "f"},
                {"label": {"f": "fg", "e": "eg"}, "name": "g"},
                {"label": {"f": "fh", "e": "eh"}, "name": "h"},
            ],
        }

        expected_select_all_control_xml = self.config.get(
            self.cls_name, "test_simple_select_all_question_multilingual_control"
        )

        expected_select_all_binding_xml = self.config.get(
            self.cls_name, "test_simple_select_all_question_multilingual_binding"
        )

        q = create_survey_element_from_dict(simple_select_all_question)
        self.s.add_child(q)
        self.assertEqual(ctw(q.xml_control()), expected_select_all_control_xml)

        if TESTING_BINDINGS:
            self.assertEqual(ctw(q.xml_binding()), expected_select_all_binding_xml)
开发者ID:XLSForm,项目名称:pyxform,代码行数:29,代码来源:j2x_question_tests.py


注:本文中的pyxform.builder.create_survey_element_from_dict函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。