Acciones
Errores #5491
cerrada[Menu] No se muestra correctamente la opción de menú seleccionada para algunas opciones
Fecha de inicio:
2024-07-05
Fecha fin:
% Realizado:
100%
Tiempo estimado:
Versión:
Descripción
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
Análisis¶
La ruta de la opción de menú que se muestra en la interfaz está implementada en este código:
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
La función está mal construida y en realidad debería quedar así:
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
Implementación¶
https://git.semillasl.com/gong/gor/-/commit/363c6533fd10837e1423dd572fb649f2d72a22ad
Acciones