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?
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?
¿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.
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”.
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é.
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).
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é.
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?