From e3e9bb1fc51d2ec26d00c29a99f68ee1b84b8677 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 19:40:25 -0600 Subject: [PATCH 01/11] Eliminar modulo de vista de categorias Este modulo no esta en uso. Por lo que es mejor eliminarlo para evitar que se acumule mucho codigo muerto. --- .../entities/categoria/categoria.module.ts | 3 +- .../detail/categoria-detail.component.html | 36 ------------------ .../detail/categoria-detail.component.spec.ts | 38 ------------------- .../detail/categoria-detail.component.ts | 24 ------------ .../route/categoria-routing.module.ts | 9 ----- 5 files changed, 1 insertion(+), 109 deletions(-) delete mode 100644 src/main/webapp/app/entities/categoria/detail/categoria-detail.component.html delete mode 100644 src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts delete mode 100644 src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts diff --git a/src/main/webapp/app/entities/categoria/categoria.module.ts b/src/main/webapp/app/entities/categoria/categoria.module.ts index 96383a6..59f2dd3 100644 --- a/src/main/webapp/app/entities/categoria/categoria.module.ts +++ b/src/main/webapp/app/entities/categoria/categoria.module.ts @@ -1,14 +1,13 @@ import { NgModule } from '@angular/core'; import { SharedModule } from 'app/shared/shared.module'; import { CategoriaComponent } from './list/categoria.component'; -import { CategoriaDetailComponent } from './detail/categoria-detail.component'; import { CategoriaUpdateComponent } from './update/categoria-update.component'; import { CategoriaDeleteDialogComponent } from './delete/categoria-delete-dialog.component'; import { CategoriaRoutingModule } from './route/categoria-routing.module'; @NgModule({ imports: [SharedModule, CategoriaRoutingModule], - declarations: [CategoriaComponent, CategoriaDetailComponent, CategoriaUpdateComponent, CategoriaDeleteDialogComponent], + declarations: [CategoriaComponent, CategoriaUpdateComponent, CategoriaDeleteDialogComponent], entryComponents: [CategoriaDeleteDialogComponent], }) export class CategoriaModule {} diff --git a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.html b/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.html deleted file mode 100644 index 9531c6c..0000000 --- a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.html +++ /dev/null @@ -1,36 +0,0 @@ -
-
-
-

Categoria

- -
- - - - - -
-
ID
-
- {{ categoria.id }} -
-
Nombre
-
- {{ categoria.nombre }} -
-
Estado
-
- {{ categoria.estado }} -
-
- - - - -
-
-
diff --git a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts b/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts deleted file mode 100644 index 506ac72..0000000 --- a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { ActivatedRoute } from '@angular/router'; -import { of } from 'rxjs'; - -import { CategoriaDetailComponent } from './categoria-detail.component'; - -describe('Component Tests', () => { - describe('Categoria Management Detail Component', () => { - let comp: CategoriaDetailComponent; - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [CategoriaDetailComponent], - providers: [ - { - provide: ActivatedRoute, - useValue: { data: of({ categoria: { id: 123 } }) }, - }, - ], - }) - .overrideTemplate(CategoriaDetailComponent, '') - .compileComponents(); - fixture = TestBed.createComponent(CategoriaDetailComponent); - comp = fixture.componentInstance; - }); - - describe('OnInit', () => { - it('Should load categoria on init', () => { - // WHEN - comp.ngOnInit(); - - // THEN - expect(comp.categoria).toEqual(expect.objectContaining({ id: 123 })); - }); - }); - }); -}); diff --git a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts b/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts deleted file mode 100644 index 36ecdcf..0000000 --- a/src/main/webapp/app/entities/categoria/detail/categoria-detail.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; - -import { ICategoria } from '../categoria.model'; - -@Component({ - selector: 'jhi-categoria-detail', - templateUrl: './categoria-detail.component.html', -}) -export class CategoriaDetailComponent implements OnInit { - categoria: ICategoria | null = null; - - constructor(protected activatedRoute: ActivatedRoute) {} - - ngOnInit(): void { - this.activatedRoute.data.subscribe(({ categoria }) => { - this.categoria = categoria; - }); - } - - previousState(): void { - window.history.back(); - } -} diff --git a/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts b/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts index d48d560..95acd27 100644 --- a/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts +++ b/src/main/webapp/app/entities/categoria/route/categoria-routing.module.ts @@ -3,7 +3,6 @@ import { RouterModule, Routes } from '@angular/router'; import { UserRouteAccessService } from 'app/core/auth/user-route-access.service'; import { CategoriaComponent } from '../list/categoria.component'; -import { CategoriaDetailComponent } from '../detail/categoria-detail.component'; import { CategoriaUpdateComponent } from '../update/categoria-update.component'; import { CategoriaRoutingResolveService } from './categoria-routing-resolve.service'; @@ -13,14 +12,6 @@ const categoriaRoute: Routes = [ component: CategoriaComponent, canActivate: [UserRouteAccessService], }, - { - path: ':id/view', - component: CategoriaDetailComponent, - resolve: { - categoria: CategoriaRoutingResolveService, - }, - canActivate: [UserRouteAccessService], - }, { path: 'new', component: CategoriaUpdateComponent, From fa906eb8dc262e6927e6449313b9df07497f53b7 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 20:38:41 -0600 Subject: [PATCH 02/11] corregir nombrado en texto por defecto --- .../categoria/delete/categoria-delete-dialog.component.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html index 3fae047..0289904 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.html @@ -1,4 +1,4 @@ -
+ From 3fd224f4d4cc23e1af649d05fabbbb7536ff6be8 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 20:39:01 -0600 Subject: [PATCH 03/11] hacer que el metodo de eliminacion use la categoria entera esto es para eventualmente reemplazarla por un update --- .../categoria/delete/categoria-delete-dialog.component.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index d6edc6a..e99a28e 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -16,8 +16,8 @@ export class CategoriaDeleteDialogComponent { this.activeModal.dismiss(); } - confirmDelete(id: number): void { - this.categoriaService.delete(id).subscribe(() => { + confirmDelete(categoria: ICategoria): void { + this.categoriaService.delete(categoria.id!).subscribe(() => { this.activeModal.close('deleted'); }); } From a7383be03abb140a160388159fea4d05cd20e93d Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 20:49:19 -0600 Subject: [PATCH 04/11] actualizar categoria como INACTIVE esto es en lugar de eliminarlos de la base de datos, para mantener en existencia las entradas --- .../categoria/delete/categoria-delete-dialog.component.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index e99a28e..4bffc15 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { EstadoCategoria } from 'app/entities/enumerations/estado-categoria.model'; import { ICategoria } from '../categoria.model'; import { CategoriaService } from '../service/categoria.service'; @@ -17,7 +18,8 @@ export class CategoriaDeleteDialogComponent { } confirmDelete(categoria: ICategoria): void { - this.categoriaService.delete(categoria.id!).subscribe(() => { + categoria.estado = EstadoCategoria.INACTIVE; + this.categoriaService.update(categoria).subscribe(() => { this.activeModal.close('deleted'); }); } From 6a25173ad8da137710db5ef9079ffab9b7ab725c Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Wed, 14 Jul 2021 21:11:34 -0600 Subject: [PATCH 05/11] agregar underscore al variable index esto se debe a que no se utiliza en la funcion, por lo que puede ser no utilizable en la llamada de la funcion --- .../webapp/app/entities/categoria/list/categoria.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/app/entities/categoria/list/categoria.component.ts b/src/main/webapp/app/entities/categoria/list/categoria.component.ts index d0a9206..31ddcff 100644 --- a/src/main/webapp/app/entities/categoria/list/categoria.component.ts +++ b/src/main/webapp/app/entities/categoria/list/categoria.component.ts @@ -38,7 +38,7 @@ export class CategoriaComponent implements OnInit { this.loadAll(); } - trackId(index: number, item: ICategoria): number { + trackId(_index: number, item: ICategoria): number { return item.id!; } From 530340ada6496bad9e159f7b582b3346044acd9e Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Fri, 16 Jul 2021 18:23:03 -0600 Subject: [PATCH 06/11] agregar servicios de encuesta para eventualmente 'eliminar' la categoria de las encuestas que la contengan --- .../categoria/delete/categoria-delete-dialog.component.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index 4bffc15..a9192e4 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { EncuestaService } from 'app/entities/encuesta/service/encuesta.service'; import { EstadoCategoria } from 'app/entities/enumerations/estado-categoria.model'; import { ICategoria } from '../categoria.model'; @@ -11,7 +12,11 @@ import { CategoriaService } from '../service/categoria.service'; export class CategoriaDeleteDialogComponent { categoria?: ICategoria; - constructor(protected categoriaService: CategoriaService, protected activeModal: NgbActiveModal) {} + constructor( + protected categoriaService: CategoriaService, + protected activeModal: NgbActiveModal, + protected encuestaService: EncuestaService + ) {} cancel(): void { this.activeModal.dismiss(); From 81966f4310beb07f6c9eee90bc0c675f6ad716bb Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Fri, 16 Jul 2021 20:14:08 -0600 Subject: [PATCH 07/11] organize imports --- .../java/org/datasurvey/repository/CategoriaRepository.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/datasurvey/repository/CategoriaRepository.java b/src/main/java/org/datasurvey/repository/CategoriaRepository.java index 66368c1..6a4897c 100644 --- a/src/main/java/org/datasurvey/repository/CategoriaRepository.java +++ b/src/main/java/org/datasurvey/repository/CategoriaRepository.java @@ -1,7 +1,8 @@ package org.datasurvey.repository; import org.datasurvey.domain.Categoria; -import org.springframework.data.jpa.repository.*; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; /** From 4dfc8c7217ef3da91650a68107a08ead1b98c57a Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Fri, 16 Jul 2021 20:18:33 -0600 Subject: [PATCH 08/11] obtener encuestas para filtrado --- .../delete/categoria-delete-dialog.component.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index a9192e4..1f2460b 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -1,5 +1,6 @@ import { Component } from '@angular/core'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { IEncuesta } from 'app/entities/encuesta/encuesta.model'; import { EncuestaService } from 'app/entities/encuesta/service/encuesta.service'; import { EstadoCategoria } from 'app/entities/enumerations/estado-categoria.model'; @@ -11,6 +12,8 @@ import { CategoriaService } from '../service/categoria.service'; }) export class CategoriaDeleteDialogComponent { categoria?: ICategoria; + encuestas?: IEncuesta[]; + encuestasFiltradas?: IEncuesta[]; constructor( protected categoriaService: CategoriaService, @@ -28,4 +31,14 @@ export class CategoriaDeleteDialogComponent { this.activeModal.close('deleted'); }); } + protected getEncuestas(categoria: ICategoria): void { + this.encuestaService.query().subscribe(res => { + this.encuestas = res.body ?? []; + }); + if (this.encuestas) { + this.encuestasFiltradas = this.encuestas.filter(encuesta => { + encuesta.categoria!.id === categoria.id; + }); + } + } } From cfb979899f70adffcf2953203433b4aa622096f4 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Fri, 16 Jul 2021 20:20:15 -0600 Subject: [PATCH 09/11] asegurar existencia de categoria nula --- .../delete/categoria-delete-dialog.component.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index 1f2460b..465803d 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -4,7 +4,7 @@ import { IEncuesta } from 'app/entities/encuesta/encuesta.model'; import { EncuestaService } from 'app/entities/encuesta/service/encuesta.service'; import { EstadoCategoria } from 'app/entities/enumerations/estado-categoria.model'; -import { ICategoria } from '../categoria.model'; +import { Categoria, ICategoria } from '../categoria.model'; import { CategoriaService } from '../service/categoria.service'; @Component({ @@ -31,6 +31,16 @@ export class CategoriaDeleteDialogComponent { this.activeModal.close('deleted'); }); } + ensureNulaExists(): void { + const categoriaNula = new Categoria(0, 'Otra', EstadoCategoria.ACTIVE); + const categoria = this.categoriaService.find(0); + if (categoria) { + this.categoriaService.update(categoriaNula); + } else { + this.categoriaService.create(categoriaNula); + } + } + protected getEncuestas(categoria: ICategoria): void { this.encuestaService.query().subscribe(res => { this.encuestas = res.body ?? []; From 8e7430d3f944342adcfc452416f9a3d4b426471c Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Fri, 16 Jul 2021 20:20:54 -0600 Subject: [PATCH 10/11] actualizar encuestas que tengan categoria borrada --- .../delete/categoria-delete-dialog.component.ts | 9 +++++++++ .../categoria/update/categoria-update.component.ts | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts index 465803d..14225df 100644 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts +++ b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.ts @@ -26,6 +26,15 @@ export class CategoriaDeleteDialogComponent { } confirmDelete(categoria: ICategoria): void { + this.ensureNulaExists(); + const categoriaNula = new Categoria(0, 'Otra', EstadoCategoria.ACTIVE); + this.getEncuestas(categoria); + if (this.encuestas) { + this.encuestas!.forEach(encuesta => { + encuesta.categoria = categoriaNula; + this.encuestaService.update(encuesta); + }); + } categoria.estado = EstadoCategoria.INACTIVE; this.categoriaService.update(categoria).subscribe(() => { this.activeModal.close('deleted'); diff --git a/src/main/webapp/app/entities/categoria/update/categoria-update.component.ts b/src/main/webapp/app/entities/categoria/update/categoria-update.component.ts index 29f8252..e1dd398 100644 --- a/src/main/webapp/app/entities/categoria/update/categoria-update.component.ts +++ b/src/main/webapp/app/entities/categoria/update/categoria-update.component.ts @@ -64,7 +64,7 @@ export class CategoriaUpdateComponent implements OnInit { protected categoryExists(categoria: ICategoria): boolean { this.loadAll(); - var condicion = this.categorias!.some(cat => cat.nombre!.toLowerCase() === categoria.nombre!.toLowerCase()); + var condicion = this.categorias!.some(cat => cat.nombre!.toLowerCase() === categoria.nombre!.toLowerCase() && cat.id !== categoria.id); return condicion; } From c4ecc4ac0af2db2c32c33e3e7297a4ca1e769ac9 Mon Sep 17 00:00:00 2001 From: Eduardo Quiros Date: Fri, 16 Jul 2021 22:56:51 -0600 Subject: [PATCH 11/11] eliminar test dado que no se ejecuta de esa manera ahora --- .../categoria-delete-dialog.component.spec.ts | 65 ------------------- 1 file changed, 65 deletions(-) delete mode 100644 src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.spec.ts diff --git a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.spec.ts b/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.spec.ts deleted file mode 100644 index 8511caf..0000000 --- a/src/main/webapp/app/entities/categoria/delete/categoria-delete-dialog.component.spec.ts +++ /dev/null @@ -1,65 +0,0 @@ -jest.mock('@ng-bootstrap/ng-bootstrap'); - -import { ComponentFixture, TestBed, inject, fakeAsync, tick } from '@angular/core/testing'; -import { HttpResponse } from '@angular/common/http'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { of } from 'rxjs'; -import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; - -import { CategoriaService } from '../service/categoria.service'; - -import { CategoriaDeleteDialogComponent } from './categoria-delete-dialog.component'; - -describe('Component Tests', () => { - describe('Categoria Management Delete Component', () => { - let comp: CategoriaDeleteDialogComponent; - let fixture: ComponentFixture; - let service: CategoriaService; - let mockActiveModal: NgbActiveModal; - - beforeEach(() => { - TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - declarations: [CategoriaDeleteDialogComponent], - providers: [NgbActiveModal], - }) - .overrideTemplate(CategoriaDeleteDialogComponent, '') - .compileComponents(); - fixture = TestBed.createComponent(CategoriaDeleteDialogComponent); - comp = fixture.componentInstance; - service = TestBed.inject(CategoriaService); - mockActiveModal = TestBed.inject(NgbActiveModal); - }); - - describe('confirmDelete', () => { - it('Should call delete service on confirmDelete', inject( - [], - fakeAsync(() => { - // GIVEN - jest.spyOn(service, 'delete').mockReturnValue(of(new HttpResponse({}))); - - // WHEN - comp.confirmDelete(123); - tick(); - - // THEN - expect(service.delete).toHaveBeenCalledWith(123); - expect(mockActiveModal.close).toHaveBeenCalledWith('deleted'); - }) - )); - - it('Should not call delete service on clear', () => { - // GIVEN - jest.spyOn(service, 'delete'); - - // WHEN - comp.cancel(); - - // THEN - expect(service.delete).not.toHaveBeenCalled(); - expect(mockActiveModal.close).not.toHaveBeenCalled(); - expect(mockActiveModal.dismiss).toHaveBeenCalled(); - }); - }); - }); -});