El recurso se encuentra repetido

Buenos días! Soy de la Universidad Nacional de Córdoba.

Estuve viendo en los logs de autogestion que en algunas operaciones personalizadas me salen estos mensajes:

– LOCALIZADOR: El recurso se encuentra repetido entre las personalizaciones cordoba. Nombre: ‘operaciones/solicitud_titulo_revision/formulario/default.css’
Array
(
)
– LOCALIZADOR: El recurso se encuentra repetido entre las personalizaciones cordoba. Nombre: ‘operaciones/solicitud_titulo_revision/formulario/pagelet_formulario.js’
Array
(
)
– LOCALIZADOR: El recurso se encuentra repetido entre las personalizaciones cordoba. Nombre: ‘operaciones/solicitud_titulo_revision/formulario/default.twig’
Array
(
)

He buscado y no tengo los archivos repetidos en el código en ningún lado.

¿A que se puede deber estos mensajes de “error”?

Saludos.

View Issue

Hola @Emiliano_Bocco

Me podrías decir en que versión de Guaraní están?

Hay alguna operación que de error y no puedas avanzar?

Realizaron alguna actualización del sistema?

Las personalizaciones funcionan bien?

quedo atenta

Buenas tardes Angela.

Me podrías decir en que versión de Guaraní están?

-3.22.0

Hay alguna operación que de error y no puedas avanzar?

-Las operaciones funcionan bien, no es un error bloqueante, es un mensaje que salta en los logs.

Realizaron alguna actualización del sistema?

-No.

Las personalizaciones funcionan bien?

-Si.

Hola @Emiliano_Bocco

Estamos consultando con el equipo técnico.

Cuando tengamos novedades les comentamos.

Saludos!

Hola @Emiliano_Bocco

Me hice una instalación usando la rama https://colab.siu.edu.ar/svn/guarani3/nodos/uncor/3w/trunk/3.22.0/ y activando solo la personalización cordoba, luego ejecuté estos scripts, luego al ir a la operación Trámites > Revisión y confirmación de solicitud no me esta dando ningún error.

En los logs vas a ver LOCALIZADOR: El recurso se encuentra repetido entre las personalizaciones que lo da en el archivo vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/localizador.php, pero no es un error, lo da siempre que encuentre un archivo personalizado:

--  === $path 1 ===  -----------------------------------------------------------

/usr/local/app/src/pers/cordoba/www/img/logo-transparente.png

--  === $descriptor_archivo 1 ===  ---------------------------------------------

Array
(
    [hay_repetidos] => 1
    [repetidos] => Array
        (
            [0] => cordoba
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/cordoba/www/img/logo-transparente.png
    [namespace] => cordoba
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 1
            [path] => /usr/local/app/src/siu/www/img/logo-transparente.png
        )

)

--  === $path 1 ===  -----------------------------------------------------------

/usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/template.twig

--  === $descriptor_archivo 1 ===  ---------------------------------------------

Array
(
    [hay_repetidos] => 1
    [repetidos] => Array
        (
            [0] => cordoba
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/template.twig
    [namespace] => cordoba
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 
            [path] => 
        )

)

--  === $path 1 ===  -----------------------------------------------------------

/usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/formulario/default.twig

--  === $descriptor_archivo 1 ===  ---------------------------------------------

Array
(
    [hay_repetidos] => 1
    [repetidos] => Array
        (
            [0] => cordoba
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/formulario/default.twig
    [namespace] => cordoba
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 
            [path] => 
        )

)

--  === $path 1 ===  -----------------------------------------------------------

/usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/formulario/default.css

--  === $descriptor_archivo 1 ===  ---------------------------------------------

Array
(
    [hay_repetidos] => 1
    [repetidos] => Array
        (
            [0] => cordoba
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/formulario/default.css
    [namespace] => cordoba
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 
            [path] => 
        )

)

--  === $path 1 ===  -----------------------------------------------------------

/usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/formulario/pagelet_formulario.js

--  === $descriptor_archivo 1 ===  ---------------------------------------------

Array
(
    [hay_repetidos] => 1
    [repetidos] => Array
        (
            [0] => cordoba
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/formulario/pagelet_formulario.js
    [namespace] => cordoba
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 
            [path] => 
        )

)

--  === $path 1 ===  -----------------------------------------------------------

/usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/formulario/default.twig

--  === $descriptor_archivo 1 ===  ---------------------------------------------

