Add duplicate survey
This commit is contained in:
parent
3695c037b2
commit
6e7264b813
|
@ -2,6 +2,7 @@ package org.datasurvey.web.rest;
|
||||||
|
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
@ -306,4 +307,71 @@ public class EncuestaResource {
|
||||||
mailService.sendEncuestaDeleted(encuesta.getUsuarioExtra());
|
mailService.sendEncuestaDeleted(encuesta.getUsuarioExtra());
|
||||||
return ResponseEntity.noContent().build();
|
return ResponseEntity.noContent().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/encuestas/duplicate/{id}")
|
||||||
|
public ResponseEntity<Encuesta> getAllEncuestas(@PathVariable Long id) {
|
||||||
|
Optional<Encuesta> encuesta = encuestaService.findOne(id);
|
||||||
|
Encuesta newEncuesta = new Encuesta();
|
||||||
|
|
||||||
|
if (encuesta.isPresent()) {
|
||||||
|
// Encuesta
|
||||||
|
newEncuesta.setNombre(encuesta.get().getNombre());
|
||||||
|
newEncuesta.setDescripcion(encuesta.get().getDescripcion());
|
||||||
|
newEncuesta.setFechaCreacion(ZonedDateTime.now());
|
||||||
|
newEncuesta.setCalificacion(5d);
|
||||||
|
newEncuesta.setAcceso(encuesta.get().getAcceso());
|
||||||
|
newEncuesta.setEstado(encuesta.get().getEstado());
|
||||||
|
newEncuesta.setCategoria(encuesta.get().getCategoria());
|
||||||
|
newEncuesta.setUsuarioExtra(encuesta.get().getUsuarioExtra());
|
||||||
|
|
||||||
|
Encuesta encuestaCreated = encuestaService.save(newEncuesta);
|
||||||
|
|
||||||
|
// Preguntas cerradas
|
||||||
|
List<EPreguntaCerrada> preguntasCerradas = ePreguntaCerradaService.findAll();
|
||||||
|
for (EPreguntaCerrada ePreguntaCerrada : preguntasCerradas) {
|
||||||
|
if (ePreguntaCerrada.getEncuesta().getId().equals(id)) {
|
||||||
|
EPreguntaCerrada newEPreguntaCerrada = new EPreguntaCerrada();
|
||||||
|
newEPreguntaCerrada.setNombre(ePreguntaCerrada.getNombre());
|
||||||
|
newEPreguntaCerrada.setTipo(ePreguntaCerrada.getTipo());
|
||||||
|
newEPreguntaCerrada.setOpcional(ePreguntaCerrada.getOpcional());
|
||||||
|
newEPreguntaCerrada.setOrden(ePreguntaCerrada.getOrden());
|
||||||
|
newEPreguntaCerrada.setEncuesta(encuestaCreated);
|
||||||
|
|
||||||
|
ePreguntaCerradaService.save(newEPreguntaCerrada);
|
||||||
|
|
||||||
|
// Opciones de preguntas cerradas
|
||||||
|
List<EPreguntaCerradaOpcion> opciones = ePreguntaCerradaOpcionService.findAll();
|
||||||
|
for (EPreguntaCerradaOpcion ePreguntaCerradaOpcion : opciones) {
|
||||||
|
if (ePreguntaCerradaOpcion.getEPreguntaCerrada().getId().equals(ePreguntaCerrada.getId())) {
|
||||||
|
EPreguntaCerradaOpcion newEPreguntaCerradaOpcion = new EPreguntaCerradaOpcion();
|
||||||
|
newEPreguntaCerradaOpcion.setNombre(ePreguntaCerradaOpcion.getNombre());
|
||||||
|
newEPreguntaCerradaOpcion.setOrden(ePreguntaCerradaOpcion.getOrden());
|
||||||
|
newEPreguntaCerradaOpcion.setCantidad(0);
|
||||||
|
newEPreguntaCerradaOpcion.setEPreguntaCerrada(newEPreguntaCerrada);
|
||||||
|
|
||||||
|
ePreguntaCerradaOpcionService.save(newEPreguntaCerradaOpcion);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Preguntas abiertas
|
||||||
|
List<EPreguntaAbierta> preguntasAbiertas = ePreguntaAbiertaService.findAll();
|
||||||
|
for (EPreguntaAbierta ePreguntaAbierta : preguntasAbiertas) {
|
||||||
|
if (ePreguntaAbierta.getEncuesta().getId().equals(id)) {
|
||||||
|
EPreguntaAbierta newEPreguntaAbierta = new EPreguntaAbierta();
|
||||||
|
newEPreguntaAbierta.setNombre(ePreguntaAbierta.getNombre());
|
||||||
|
newEPreguntaAbierta.setOpcional(ePreguntaAbierta.getOpcional());
|
||||||
|
newEPreguntaAbierta.setOrden(ePreguntaAbierta.getOrden());
|
||||||
|
newEPreguntaAbierta.setEncuesta(encuestaCreated);
|
||||||
|
|
||||||
|
ePreguntaAbiertaService.save(newEPreguntaAbierta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok().body(encuestaCreated);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ResponseEntity.ok().body(null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -504,7 +504,8 @@ export class EncuestaComponent implements OnInit, AfterViewInit {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
duplicateSurvey(): void {
|
async duplicateSurvey(): Promise<void> {
|
||||||
console.log(this.selectedSurveyId);
|
const res = await this.encuestaService.duplicate(this.selectedSurveyId!).toPromise();
|
||||||
|
this.loadAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,6 +61,10 @@ export class EncuestaService {
|
||||||
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
|
.pipe(map((res: EntityResponseType) => this.convertDateFromServer(res)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
duplicate(id: number): Observable<EntityResponseType> {
|
||||||
|
return this.http.get<any>(`${this.resourceUrl}/duplicate/${id}`, { observe: 'response' });
|
||||||
|
}
|
||||||
|
|
||||||
publishEncuesta(encuesta: IEncuesta): Observable<EntityResponseType> {
|
publishEncuesta(encuesta: IEncuesta): Observable<EntityResponseType> {
|
||||||
//const copy = this.convertDateFromClient(encuesta);
|
//const copy = this.convertDateFromClient(encuesta);
|
||||||
return this.http.put<IEncuesta>(`${this.resourceUrl}/publish/${getEncuestaIdentifier(encuesta) as number}`, encuesta, {
|
return this.http.put<IEncuesta>(`${this.resourceUrl}/publish/${getEncuestaIdentifier(encuesta) as number}`, encuesta, {
|
||||||
|
|
|
@ -16,12 +16,12 @@ export interface ChildrenItems {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ADMIN_ROUTES: RouteInfo[] = [
|
export const ADMIN_ROUTES: RouteInfo[] = [
|
||||||
{
|
// {
|
||||||
path: '/dashboard',
|
// path: '/dashboard',
|
||||||
title: 'Dashboard',
|
// title: 'Dashboard',
|
||||||
type: 'link',
|
// type: 'link',
|
||||||
icontype: 'nc-icon nc-chart-bar-32',
|
// icontype: 'nc-icon nc-chart-bar-32',
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: '/encuesta',
|
path: '/encuesta',
|
||||||
title: 'Encuestas',
|
title: 'Encuestas',
|
||||||
|
|
Loading…
Reference in New Issue