예제 #1
0
    def form_updates_case(form, case_type=None, parent_case_type=None):
        if form.form_type == 'module_form':
            form.requires = 'case'
            form.actions.update_case = UpdateCaseAction(
                update={'question1': '/data/question1'})
            form.actions.update_case.condition.type = 'always'

            if parent_case_type:
                module = form.get_module()
                module.parent_select.active = True
                parent_select_module = next(
                    module for module in module.get_app().get_modules()
                    if module.case_type == parent_case_type)
                module.parent_select.module_id = parent_select_module.unique_id
        else:
            case_type = case_type or form.get_module().case_type
            index = len([
                load for load in form.actions.load_update_cases
                if load.case_type == case_type
            ])
            action = LoadUpdateAction(
                case_type=case_type,
                case_tag='load_{}_{}'.format(case_type, index),
            )

            if parent_case_type:
                parent_action = form.actions.load_update_cases[-1]
                assert parent_action.case_type == parent_case_type
                action.parent_tag = parent_action.case_tag

            form.actions.load_update_cases.append(action)
예제 #2
0
    def form_updates_case(form, case_type=None, parent_case_type=None):
        if form.form_type == 'module_form':
            form.requires = 'case'
            form.actions.update_case = UpdateCaseAction(update={'question1': '/data/question1'})
            form.actions.update_case.condition.type = 'always'

            if parent_case_type:
                module = form.get_module()
                module.parent_select.active = True
                parent_select_module = next(
                    module for module in module.get_app().get_modules()
                    if module.case_type == parent_case_type
                )
                module.parent_select.module_id = parent_select_module.unique_id
        else:
            case_type = case_type or form.get_module().case_type
            index = len([load for load in form.actions.load_update_cases if load.case_type == case_type])
            action = LoadUpdateAction(
                case_type=case_type,
                case_tag='load_{}_{}'.format(case_type, index),
            )

            if parent_case_type:
                parent_action = form.actions.load_update_cases[-1]
                assert parent_action.case_type == parent_case_type
                action.parent_tag = parent_action.case_tag

            form.actions.load_update_cases.append(action)
예제 #3
0
    def _load_case(self, child_module_form, case_type, parent_module=None):
        action = LoadUpdateAction(case_tag=case_type, case_type=case_type)
        if parent_module:
            action.parent_tag = parent_module.case_type

        child_module_form.actions.load_update_cases.append(action)
예제 #4
0
    def _load_case(self, child_module_form, case_type, parent_module=None):
        action = LoadUpdateAction(case_tag=case_type, case_type=case_type)
        if parent_module:
            action.parent_tag = parent_module.case_type

        child_module_form.actions.load_update_cases.append(action)