def _get_reg_form_action(self, module): """ Returns registration form action """ form = self.app.get_form(module.case_list_form.form_id) if self.app.enable_localized_menu_media: case_list_form = module.case_list_form action = LocalizedAction( menu_locale_id=id_strings.case_list_form_locale(module), media_image=case_list_form.uses_image( build_profile_id=self.build_profile_id), media_audio=case_list_form.uses_audio( build_profile_id=self.build_profile_id), image_locale_id=id_strings.case_list_form_icon_locale(module), audio_locale_id=id_strings.case_list_form_audio_locale(module), stack=Stack(), for_action_menu=True, ) else: action = Action(display=Display( text=Text(locale_id=id_strings.case_list_form_locale(module)), media_image=module.case_list_form.default_media_image, media_audio=module.case_list_form.default_media_audio, ), stack=Stack()) frame = PushFrame() frame.add_command(XPath.string(id_strings.form_command(form))) target_form_dm = self.entries_helper.get_datums_meta_for_form_generic( form) source_form_dm = [] if len(module.forms): source_form_dm = self.entries_helper.get_datums_meta_for_form_generic( module.get_form(0)) for target_meta in target_form_dm: if target_meta.requires_selection: # This is true for registration forms where the case being created is a subcase try: [source_dm] = [ source_meta for source_meta in source_form_dm if source_meta.case_type == target_meta.case_type ] except ValueError: pass else: frame.add_datum( StackDatum(id=target_meta.datum.id, value=session_var(source_dm.datum.id))) else: s_datum = target_meta.datum frame.add_datum( StackDatum(id=s_datum.id, value=s_datum.function)) frame.add_datum( StackDatum(id=RETURN_TO, value=XPath.string(id_strings.menu_id(module)))) action.stack.add_frame(frame) return action
def _get_case_search_action(self, module, in_search=False): action_kwargs = DetailContributor._get_action_kwargs(module, in_search) if in_search: search_label = module.search_config.search_again_label else: search_label = module.search_config.search_label if self.app.enable_localized_menu_media: action = LocalizedAction( menu_locale_id=(id_strings.case_search_again_locale(module) if in_search else id_strings.case_search_locale(module)), media_image=search_label.uses_image( build_profile_id=self.build_profile_id), media_audio=search_label.uses_audio( build_profile_id=self.build_profile_id), image_locale_id=( id_strings.case_search_again_icon_locale(module) if in_search else id_strings.case_search_icon_locale(module)), audio_locale_id=( id_strings.case_search_again_audio_locale(module) if in_search else id_strings.case_search_audio_locale(module)), stack=Stack(), for_action_menu=True, **action_kwargs, ) else: action = Action(display=Display( text=Text(locale_id=( id_strings.case_search_again_locale(module) if in_search else id_strings.case_search_locale(module))), media_image=search_label.default_media_image, media_audio=search_label.default_media_audio), stack=Stack(), **action_kwargs) frame = PushFrame() frame.add_mark() frame.add_command(XPath.string(id_strings.search_command(module))) action.stack.add_frame(frame) return action