Add create survey from template
This commit is contained in:
parent
e3852a7c72
commit
1d06b6d84a
|
@ -11,10 +11,7 @@ import java.util.stream.Collectors;
|
|||
import java.util.stream.Stream;
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import org.datasurvey.domain.EPreguntaAbierta;
|
||||
import org.datasurvey.domain.EPreguntaCerrada;
|
||||
import org.datasurvey.domain.EPreguntaCerradaOpcion;
|
||||
import org.datasurvey.domain.Encuesta;
|
||||
import org.datasurvey.domain.*;
|
||||
import org.datasurvey.domain.enumeration.AccesoEncuesta;
|
||||
import org.datasurvey.repository.EncuestaRepository;
|
||||
import org.datasurvey.service.*;
|
||||
|
@ -59,6 +56,14 @@ public class EncuestaResource {
|
|||
|
||||
private final EPreguntaCerradaOpcionService ePreguntaCerradaOpcionService;
|
||||
|
||||
private final PlantillaService plantillaService;
|
||||
|
||||
private final PPreguntaCerradaService pPreguntaCerradaService;
|
||||
|
||||
private final PPreguntaAbiertaService pPreguntaAbiertaService;
|
||||
|
||||
private final PPreguntaCerradaOpcionService pPreguntaCerradaOpcionService;
|
||||
|
||||
public EncuestaResource(
|
||||
EncuestaService encuestaService,
|
||||
EncuestaRepository encuestaRepository,
|
||||
|
@ -66,7 +71,11 @@ public class EncuestaResource {
|
|||
MailService mailService,
|
||||
EPreguntaCerradaService ePreguntaCerradaService,
|
||||
EPreguntaAbiertaService ePreguntaAbiertaService,
|
||||
EPreguntaCerradaOpcionService ePreguntaCerradaOpcionService
|
||||
EPreguntaCerradaOpcionService ePreguntaCerradaOpcionService,
|
||||
PlantillaService plantillaService,
|
||||
PPreguntaCerradaService pPreguntaCerradaService,
|
||||
PPreguntaAbiertaService pPreguntaAbiertaService,
|
||||
PPreguntaCerradaOpcionService pPreguntaCerradaOpcionService
|
||||
) {
|
||||
this.encuestaService = encuestaService;
|
||||
this.encuestaRepository = encuestaRepository;
|
||||
|
@ -75,6 +84,10 @@ public class EncuestaResource {
|
|||
this.ePreguntaCerradaService = ePreguntaCerradaService;
|
||||
this.ePreguntaAbiertaService = ePreguntaAbiertaService;
|
||||
this.ePreguntaCerradaOpcionService = ePreguntaCerradaOpcionService;
|
||||
this.plantillaService = plantillaService;
|
||||
this.pPreguntaCerradaService = pPreguntaCerradaService;
|
||||
this.pPreguntaAbiertaService = pPreguntaAbiertaService;
|
||||
this.pPreguntaCerradaOpcionService = pPreguntaCerradaOpcionService;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -97,6 +110,78 @@ public class EncuestaResource {
|
|||
.body(result);
|
||||
}
|
||||
|
||||
@PostMapping("/encuestas/{plantillaId}")
|
||||
public ResponseEntity<Encuesta> createEncuestaFromTemplate(
|
||||
@Valid @RequestBody Encuesta encuesta,
|
||||
@PathVariable(value = "plantillaId", required = false) final Long plantillaId
|
||||
) throws URISyntaxException {
|
||||
log.debug("REST request to save Encuesta : {}", encuesta);
|
||||
if (encuesta.getId() != null) {
|
||||
throw new BadRequestAlertException("A new encuesta cannot already have an ID", ENTITY_NAME, "idexists");
|
||||
}
|
||||
|
||||
// Copy from survey template to survey
|
||||
Optional<Plantilla> plantilla = plantillaService.findOne(plantillaId);
|
||||
|
||||
if (plantilla.isPresent()) {
|
||||
encuesta.setNombre(plantilla.get().getNombre());
|
||||
encuesta.setDescripcion(plantilla.get().getDescripcion());
|
||||
encuesta.setCategoria(plantilla.get().getCategoria());
|
||||
|
||||
Encuesta encuestaCreated = encuestaService.save(encuesta);
|
||||
|
||||
// Preguntas cerradas
|
||||
List<PPreguntaCerrada> preguntasCerradas = pPreguntaCerradaService.findAll();
|
||||
for (PPreguntaCerrada pPreguntaCerrada : preguntasCerradas) {
|
||||
if (pPreguntaCerrada.getPlantilla().getId().equals(plantillaId)) {
|
||||
EPreguntaCerrada newEPreguntaCerrada = new EPreguntaCerrada();
|
||||
newEPreguntaCerrada.setNombre(pPreguntaCerrada.getNombre());
|
||||
newEPreguntaCerrada.setTipo(pPreguntaCerrada.getTipo());
|
||||
newEPreguntaCerrada.setOpcional(pPreguntaCerrada.getOpcional());
|
||||
newEPreguntaCerrada.setOrden(pPreguntaCerrada.getOrden());
|
||||
newEPreguntaCerrada.setEncuesta(encuestaCreated);
|
||||
|
||||
ePreguntaCerradaService.save(newEPreguntaCerrada);
|
||||
|
||||
// Opciones de preguntas cerradas
|
||||
List<PPreguntaCerradaOpcion> opciones = pPreguntaCerradaOpcionService.findAll();
|
||||
for (PPreguntaCerradaOpcion pPreguntaCerradaOpcion : opciones) {
|
||||
if (pPreguntaCerradaOpcion.getPPreguntaCerrada().getId().equals(pPreguntaCerrada.getId())) {
|
||||
EPreguntaCerradaOpcion newEPreguntaCerradaOpcion = new EPreguntaCerradaOpcion();
|
||||
newEPreguntaCerradaOpcion.setNombre(pPreguntaCerradaOpcion.getNombre());
|
||||
newEPreguntaCerradaOpcion.setOrden(pPreguntaCerradaOpcion.getOrden());
|
||||
newEPreguntaCerradaOpcion.setCantidad(0);
|
||||
newEPreguntaCerradaOpcion.setEPreguntaCerrada(newEPreguntaCerrada);
|
||||
|
||||
ePreguntaCerradaOpcionService.save(newEPreguntaCerradaOpcion);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Preguntas abiertas
|
||||
List<PPreguntaAbierta> preguntasAbiertas = pPreguntaAbiertaService.findAll();
|
||||
for (PPreguntaAbierta pPreguntaAbierta : preguntasAbiertas) {
|
||||
if (pPreguntaAbierta.getPlantilla().getId().equals(plantillaId)) {
|
||||
EPreguntaAbierta newEPreguntaAbierta = new EPreguntaAbierta();
|
||||
newEPreguntaAbierta.setNombre(pPreguntaAbierta.getNombre());
|
||||
newEPreguntaAbierta.setOpcional(pPreguntaAbierta.getOpcional());
|
||||
newEPreguntaAbierta.setOrden(pPreguntaAbierta.getOrden());
|
||||
newEPreguntaAbierta.setEncuesta(encuestaCreated);
|
||||
|
||||
ePreguntaAbiertaService.save(newEPreguntaAbierta);
|
||||
}
|
||||
}
|
||||
|
||||
return ResponseEntity
|
||||
.created(new URI("/api/encuestas/" + encuestaCreated.getId()))
|
||||
.headers(HeaderUtil.createEntityCreationAlert(applicationName, true, ENTITY_NAME, encuestaCreated.getId().toString()))
|
||||
.body(encuestaCreated);
|
||||
}
|
||||
|
||||
return ResponseEntity.ok().body(null);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@code PUT /encuestas/:id} : Updates an existing encuesta.
|
||||
*
|
||||
|
|
|
@ -317,7 +317,11 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
|
|||
if (encuesta.id !== undefined) {
|
||||
this.subscribeToSaveResponse(this.encuestaService.update(encuesta));
|
||||
} else {
|
||||
this.subscribeToSaveResponse(this.encuestaService.create(encuesta));
|
||||
// TMP CREATE SURVEY FROM TEMPLATE
|
||||
const templateId: Number = 20;
|
||||
|
||||
// this.subscribeToSaveResponse(this.encuestaService.create(encuesta));
|
||||
this.subscribeToSaveResponse(this.encuestaService.createFromTemplate(encuesta, templateId));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,13 @@ export class EncuestaService {
|
|||
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
|
||||
}
|
||||
|
||||
createFromTemplate(encuesta: IEncuesta, plantillaId: Number): Observable<EntityResponseType> {
|
||||
const copy = this.convertDateFromClient(encuesta);
|
||||
return this.http
|
||||
.post<IEncuesta>(`${this.resourceUrl}/${plantillaId}`, copy, { observe: 'response' })
|
||||
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
|
||||
}
|
||||
|
||||
//update para publicar
|
||||
update(encuesta: IEncuesta): Observable<EntityResponseType> {
|
||||
const copy = this.convertDateFromClient(encuesta);
|
||||
|
|
|
@ -102,3 +102,4 @@
|
|||
@import 'paper-dashboard/datasurvey-home';
|
||||
@import 'paper-dashboard/datasurvey-filter';
|
||||
@import 'paper-dashboard/datasurvey-survey';
|
||||
@import 'paper-dashboard/datasurvey-switch';
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
.ds-switch {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
||||
& input {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
& label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
font-size: 0.8rem;
|
||||
color: #757d94;
|
||||
margin: 0;
|
||||
|
||||
&::before {
|
||||
top: 2px !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
&::after {
|
||||
top: 3.5px !important;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -34,7 +34,8 @@
|
|||
"ePreguntaAbierta": "Pregunta Abierta",
|
||||
"ePreguntaCerrada": "Pregunta Cerrada",
|
||||
"categoria": "Categoría",
|
||||
"usuarioExtra": "Correo Usuario"
|
||||
"usuarioExtra": "Correo Usuario",
|
||||
"plantilla": "Plantilla"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue