def get_open_choice(element_reference, data_provider, back_choice=False, index=None): element = base_manager.get_element(element_reference, data_provider) if back_choice: choice_text = get_back_choice_text(element) else: manager = get_manager(element) method = get_method(manager, element_const.CHOICE_TEXT) choice_text = method(element, index) action_open = action_manager.get_open_action(element_reference) open_choice = choice_manager.create_choice(choice_text, action_open ) return open_choice
def get_branches_choices(paragraph, data_provider=None): branches_list = base_manager.get_children(paragraph) choices = base_manager.create_empty_list() if branches_list is not None: branches = list_manager.get_elements(branches_list) for branch_reference in branches: branch = base_manager.get_element(branch_reference, data_provider) text = base_manager.get_text(branch) target = branch_manager.get_target(branch) action_open = action_manager.get_open_action(target) branch_choice = choice_manager.create_choice(text, action_open) choices = base_manager.add_element(choices, branch_choice) return choices
def get_menu(element_reference, data_provider): element = base_manager.get_element(element_reference, data_provider) choices = _get_choices(element) choice_list = base_manager.create_empty_list() manager = get_manager(element) for choice_method in choices: method = get_method(manager, choice_method) choice = method(element, data_provider) choice_list = add_choices(choice_list, choice) text_method = get_method(manager, element_const.MENU_TEXT) text = text_method(element) constants = get_constants(element) question = base_manager.get_question(element, constants) menu = menu_manager.create_menu(text, choice_list, question) return menu