Array
(
    [hay_repetidos] => 1
    [repetidos] => Array
        (
            [0] => cordoba
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/cordoba/operaciones/solicitud_titulo_revision/formulario/default.twig
    [namespace] => cordoba
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 
            [path] => 
        )

)

La función buscar_archivo dice:

	/**
	 *
	 * @param string $relativo
	 * @param mixed $force_ns el namespace donde se debe buscarlo. Si es false se lo
	 * busca en todos los namespaces activos y se le da prioridad a los que están 
	 * en las personalizaciones
	 * @return array un arreglo:
	 *	'existe' => si existe o no el archivo
	 *  'hay_repetidos' => si hay más de una personalización que tiene el archivo
	 *  'path' => el path completo del archivo. Si no existe esto es false 
	 *  'es_pers' => si el archivo se encontró o no en una personalización
	 *  'namespace_original' => 
	 *		'existe' => si existe o no el archivo en el ns original
	 *		'path' => el path absoluto del archivo. Si no existe esto es false
	 * Los elementos en el primer nivel del arreglo se refieren al archivo deseado
	 * (si se encontró uno en la personalización trae la información de este y sino
	 * trae la del namespace original). Se agrega la entrada namespace_original
	 * para el caso de los css que se tienen que agregar todos en cascada
	 */
	function buscar_archivo($relativo, $force_ns = false)
	{...}
	 *  'hay_repetidos' => si hay más de una personalización que tiene el archivo

Esta mal el mensaje, no esta repetido en varias personalizaciones, sino que esta solo en una personalización. Vamos a ver de arreglarlo.

Se arregla de la siguiente manera en la función buscar_archivo de vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/localizador.php:

		if ($force_ns !== false) {
                ...
		} else {
			$path_ns_original = $this->get_path_absoluto($this->ns_original['dir'], $this->ns_original['nombre'], $relativo);

			foreach ($this->namespaces as $id => $dir) {
				$path = $this->get_path_absoluto($dir, $id, $relativo);
				if ($path !== false) {
                    $rs['repetidos'][] = $id;
                    $personalizado = $path;
                    $personalizacion = $id;
				}
			}
			$rs['hay_repetidos'] = (count($rs['repetidos']) > 1);
		}

Ejemplos:

Solo siu:

Array
(
    [hay_repetidos] => 
    [repetidos] => Array
        (
        )

    [existe] => 1
    [path] => /usr/local/app/src/siu/operaciones/_comun/templates/footer.twig
    [namespace] => siu
    [es_pers] => 
    [namespace_original] => Array
        (
            [existe] => 1
            [path] => /usr/local/app/src/siu/operaciones/_comun/templates/footer.twig
        )

)

Personalización cordoba:

Array
(
    [hay_repetidos] => 
    [repetidos] => Array
        (
            [0] => cordoba
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/cordoba/www/img/logo-transparente.png
    [namespace] => cordoba
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 1
            [path] => /usr/local/app/src/siu/www/img/logo-transparente.png
        )

)

Se repite en personalizaciones cordoba y ejemplo01 siendo que en instalacion/config.php esta primero cordoba y luego ejemplo01 se le da prioridad a ejemplo01:

Array
(
    [hay_repetidos] => 1
    [repetidos] => Array
        (
            [0] => cordoba
            [1] => ejemplo01
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/ejemplo01/operaciones/acceso/login/default.twig
    [namespace] => ejemplo01
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 1
            [path] => /usr/local/app/src/siu/operaciones/acceso/login/default.twig
        )

)

Se repite en personalizaciones ejemplo01 y cordoba siendo que en instalacion/config.php esta primero ejemplo01 y luego cordoba se le da prioridad a cordoba:

Array
(
    [hay_repetidos] => 1
    [repetidos] => Array
        (
            [0] => ejemplo01
            [1] => cordoba
        )

    [existe] => 1
    [path] => /usr/local/app/src/pers/cordoba/operaciones/acceso/login/default.twig
    [namespace] => cordoba
    [es_pers] => 1
    [namespace_original] => Array
        (
            [existe] => 1
            [path] => /usr/local/app/src/siu/operaciones/acceso/login/default.twig
        )

)

Hola @lleonardis !
Gracias por la explicación, queda claro porque nos aparece. Nosotros tenemos 2 namespaces de personalizaciones: cordoba y pers_solicitar_certificacion

La corrección del seteo de $rs[‘hay_repetidos’] ¿lo van a subir ustedes en próximas versiones?

Saludos, Flavia

Hola @flavia

Si, saldrá en la próxima versión, gracias por reportarlo.

Saludos.