Errores #5491
Actualizado por Oscar Abad hace 5 meses
h1. Especificación En la versión de staging-develop no se está mostrando para algunas opciones la opción de menú actualmente seleccionada. Viene de la siguiente funcionalidad: https://dev.intranet.oei.int/issues/1934 h1. Análisis La ruta de la opción de menú que se muestra en la interfaz está implementada en este código: <pre><code class="ruby"> def ruta_menu objs_seccion = menu_seccion if params[:menu] obj_menu = objs_seccion.find {|c| c[:url][:menu] == params[:menu].to_s} texto = obj_menu[:rotulo] texto += " >> " accion = controladores_menu.find {|c| ( c[:url][:controller] == params[:controller] ) and ( c[:url][:action] ? c[:url][:action] == params[:action] : true ) and ( c[:url][:listado] ? c[:url][:listado] == params[:listado] : true )} texto += accion ? accion[:rotulo] : _('Otras opciones') else obj_menu = objs_seccion.find do |c| c[:url][:controller] == params[:controller] and (c[:url][:action] ? c[:url][:action] == params[:action] : true ) end end obj_menu = objs_seccion.find do |c| c[:url][:controller] == params[:controller] and (c[:url][:action] ? c[:url][:action] == params[:action] : true ) end texto = obj_menu[:rotulo] if obj_menu # Ponemos esto por, por ejemplo, el menu de entrada de proyecto (Infocontroller) no esta habilitado pero si que lo estan otras opciones del menú return texto ? texto : _('Otras opciones') end </code></pre> La función está mal construida y en realidad debería quedar así: <pre><code class="ruby"> def ruta_menu objs_seccion = menu_seccion if params[:menu] obj_menu = objs_seccion.find {|c| c[:url][:menu] == params[:menu].to_s} texto = obj_menu[:rotulo] texto += " >> " accion = controladores_menu.find {|c| ( c[:url][:controller] == params[:controller] ) and ( c[:url][:action] ? c[:url][:action] == params[:action] : true ) and ( c[:url][:listado] ? c[:url][:listado] == params[:listado] : true )} texto += accion ? accion[:rotulo] : _('Otras opciones') else obj_menu = objs_seccion.find do |c| c[:url][:controller] == params[:controller] and (c[:url][:action] ? c[:url][:action] == params[:action] : true ) end texto = obj_menu[:rotulo] if obj_menu end # Ponemos esto por, por ejemplo, el menu de entrada de proyecto (Infocontroller) no esta habilitado pero si que lo estan otras opciones del menú return texto ? texto : _('Otras opciones') end </code></pre> h1. Implementación