Agregar campo a preinscripcion 3.10

Buenas tardes.
Estamos queriendo agregar un campo para saber si el alumno va a realizar el curso de ingreso de forma virtual o presencial.
Los pasos que realice fueron:

ALTER TABLE public.sga_preinscripcion
ADD COLUMN curso_ingreso character(11);

insert into public.sga_campos_form (columna, descripcion) values (‘curso_ingreso’,‘Forma en que realizará el cursillo de ingreso’);

insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (200,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (201,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (202,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (203,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (204,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (205,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (206,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (207,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (208,‘curso_ingreso’,1,1,0,0);
insert into public.sga_campos_conf (propuesta_tipo, columna, visible, obligatorio, se_imprime, genera_reporte) values (209,‘curso_ingreso’,1,1,0,0);

Luego en /proyectos/preinscripcion/src/unau/operaciones/censo/datos_adicionales copie los archivos default.twig y form_datos_adicionales.php de la carpeta /proyectos/preinscripcion/src/siu/operaciones/censo/datos_adicionales.

Al archivo .twig agregue:
{% if form.hay_visibles_agrupado(‘curso_ingreso’) %}


{{‘curso_ingreso’|trans}}




{{ form.control_group(‘curso_ingreso’) }}



{% endif %}

y al archivo .php agruegue:
//---- Curso ingreso -------------------------------------
$this->set_campo(‘curso_ingreso’, array(
form::label => ‘curso_ingreso’,
form::filtro => validador::TIPO_TEXTO,
form::obligatorio => false,
form::elemento => array(‘tipo’ => ‘text’),
form::largo => 255,
form::clase_css => ‘input-xxlarge’,
));

En mensajes -que ya tenemos personalizado, agregue ‘curso_ingreso’ => ‘Como vas a realizar el curso de ingreso’,
Luego corrí ./preinscripcion compilar_recursos

Pero no me esta apareciendo el campo en la pagina; ni desde administrador para configurarlo, ni desde alumno.

Me podrían orientar para poder agregar este campo.
Desde ya muchas gracias.
Saludos.

Buen día Martín

Si se fijan en el log de errores de apache lo más probable es que tengan un mensaje similar a:
PHP Notice: Undefined index: curso_ingreso in /src/siu/operaciones/_comun/util_formulario_preinscripcion.php on line 151

Esto se soluciona personalizando un archivo más
src/siu/operaciones/_comun/util_formulario_preinscripcion.php

Deben buscar el método get_campos_secciones y agregar
$this->campos_secciones[‘datos_adicionales’][‘curso_ingreso’] = array(‘curso_ingreso’);

Prueben este ajuste y nos cuentan como les fue.

Saludos.

Buen día José.
Gracias por tu respuesta, voy a seguir los pasos indicados y vuelvo a comentar.
Este archivo “src/siu/operaciones/_comun/util_formulario_preinscripcion.php” debo copiarlo tambien en nuestra estructura “src/unau”?
Saludos.

Sí, por un cuestión de orden y facilidad a la hora de actualizar recomendamos que todas las personalizaciones sigan la estructura.

Sólo es necesario copiar el método personalizado.
El archivo puede quedar algo así:

<?php namespace [b]unau[/b]\operaciones\_comun; use SIU\Chulupi\kernel; use siu\modelo\util; class util_formulario_preinscripcion [b]extends \siu\operaciones\_comun\util_formulario_preinscripcion[/b] { function get_campos_secciones() { if (!isset($this->campos_secciones)) { $this->campos_secciones = array(); ... (conservar los datos originales y agregar el dato personalizado) $this->campos_secciones['datos_adicionales']['curso_ingreso'] = array('curso_ingreso'); ... //------------------------------------------------------------------ $this->campos_secciones['datos_principales'] = array();

Hola José.
Quedo funcionando perfecto el nuevo campo en el formulario (vista y funcionalidad).
Muchísimas gracias por la ayuda!!
Saludos!