From d27b8a5c4bb0533e1d8c47908bd7409157dc0ac2 Mon Sep 17 00:00:00 2001 From: Mariela Bonilla Date: Wed, 11 Aug 2021 23:45:33 -0600 Subject: [PATCH 1/2] add lista usuarios en ts --- .../dashboard/dashboard-admin/dashboard-admin.component.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts index 1768424..ed5d4a3 100644 --- a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts +++ b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts @@ -17,6 +17,7 @@ import { finalize } from 'rxjs/operators'; import * as Chartist from 'chartist'; import { faWallet, faUsers, faUsersSlash } from '@fortawesome/free-solid-svg-icons'; +import { IUsuarioExtra } from '../../usuario-extra/usuario-extra.model'; @Component({ selector: 'jhi-dashboard-admin', @@ -33,6 +34,7 @@ export class DashboardAdminComponent implements OnInit { gananciasTotales: number = 0; categorias: ICategoria[] | undefined = []; encuestas: IEncuesta[] | undefined = []; + usuarios: IUsuarioExtra[] | null = []; faWallet = faWallet; faUsers = faUsers; faUsersSlash = faUsersSlash; @@ -77,6 +79,7 @@ export class DashboardAdminComponent implements OnInit { cargarCantidadUsuarios() { this.usuarioExtraService.query().subscribe(res => { const tmpUsuarios = res.body; + this.usuarios = tmpUsuarios; this.cantUsuarioActivos = tmpUsuarios?.filter(u => u.estado === 'ACTIVE').length; this.cantUsuarioBloqueados = tmpUsuarios?.filter(u => u.estado === 'SUSPENDED').length; }); From fab8fa06b765c4cbb165597ab134c2c814a1713a Mon Sep 17 00:00:00 2001 From: Mariela Bonilla Date: Thu, 12 Aug 2021 03:05:50 -0600 Subject: [PATCH 2/2] add visualizar reportes de usuarios (administrador) --- .../dashboard-admin.component.html | 70 +++++++++- .../dashboard-admin.component.scss | 13 ++ .../dashboard-admin.component.ts | 126 +++++++++++++++--- 3 files changed, 185 insertions(+), 24 deletions(-) diff --git a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.html b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.html index 2a7b160..3a64b9c 100644 --- a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.html +++ b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.html @@ -1,8 +1,15 @@
- - - -
+
+ + + + +
+
@@ -181,4 +188,59 @@
+
+
+
+
+
+

Reporte de Encuestas Usuarios

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
UsuarioTotal de encuestasEncuestas en borradorEncuestas publicadasEncuestas finalizadasEncuestas completadas por usuario
+
+
{{ usuario.nombre }} + {{ encuestasUsuario[j] }} + + {{ encuestasUsuarioBorrador[j] }} + + {{ encuestasUsuarioPublicadas[j] }} + + {{ encuestasUsuarioFinalizadas[j] }} + + {{ encuestasUsuarioCompletadas[j] }} +
+
+
+
+
+
+
+
+
diff --git a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.scss b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.scss index 1c1f9ba..487f841 100644 --- a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.scss +++ b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.scss @@ -31,3 +31,16 @@ .por-categoria { padding: 5% 0; } +.encuestas-por-usuario .table-responsive { + height: 500px; + max-height: 500px; +} + +.encuestas-por-usuario .photo { + width: 40px; + height: 40px; +} + +.encuestas-por-usuario .photo img { + border-radius: 100%; +} diff --git a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts index 51bd25a..3cd2e69 100644 --- a/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts +++ b/src/main/webapp/app/entities/dashboard/dashboard-admin/dashboard-admin.component.ts @@ -18,6 +18,7 @@ import * as Chartist from 'chartist'; import { faWallet, faUsers, faUsersSlash } from '@fortawesome/free-solid-svg-icons'; import { IUsuarioExtra } from '../../usuario-extra/usuario-extra.model'; +import { IUser } from '../../user/user.model'; @Component({ selector: 'jhi-dashboard-admin', @@ -34,7 +35,7 @@ export class DashboardAdminComponent implements OnInit { gananciasTotales: number = 0; categorias: ICategoria[] | undefined = []; encuestas: IEncuesta[] | undefined = []; - usuarios: IUsuarioExtra[] | null = []; + usuarios: IUsuarioExtra[] | undefined = []; faWallet = faWallet; faUsers = faUsers; faUsersSlash = faUsersSlash; @@ -42,9 +43,15 @@ export class DashboardAdminComponent implements OnInit { encuestasFinalizadas: number = 0; encuestasBorrador: number = 0; encuestasCompletadas: number = 0; + encuestasUsuario: number[] = []; + encuestasUsuarioPublicadas: number[] = []; + encuestasUsuarioFinalizadas: number[] = []; + encuestasUsuarioBorrador: number[] = []; + encuestasUsuarioCompletadas: number[] = []; + usuariosGenerales: IUser[] | null = []; - reportsGeneral = true; - reportForUsers = false; + reportsGeneral = false; + reportForUsers = true; chartFechas = []; @@ -63,33 +70,71 @@ export class DashboardAdminComponent implements OnInit { return item.id!; } + trackIdUsuario(_index: number, item: IUsuarioExtra): number { + return item.id!; + } + + cambiarVista() { + if (this.reportsGeneral) { + this.reportsGeneral = false; + this.reportForUsers = true; + } else if (this.reportForUsers) { + this.reportsGeneral = true; + this.reportForUsers = false; + } + } + loadAll() { this.cargarGananciasTotales(); - this.cargarCantidadUsuarios(); - this.cargarEncuestas(); + this.cargarUsers(); } cargarGananciasTotales() { - this.facturaService.query().subscribe( - res => { - const tempFacturas = res.body; - tempFacturas?.forEach(f => { - if (f.costo != undefined) { - this.gananciasTotales += f.costo; + this.facturaService.query().subscribe(res => { + const tempFacturas = res.body; + tempFacturas?.forEach(f => { + if (f.costo != undefined) { + this.gananciasTotales += f.costo; + } + }); + }); + } + + cargarUsers() { + this.usuarioExtraService + .retrieveAllPublicUsers() + .pipe(finalize(() => this.cargarCantidadUsuarios())) + .subscribe(res => { + res.forEach(user => { + let rolList: string[] | undefined; + rolList = user.authorities; + let a = rolList?.pop(); + if (a == 'ROLE_ADMIN') { + user.authorities = ['Admin']; + } else if (a == 'ROLE_USER') { + user.authorities = ['Usuario']; } }); - }, - () => {} - ); + this.usuariosGenerales = res; + }); } cargarCantidadUsuarios() { - this.usuarioExtraService.query().subscribe(res => { - const tmpUsuarios = res.body; - this.usuarios = tmpUsuarios; - this.cantUsuarioActivos = tmpUsuarios?.filter(u => u.estado === 'ACTIVE').length; - this.cantUsuarioBloqueados = tmpUsuarios?.filter(u => u.estado === 'SUSPENDED').length; - }); + this.usuarioExtraService + .query() + .pipe(finalize(() => this.cargarEncuestas())) + .subscribe(res => { + const tmpUsuarios = res.body; + + if (tmpUsuarios) { + tmpUsuarios.forEach(u => { + u.user = this.usuariosGenerales?.find(g => g.id == u.user?.id); + }); + } + this.usuarios = tmpUsuarios?.filter(u => u.user?.authorities && u.user?.authorities[0] === 'Usuario'); + this.cantUsuarioActivos = tmpUsuarios?.filter(u => u.estado === 'ACTIVE').length; + this.cantUsuarioBloqueados = tmpUsuarios?.filter(u => u.estado === 'SUSPENDED').length; + }); } cargarEncuestas() { @@ -111,6 +156,47 @@ export class DashboardAdminComponent implements OnInit { cantidadCompletadas = cantidadCompletadas + (Number(_contadorCompletadas?.toString().split('.')[1]) - 1); }); this.encuestasCompletadas = cantidadCompletadas; + + //reportes generales de todos los usuarios + const publicadasUser: number[] | null = []; + const finalizadasUser: number[] | null = []; + const borradoresUser: number[] | null = []; + const encuestasUser: number[] | null = []; + const encuestasCompletadasUser: number[] | null = []; + + if (this.usuarios) { + this.usuarios.forEach(u => { + let cantEncuestas = 0; + let cantPublicadas = 0; + let cantFinalizadas = 0; + let cantBorradores = 0; + cantEncuestas = tmpEncuestas.filter( + e => e.estado !== 'DELETED' && e.usuarioExtra?.id === u.id && e.usuarioExtra?.user?.authorities + ).length; + cantPublicadas = tmpEncuestas.filter(e => e.estado === 'ACTIVE' && e.usuarioExtra?.id === u.id).length; + cantFinalizadas = tmpEncuestas.filter(e => e.estado === 'FINISHED' && e.usuarioExtra?.id === u.id).length; + cantBorradores = tmpEncuestas.filter(e => e.estado === 'DRAFT' && e.usuarioExtra?.id === u.id).length; + + encuestasUser.push(cantEncuestas); + borradoresUser.push(cantBorradores); + publicadasUser.push(cantPublicadas); + finalizadasUser.push(cantFinalizadas); + + let cantidadCompletadasUser: number = 0; + tmpEncuestas + .filter(e => e.estado === 'ACTIVE' && e.usuarioExtra?.id === u.id) + .forEach(e => { + const _contadorCompletadas = e.calificacion; + cantidadCompletadasUser = cantidadCompletadasUser + (Number(_contadorCompletadas?.toString().split('.')[1]) - 1); + }); + encuestasCompletadasUser.push(cantidadCompletadasUser); + }); + this.encuestasUsuarioCompletadas = encuestasCompletadasUser; + this.encuestasUsuario = encuestasUser; + this.encuestasUsuarioBorrador = borradoresUser; + this.encuestasUsuarioPublicadas = publicadasUser; + this.encuestasUsuarioFinalizadas = finalizadasUser; + } } }); }