def test_questions_with_groups(self): factory = AppFactory() self._build_app_with_groups(factory) app = factory.app modules, errors = get_app_summary_formdata(app.domain, app) question_in_group = modules[0]['forms'][0]['questions'][1]['children'][0] self.assertEqual(question_in_group.value, '/data/demographics/age')
def test_questions_with_groups(self): factory = AppFactory() self._build_app_with_groups(factory) app = factory.app modules, errors = get_app_summary_formdata(app.domain, app) question_in_group = modules[0]['forms'][0]['questions'][1]['children'][0] self.assertEqual(question_in_group.value, '/data/demographics/age')
def page_context(self): context = super(AppFormSummaryView, self).page_context modules, errors = get_app_summary_formdata(self.domain, self.app, include_shadow_forms=False) context.update({ 'page_type': 'form_summary', 'modules': modules, 'errors': errors, }) return context
def get(self, request, *args, **kwargs): modules, errors = get_app_summary_formdata(self.domain, self.app, include_shadow_forms=False) return json_response({ 'response': { 'form_data': { 'modules': modules, 'errors': errors, }, 'case_data': self.app.get_case_metadata().to_json(), 'form_name_map': _get_name_map(self.app), }, 'success': True, })
def test_advanced_form_get_action_type(self): app = Application.new_app('domain', "Untitled Application") parent_module = app.add_module(AdvancedModule.new_module('parent', None)) parent_module.case_type = 'parent' parent_module.unique_id = 'id_parent_module' form = app.new_form(0, "Untitled Form", None) form.xmlns = 'http://id_m1-f0' form.actions.load_update_cases.append(LoadUpdateAction(case_type="clinic", case_tag='load_0')) modules, errors = get_app_summary_formdata('domain', app) self.assertEqual(modules[0]['forms'][0]['action_type'], 'load (load_0)')
def test_advanced_form_get_action_type(self): app = Application.new_app('domain', "Untitled Application") parent_module = app.add_module(AdvancedModule.new_module('parent', None)) parent_module.case_type = 'parent' parent_module.unique_id = 'id_parent_module' form = app.new_form(0, "Untitled Form", None) form.xmlns = 'http://id_m1-f0' form.actions.load_update_cases.append(LoadUpdateAction(case_type="clinic", case_tag='load_0')) modules, errors = get_app_summary_formdata('domain', app) self.assertEqual(modules[0]['forms'][0]['action_type'], 'load (load_0)')
def page_context(self): context = super(FormSummaryDiffView, self).page_context if self.first_app.master_id != self.second_app.master_id: # This restriction is somewhat arbitrary, as you might want to # compare versions between two different apps on the same domain. # However, it breaks a bunch of assumptions in the UI raise Http404() first = self._app_dict(self.first_app) first['modules'], first['errors'] = get_app_summary_formdata( self.domain, self.first_app, include_shadow_forms=False ) second = self._app_dict(self.second_app) second['modules'], second['errors'] = get_app_summary_formdata( self.domain, self.second_app, include_shadow_forms=False ) context.update({ 'page_type': 'form_diff', 'app_id': self.app.master_id, 'first': first, 'second': second, }) return context
def test_form_data_with_case_properties(self): factory = AppFactory() self._build_app_with_groups(factory) app = factory.app modules, errors = get_app_summary_formdata(app.domain, app) q1_saves = modules[0]['forms'][0]['questions'][0]['save_properties'][0] self.assertEqual(q1_saves.case_type, 'household') self.assertEqual(q1_saves.property, 'name') group_saves = modules[0]['forms'][0]['questions'][1]['children'][0]['save_properties'][0] self.assertEqual(group_saves.case_type, 'household') self.assertEqual(group_saves.property, 'age') q3_loads = modules[0]['forms'][0]['questions'][2]['load_properties'][0] self.assertEqual(q3_loads.case_type, 'household') self.assertEqual(q3_loads.property, 'polar_bears_seen')
def test_form_data_with_case_properties(self): factory = AppFactory() self._build_app_with_groups(factory) app = factory.app modules, errors = get_app_summary_formdata(app.domain, app) q1_saves = modules[0]['forms'][0]['questions'][0]['save_properties'][0] self.assertEqual(q1_saves.case_type, 'household') self.assertEqual(q1_saves.property, 'name') group_saves = modules[0]['forms'][0]['questions'][1]['children'][0]['save_properties'][0] self.assertEqual(group_saves.case_type, 'household') self.assertEqual(group_saves.property, 'age') q3_loads = modules[0]['forms'][0]['questions'][2]['load_properties'][0] self.assertEqual(q3_loads.case_type, 'household') self.assertEqual(q3_loads.property, 'polar_bears_seen')
def page_context(self): if self._show_app_changes_notification(): messages.warning( self.request, 'Hey Dimagi User! Have you tried out ' '<a href="https://confluence.dimagi.com/display/saas/Viewing+App+Changes+between+versions" ' 'target="_blank">Viewing App Changes between Versions</a> yet? It might be just what you are ' 'looking for!', extra_tags='html') context = super(AppFormSummaryView, self).page_context modules, errors = get_app_summary_formdata(self.domain, self.app, include_shadow_forms=False) context.update({ 'page_type': 'form_summary', 'modules': modules, 'errors': errors, }) return context
def test_form_data_with_case_properties(self): factory = AppFactory() app = factory.app module1, form1 = factory.new_basic_module('open_case', 'household') form1_builder = XFormBuilder(form1.name) # question 0 form1_builder.new_question('name', 'Name') # question 1 (a group) form1_builder.new_group('demographics', 'Demographics') # question 2 (a question in a group) form1_builder.new_question('age', 'Age', group='demographics') # question 3 (a question that has a load property) form1_builder.new_question('polar_bears_seen', 'Number of polar bears seen') form1.source = form1_builder.tostring(pretty_print=True).decode('utf-8') factory.form_requires_case(form1, case_type='household', update={ 'name': '/data/name', 'age': '/data/demographics/age', }, preload={ '/data/polar_bears_seen': 'polar_bears_seen', }) app.save() modules, errors = get_app_summary_formdata(app.domain, app) q1_saves = modules[0]['forms'][0]['questions'][0]['save_properties'][0] self.assertEqual(q1_saves.case_type, 'household') self.assertEqual(q1_saves.property, 'name') group_saves = modules[0]['forms'][0]['questions'][2]['save_properties'][0] self.assertEqual(group_saves.case_type, 'household') self.assertEqual(group_saves.property, 'age') q3_loads = modules[0]['forms'][0]['questions'][3]['load_properties'][0] self.assertEqual(q3_loads.case_type, 'household') self.assertEqual(q3_loads.property, 'polar_bears_seen')