No aparece el formulario de datos adicionales

Buenas tardes.

Estamos usando Guaraní 3.17.1 y Preinscripción 3.10.0.

Al acceder al formulario de preinscripción, ocurren dos problemas:

[ol]- El formulario de “Datos adicionales” no muestra los campos (ver captura de pantalla adjunta).
- Si probamos cambiar la visibilidad de algún campo de otro formulario (por ejemplo, “Datos personales”), luego de guardar, dichos cambios no se ven reflejados en el formulario correspondiente.[/ol]
En base a problemas similares mencionados en el foro, probé aumentar el valor de la variable max_input_vars del archivo php.ini situado en /etc/php/7.1/apache2/, y luego reiniciar apache, pero el problema continúa.

¿A qué puede deberse este problema y cómo podría solucionarlo?

Muchas gracias.


datos_adicionales_blanco.png

datos_adicionales_blanco.png

Hola Juan Manuel,

Te pido que nos envíes los logs al comento del error, los de la aplicación (carpeta instalacion/log) y los de Apache.

En el archivo src/siu/www/index.php podes agregar lo siguiente luego de \siu\bootstrap::cargar();:


\siu\bootstrap::cargar();
klog2("=== max_input_vars ===", ini_get('max_input_vars'));
\SIU\Chulupi\nucleo\AccesoWeb::procesar();

Luego en los logs deberías ver el valor de max_input_vars, ej:


--  === max_input_vars ===  ----------------------------------------------------

15000

Referencia:
https://documentacion.siu.edu.ar/wiki/SIU-Guarani/preinscripcion3.10.0/instalacion_desde_cero/requisitos

saludos.
2

Gracias por la respuesta.

Seguí las indicaciones de esta manera: edité el archivo /usr/local/proyectos/preinscripcion/src/siu/www/index.php, le agregué el código indicado, y luego reinicié apache.

Pero al revisar los logs, no encuentro la cadena de texto. Los logs que estoy revisando son los que se encuentran en /var/log/apache2 y en /usr/local/proyectos/preinscripcion/instalacion/log.

¿Hay algún paso que me esté faltando llevar a cabo?

Muchas gracias.

Hola Juan,

