+
+
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 2dfa232..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
@@ -17,6 +17,8 @@ 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';
+import { IUser } from '../../user/user.model';
@Component({
selector: 'jhi-dashboard-admin',
@@ -33,6 +35,7 @@ export class DashboardAdminComponent implements OnInit {
gananciasTotales: number = 0;
categorias: ICategoria[] | undefined = [];
encuestas: IEncuesta[] | undefined = [];
+ usuarios: IUsuarioExtra[] | undefined = [];
faWallet = faWallet;
faUsers = faUsers;
faUsersSlash = faUsersSlash;
@@ -40,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 = [];
@@ -61,32 +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.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() {
@@ -108,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;
+ }
}
});
}
+
+
+
+
+
+
@@ -181,4 +188,59 @@
+
+
+
+
+
+
+
+
+ Reporte de Encuestas Usuarios
+
+
+
+
+
+
+
+
+
+
+
+ Usuario | ++ | Total de encuestas | +Encuestas en borrador | +Encuestas publicadas | +Encuestas finalizadas | +Encuestas completadas por usuario | +
---|---|---|---|---|---|---|
+ + | +{{ usuario.nombre }} | ++ {{ encuestasUsuario[j] }} + | ++ {{ encuestasUsuarioBorrador[j] }} + | ++ {{ encuestasUsuarioPublicadas[j] }} + | ++ {{ encuestasUsuarioFinalizadas[j] }} + | ++ {{ encuestasUsuarioCompletadas[j] }} + | +