Se agregó plantillas

This commit is contained in:
evenegas
2025-10-01 17:52:36 -06:00
parent 613a44c355
commit 663be0c7c6
2 changed files with 44 additions and 28 deletions
+13 -4
View File
@@ -134,7 +134,7 @@ export class CuestionarioService {
for (const qRow of cuestionarios) {
const plantilla = qRow.getCell(9).value ? Number(row.getCell(8).value) : null;
const plantilla = qRow.getCell(9).value ? Number(row.getCell(9).value) : null;
if (plantilla && PLANTILLA_MAP[plantilla]) {
const fecha_inicio = new Date(qRow.getCell(4).value as string);
@@ -143,13 +143,22 @@ export class CuestionarioService {
const plantillaId = PLANTILLA_MAP[plantilla];
const base = PLANTILLAS.find(p => p.id === plantillaId);
if (!base) throw new Error(`Plantilla ${plantillaId} no encontrada`);
return {
const createDto: CreateEventoWithCuestionarioDto = {
evento: eventoDto,
cuestionario: {
...base.datos,
fecha_inicio,
fecha_fin,
id_tipo_evento,
};
}
},
};
data.push(await this.createCuestionarioEvento(createDto));
continue; // Saltar al siguiente cuestionario
}
// Filtrar secciones de este cuestionario
const secciones = seccionesSheet.getRows(2, seccionesSheet.rowCount - 1)
+31 -24
View File
@@ -1,3 +1,10 @@
import { TiposValidacion } from 'src/pregunta/entities/pregunta.entity';
import {
TipoPreguntaEnum,
} from '../tipo_pregunta/entities/tipo_pregunta.entity';
export const PLANTILLAS = [
{
imagen: '/plantilla_trabajadores.png',
@@ -16,27 +23,27 @@ export const PLANTILLAS = [
preguntas: [
{
titulo: '¿Eres parte de la comunidad de la FES Acatlán?',
tipo: 'Cerrada',
tipo: TipoPreguntaEnum.Cerrada,
opciones: [{ valor: 'Si' }, { valor: 'No' }],
obligatoria: true,
validacion: 'comunidad_trabajador',
validacion: TiposValidacion.COMUNIDAD_TRABAJADOR,
},
{ titulo: 'RFC', tipo: 'Abierta (Respuesta corta)', obligatoria: false, validacion: 'rfc' },
{ titulo: 'Correo electrónico', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'correo' },
{ titulo: 'Nombre(s)', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'nombre' },
{ titulo: 'Apellidos', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'apellidos' },
{ titulo: 'RFC', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: false, validacion: TiposValidacion.RFC },
{ titulo: 'Correo electrónico', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CORREO },
{ titulo: 'Nombre(s)', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.NOMBRE },
{ titulo: 'Apellidos', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.APELLIDOS },
{
titulo: 'Género',
tipo: 'Cerrada',
tipo: TipoPreguntaEnum.Cerrada,
obligatoria: true,
validacion: 'genero',
validacion: TiposValidacion.GENERO,
opciones: [
{ valor: 'Masculino' },
{ valor: 'Femenino' },
{ valor: 'Prefiero no decirlo' },
],
},
{ titulo: 'Carrera', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'carrera' },
{ titulo: 'Carrera', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CARRERA },
],
},
],
@@ -59,28 +66,28 @@ export const PLANTILLAS = [
preguntas: [
{
titulo: '¿Eres parte de la comunidad de la FES Acatlán?',
tipo: 'Cerrada',
tipo: TipoPreguntaEnum.Cerrada,
opciones: [{ valor: 'Si' }, { valor: 'No' }],
obligatoria: true,
validacion: 'comunidad_alumno',
validacion: TiposValidacion.COMUNIDAD_ALUMNO,
},
{ titulo: 'Numero de cuenta', tipo: 'Abierta (Respuesta corta)', obligatoria: false, validacion: 'cuenta_alumno' },
{ titulo: 'Correo electrónico', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'correo' },
{ titulo: 'Nombre(s)', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'nombre' },
{ titulo: 'Apellidos', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'apellidos' },
{ titulo: 'Numero de cuenta', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: false, validacion: TiposValidacion.CUENTA_ALUMNO },
{ titulo: 'Correo electrónico', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CORREO },
{ titulo: 'Nombre(s)', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.NOMBRE },
{ titulo: 'Apellidos', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.APELLIDOS },
{
titulo: 'Género',
tipo: 'Cerrada',
tipo: TipoPreguntaEnum.Cerrada,
obligatoria: true,
validacion: 'genero',
validacion: TiposValidacion.GENERO,
opciones: [
{ valor: 'Masculino' },
{ valor: 'Femenino' },
{ valor: 'Prefiero no decirlo' },
],
},
{ titulo: 'Institución de procedencia', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'institucion' },
{ titulo: 'Carrera', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'carrera' },
{ titulo: 'Institución de procedencia', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.INSTITUCION },
{ titulo: 'Carrera', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CARRERA },
],
},
],
@@ -101,13 +108,13 @@ export const PLANTILLAS = [
descripcion:
'Proporciona tus datos personales para poder contactarte y enviarte información relevante sobre la Feria de la Sexualidad.',
preguntas: [
{ titulo: 'Número de cuenta / trabajador', tipo: 'Abierta (Respuesta corta)', obligatoria: false },
{ titulo: 'Correo electrónico', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'correo' },
{ titulo: 'Nombre(s)', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'nombre' },
{ titulo: 'Apellidos', tipo: 'Abierta (Respuesta corta)', obligatoria: true, validacion: 'apellidos' },
{ titulo: 'Número de cuenta / trabajador', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: false },
{ titulo: 'Correo electrónico', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.CORREO },
{ titulo: 'Nombre(s)', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.NOMBRE },
{ titulo: 'Apellidos', tipo: TipoPreguntaEnum.AbiertaRespuestaCorta, obligatoria: true, validacion: TiposValidacion.APELLIDOS },
{
titulo: 'Tipo de Asistente',
tipo: 'Cerrada',
tipo: TipoPreguntaEnum.Cerrada,
obligatoria: true,
opciones: [
{ valor: 'Alumno' },