Buen día, estamos en versión 3.13.1 y cuando intentamos guardar cambios en el formulario del asunto arroja el siguiente mensaje de error: Se han encontrado errores. No se pudieron guardar los cambios
Desde que arroja el error no permite moverse a ningún otro formulario para intentar continuar.
No estamos usando personalizaciones.
En los logs del servidor web:
[Tue Aug 15 10:37:45.383441 2023] [php7:notice] [pid 8103] [client 10.0.2.4:32802] PHP Notice: Trying to access array offset on value of type null in /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php on line 70, referer: https://guarani3-prueba.unne.edu.ar/inscripcion/censo/datos_principales
10.0.2.110 - - [15/Aug/2023:10:27:51 -0300] "GET /inscripcion/rs.php/censo/datos_principales/pagelet_datos_principales.js HTTP/1.1" 200 10804
10.0.2.4 - - [15/Aug/2023:10:37:45 -0300] "POST /inscripcion/censo/guardar/datos_principales HTTP/1.1" 200 32240
10.0.2.4 - - [15/Aug/2023:10:27:59 -0300] "POST /inscripcion/censo/guardar/datos_principales HTTP/1.1" 200 32242
[Tue Aug 15 10:37:45.383411 2023] [php7:notice] [pid 8103] [client 10.0.2.4:32802] PHP Notice: Undefined index: nacionalidad in /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php on line 70, referer: https://guarani3-prueba.unne.edu.ar/inscripcion/censo/datos_principales
[Tue Aug 15 10:37:45.407775 2023] [php7:notice] [pid 8103] [client 10.0.2.4:32802] PHP Notice: Undefined index: celular_numero in /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php on line 65, referer: https://guarani3-prueba.unne.edu.ar/inscripcion/censo/datos_principales
[Tue Aug 15 10:37:45.407797 2023] [php7:notice] [pid 8103] [client 10.0.2.4:32802] PHP Notice: Trying to access array offset on value of type null in /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php on line 65, referer: https://guarani3-prueba.unne.edu.ar/inscripcion/censo/datos_principales
[Tue Aug 15 10:37:45.412795 2023] [php7:notice] [pid 8103] [client 10.0.2.4:32802] PHP Notice: Undefined index: celular_numero in /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php on line 65, referer: https://guarani3-prueba.unne.edu.ar/inscripcion/censo/datos_principales
[Tue Aug 15 10:37:45.412814 2023] [php7:notice] [pid 8103] [client 10.0.2.4:32802] PHP Notice: Trying to access array offset on value of type null in /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php on line 65, referer: https://guarani3-prueba.unne.edu.ar/inscripcion/censo/datos_principales
10.0.2.4 - - [15/Aug/2023:10:37:45 -0300] "POST /inscripcion/censo/guardar/datos_principales HTTP/1.1" 200 32240
En los logs de la aplicación:
================================================================================
================================= WARNINGS =================================
================================================================================
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 70
Undefined index: nacionalidad
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 70
Trying to access array offset on value of type null
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 65
Undefined index: celular_numero
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 65
Trying to access array offset on value of type null
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 65
Undefined index: celular_numero
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 65
Trying to access array offset on value of type null
.......sigue la información de debug con las consultas SQL sin error visible
En instalacion/config.php :
'produccion' => false,
/**
* Indica si el sistema utiliza personalizaciones. Se debe complementar indicando
* el ID de personalizacin en la configuracin de los puntos de acceso.
* - Valores posibles: true|false
*/
'usar_personalizaciones' => false
/**
* Configuracin 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 informacin de tiempo y memoria consumida
* - 'log::NIVEL_ERROR' -> Recomendado en Produccin
*/
'nivel' => log::NIVEL_DEBUG,
'nivel_consola' => Logger::ERROR,
/**
* Nivel mnimo de log para Web:
* - 'Logger::DEBUG' -> Recomendado en Desarrollo
* - 'Logger::INFO'
* - 'Logger::NOTICE'
* - 'Logger::WARNING'
* - 'Logger::ERROR' -> Recomendado en Produccin
* - 'Logger::CRITICAL'
* - 'Logger::ALERT'
* - 'Logger::EMERGENCY'
*/
'nivel_web' => Logger::DEBUG,
'barra_dev' => false
Gracias por contestar Leonel
Agrego mas información al contexto.
Se agrega un registro a la tabla de tipos de propuestas (‘Secundario’)
Este tipo de propuesta aparece en el combo inicial de configuración de campos (perfil admin de preinscripción)
En la sección de datos principales (admin de preinscripción) se visualiza el campo celular
En la sección de datos principales (alumno de preinscripción) no se visualiza el campo celular
Información de depuración salida de:
$datos = $form->get_datos();
klog2('=== datos prescripción ===', $datos);
– === datos prescripcion DAMIAN=== ------------------------------------------
Array
(
)
Las consultas en la base de datos no devuelven registros.
Se agrega un registro a la tabla de tipos de propuestas ('Secundario')
Ok, la agregaste en la tabla [b]sga_propuestas_tipos[/b] supongo.
Luego deberías agregarle todos los registros en la tabla sga_campos_conf, los podes ver en el archivo BD/creacion/creacion_preinscripcion3_postgresql.sql donde dice Configuración inicial para propuestas de GRADO, vas a tener que cambiar ‘200’ por el valor de sga_propuestas_tipos.propuesta_tipo para Secundario.
Luego en la operación Copiar configuración de campos de formulario podes copiar la configuración de otro tipo de propuesta.
$datos = $form->get_datos();
klog2('=== datos prescripción ===', $datos);
– === datos prescripcion DAMIAN=== ------------------------------------------
Array
(
)
Claro, te viene todo vacío, ¿revisaste lo de max_input_vars que te puse en el mensaje anterior?
Otra cosa, no deberías tener registros para la columna nacionalidad_desc en las tablas sga_campos_form y sga_campos_conf.
¿la propuesta a la que te inscribiste es de tipo “Secundario”, no? Lo podes ver en la solapa Propuesta columna Tipo de propuesta.
En la solapa Datos principales, ¿ves todos los campos?
Revisa el archivo src/siu/operaciones/censo/datos_principales/form_datos_principales.php, busca todos los campos donde form::obligatorio => true, ¿todos esos campos los ves en pantalla? Si hay alguno que falta hace que falle la validación de obligatoriedad y da el error Se han encontrado errores. No se pudieron guardar los cambios.
Veo que en la siguiente query le faltan registros, por ejemplo nacionalidad:
SELECT * FROM sga_campos_conf WHERE propuesta_tipo = 999;
¿que te devuelve la siguiente query?
SELECT * FROM sga_campos_conf WHERE propuesta_tipo = 999 AND columna = 'nacionalidad';
También compara la cantidad de campos para Grado con Secundario, ¿es la misma cantidad de campos?:
SELECT COUNT(1) AS cantidad_grado FROM sga_campos_conf WHERE propuesta_tipo = 200;
SELECT COUNT(1) AS cantidad_secundario FROM sga_campos_conf WHERE propuesta_tipo = 999;
Tenes que tener todos estos INSERTS para Secundario.
Es extraño que tenes el campo nacionalidad como visible pero no se muestre en pantalla.
Te voy a pedir lo siguiente:
Desactivar las personalizaciones en instalacion/config.php pones ‘usar_personalizaciones’ => false, ya que veo que tenes personalizaciones aquí.
Veo que tenes un commit que modifica el core en revisión 72543.
Quizás tenes cacheado el twig en caso de tener ‘produccion’ => true en instalacion/config.php, podes eliminar el contenido dentro de la carpeta instalacion/temp/ y volver a ejecutar el comando bin/preinscripcion compilar_recursos.
Insisto, ¿con otro tipo de propuesta pasa lo mismo, por ejemplo con Grado o Posgrado?
Se borra el contenido de instalacion/temp
Se compila recursos
Se obtiene el mismo comportamiento.
Con propuestas de grado no se observan inconvenientes. Se guarda correctamente la información del formulario en cuestión.
Para la propuesta Tecnicatura En Producción Agropecuaria (tipo Secundario) no muestra la Nacionalidad en Datos principales, para la propuesta Abogacía (tipo Grado) si lo muestra.
Podrías revisar en la función control_group de src/siu/operaciones/_comun/preinscripcion_form.php si el campo nacionalidad_desc esta visible y activo, podes agregar lo siguiente:
function control_group($nombre, $clase_control_group = '')
{
if ($nombre == 'nacionalidad_desc') {
$nacionalidad_desc_visible = $this->def_visible($nombre);
klog2('$nacionalidad_desc_visible', $nacionalidad_desc_visible);
$nacionalidad_desc_activo = $this->check_activo($nombre);
klog2('$nacionalidad_desc_activo', $nacionalidad_desc_activo);
}
if ($this->def_visible($nombre)) {
..................
Cuando selecciono una propuesta de tipo Secundario (999), no se muestra el campo nacionalidad
en los logs se visualiza:
================================================================================
================================= WARNINGS =================================
================================================================================
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 70
Undefined index: nacionalidad
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 70
Trying to access array offset on value of type null
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 70
Undefined index: nacionalidad
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 70
Trying to access array offset on value of type null
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 70
Trying to access array offset on value of type null
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 65
Undefined index: celular_numero
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 65
Trying to access array offset on value of type null
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 65
Undefined index: celular_numero
NOTICE
Archivo: /usr/local/app/src/siu/operaciones/_comun/util_formulario_preinscripcion.php
Linea: 65
Trying to access array offset on value of type null
SELECT * FROM sga_g3entidades_subtipos WHERE entidad_subtipo = 999;
999 "Secundario" 6 1 "N" "N" "N" "N" "N" "sga_propuestas" "propuesta_tipo" "SELECT propuesta_tipo as id, descripcion as nombre FROM sga_propuestas_tipos WHERE propuesta_tipo = "
SELECT * FROM sga_propuestas_tipos WHERE propuesta_tipo = 999;
999 "Secundario" "S" "S" "S" "S" "S" "S" "N"
En las tablas de Preinscripción:
SELECT * FROM sga_propuestas_tipos WHERE propuesta_tipo = 999;
999 "Secundario"
Luego ejecute la siguiente query para copiar la misma configuración de Grado (200):
INSERT INTO sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime)
SELECT sga_propuestas_tipos.propuesta_tipo,
sga_campos_conf.columna,
sga_campos_conf.visible,
sga_campos_conf.obligatorio,
sga_campos_conf.se_imprime
FROM sga_campos_conf,
sga_propuestas_tipos
WHERE sga_campos_conf.propuesta_tipo = '200'
AND sga_propuestas_tipos.propuesta_tipo = '999'
ORDER BY sga_propuestas_tipos.propuesta_tipo,
sga_campos_conf.columna;
SELECT * FROM sga_campos_conf WHERE propuesta_tipo = 999;
Me devuelve 249 registros.