¿Hay algún paso que me esté faltando llevar a cabo?
Revisa si en el archivo [b]instalacion/config.php[/b] si tenes los logs activos y en nivel debug:

		/**
		 * Configuración de logging. Si no se especifica este bloque no se usa 
		 * el log (es lo mismo que setear activo en false).
		 */
		'log' => [
			/**
			 * Indica si el log está activo o no
			 *  - Valores posibles: true|false
			 */
			'activo' => true,
			
			/**
			 * Niveles de log: 
			 *  - 'log::NIVEL_DEBUG'	-> Recomendado en Desarrollo
			 *  - 'log::NIVEL_INFO'		-> Solo muestra información de tiempo y memoria consumida
			 *  - 'log::NIVEL_ERROR'	-> Recomendado en Producción
			 */
			'nivel' => log::NIVEL_DEBUG,

También podes hacer un phpinfo en src/siu/www/index.php agregando lo siguiente:


phpinfo();
exit();

Luego cuando quieras ingresar a Preinscripción vas a ver toda la información de PHP, busca donde dice “max_input_vars”. Ojo, este luego deshacelo sino no van a poder usar Preinscripción.

saludos.
2

Buenas tardes.

Pude hacer el cambio indicado, y el valor de “max_input_vars” es 1200.

También aparece el siguiente mensaje en el log de Preinscripción:

-- La acción 'datos_adicionales' no existe Se redirige a 'index' con parámetro 'datos_adicionales'

Adjunto los logs solicitados.

Muchas gracias.


error_preinscripciAn.zip (7.97 KB)

Hola Juan,

También aparece el siguiente mensaje en el log de Preinscripción:

– La acción ‘datos_adicionales’ no existe Se redirige a ‘index’ con parámetro ‘datos_adicionales’

Eso esta bien, lo que hace es ingresar a la función accion__index de src/siu/operaciones/censo/controlador.php, si la URL es http://preinscripcion/censo/datos_adicionales toma como formulario el ultimo segmento de la URL que seria “datos_adicionales”.

Pude hacer el cambio indicado, y el valor de "max_input_vars" es 1200.
¿que pasa si probas incrementado dicho valor?

Te voy a pedir agregar lo siguiente al log:

En la función pagelet de src/siu/operaciones/censo/vista.php agrega los siguientes klog2:


	function pagelet($id)
	{
		if (isset($this->pagelets[$id])) {
			return parent::pagelet($id);
		}

		if ($this->existe_form($id)) {
			$clase = "operaciones\censo\pagelet_$id";
			klog2("=== clase ===", $clase);
			klog2("=== id ===", $id);
			return kernel::localizador()->instanciar($clase, $id);
		}

		throw new error_preinscripcion_seguridad("el pagelet '$id' no existe");
	}

Luego volveme a enviar los logs al ingresar a “Datos adicionales”.

saludos.
2

En el perfil ADMIN de Preinscripción menú Configuración de formulario => Configuración de campos de formulario sección PANTALLA: Datos adicionales ¿tenes la menos un campo visible para la dicha sección? ten en cuenta que la configuración es por tipo de propuesta.

Luego si haces cambios en la configuración tenes que ir al menú Borrado de caché APC y hacer click en el botón Limpiar caché.

saludos.
2

Buen día.

Realicé los cambios indicados, y adjunto los logs solicitados, con los valores de max_input_vars anteriores y posteriores al cambio (1200 y 15000, respectivamente).

Muchas gracias.


error_preinscripciAn_20221104_POSTERIOR.zip (4.81 KB)

error_preinscripciAn_20221104_ANTERIOR.zip (3.51 KB)

Hola Juan, gracias por los logs!!!

Por lo que veo carga la sección Datos adicionales pero veo que hay un if en src/siu/operaciones/censo/datos_adicionales/default.twig que si no se cumple no va a mostrar nada:

{% if this.data.cant_inscripciones > 0 and form.visible() %}

Primer condición this.data.cant_inscripciones, ¿cuantos registros te devuelve la siguiente query?


				SELECT 
					id_preinscripcion,
					responsable_academica,
					propuesta,
					ubicacion,
					modalidad,
					periodo_insc,
					estado,
					fecha_preinscripcion,
					fecha_fin_vigencia
				FROM 
					sga_preinscripcion_propuestas
				WHERE
					sga_preinscripcion_propuestas.id_preinscripcion = '96'
					AND fecha_fin_vigencia >= CURRENT_DATE
				ORDER BY
					responsable_academica

Segunda condición form.visible(), es la función visible de src/siu/operaciones/censo/datos_adicionales/form_datos_adicionales.php:

En el perfil ADMIN de Preinscripción menú Configuración de formulario => Configuración de campos de formulario sección PANTALLA: Datos adicionales si o si tenes que tener Visible uno de los siguientes campos turno_preferido, como_conocio_institucion e insc_otra_inst.

Luego si haces cambios en la configuración tenes que ir al menú Borrado de caché APC y hacer click en el botón Limpiar caché.

Ticket: https://redmine.siu.edu.ar/redmine/issues/24821

saludos.
4

Comprobé, y resultó ser que para una de las propuestas, estos campos no estaban seleccionados.
Los seleccioné <alegría>y ahora aparece el formulario</alegría>.
Se había deseleccionado el campo de turno preferido, porque la institución tiene solamente turno tarde.

Luego si haces cambios en la configuración tenes que ir al menú [b]Borrado de caché APC[/b] y hacer click en el botón [b]Limpiar caché[/b].
Al hacer esto, me aparece el mensaje "Ocurrió un problema en el proceso de borrado. Una forma alternativa de borrar la caché APC es reiniciando el servidor Apache". ¿Qué pasos tendría que seguir para que funcione el proceso de borrado desde la interfaz web y sin tener que reiniciar Apache?

Muchas gracias.

Hola Juan,

¿que error te muestra en los logs al querer Limpiar caché? ¿tenes bien los permisos de Apache, ver aquí?

En cuanto a lo de la pantalla Datos adicionales, lo vamos a corregir para la versión 3.21.0, podes solucionarlo sacando los controles:

En src/siu/operaciones/censo/datos_adicionales/default.twig cambiar el if a lo siguiente:

{% if this.data.cant_inscripciones > 0 %}

saludos.
2