Skip to content
Snippets Groups Projects
Commit 8901381c authored by josborg's avatar josborg
Browse files

Filtro por Asignatura completo

parent 907cd44b
Branches
No related tags found
No related merge requests found
......@@ -6,13 +6,13 @@
<div class="row row mb-4">
<fieldset class="form-group row mt-2">
<label class="control-label">Asignatura</label>
<select class="form-control" name="miselectAsignatura" [(ngModel)]="asignatura">
<select class="form-control" name="miselectAsignatura" [(ngModel)]="asignatura" (click)="asignaturaFilter(asignatura)">
<option [value]="i" *ngFor="let item of asignaturas; let i = index">{{item}}</option>
</select>
</fieldset>
<div>
<button class="btn btn-primary mb-2 ml-3" (click)="asignaturaFilter()">filtrar</button>
</div>
<!--<div>
<button class="btn btn-primary mb-2 ml-3" (click)="asignaturaFilter(asignatura)">filtrar</button>
</div>-->
<table class="table table-borderless">
<thead>
<tr>
......
......@@ -146,12 +146,12 @@ export class EncuestasListarComponent implements OnInit {
this.router.navigate(['client/encuestas/'+this.operacion+'/'+this.id+'/soluciones'])
}
asignaturaFilter(){
asignaturaFilter(i:number){
this.encuestasFilter = []
if(this.asignatura == 0){
if(i == 0){
this.encuestasFilter = this.encuestas;
}else{
var links = this.links.filter(f => f.guildName == this.asignaturas[this.asignatura])
var links = this.links.filter(f => f.guildName == this.asignaturas[i])
console.log(links)
links.forEach(link => {
var encuesta = this.encuestas.find(e => e.code == link.code)
......
......@@ -4,7 +4,15 @@
<div class="bg-white rounded-lg shadow-sm p-5">
<div class="container py-5">
<div class="row row mb-4">
<fieldset class="form-group row mt-2">
<label class="control-label">Asignatura</label>
<select class="form-control" name="miselectAsignatura" [(ngModel)]="asignatura" (click)="asignaturaFilter(asignatura)">
<option [value]="i" *ngFor="let item of asignaturas; let i = index">{{item}}</option>
</select>
</fieldset>
<!--<div>
<button class="btn btn-primary mb-2 ml-3" (click)="asignaturaFilter(asignatura)">filtrar</button>
</div>-->
<table class="table table-borderless">
<thead>
<tr>
......@@ -13,7 +21,7 @@
<th scope="col">Name</th>
</tr>
</thead>
<tbody *ngFor="let encuesta of encuestas; let i = index">
<tbody *ngFor="let encuesta of encuestasFilter; let i = index">
<tr>
<td>{{encuesta.id}}</td>
<td>{{encuesta.code}}</td>
......@@ -45,7 +53,9 @@
<div *ngIf="operacion == 'profesores'">
<button class="btn btn-primary mb-2 btn-block" [routerLink]="['/client/encuestas/new']">Nueva</button>
</div>
<div>
<button class="btn btn-primary mb-2 ml-3" (click)="navSol()">Ir a resultados</button>
</div>
</div>
</div>
</div>
......
......@@ -2,6 +2,7 @@ import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Encuesta } from '../shared/api-encuestas/app.encuestas-model';
import { Estado } from '../shared/api-encuestas/app.estados-model';
import { Link } from '../shared/api-encuestas/app.links-model';
import { Solucion } from '../shared/api-encuestas/app.soluciones-model';
import { ClienteApiOrdersService } from '../shared/api-encuestas/cliente-api-encuestas.service';
import { DataOrdersService } from '../shared/api-encuestas/data-encuestas.service';
......@@ -17,6 +18,10 @@ export class PerfilComponent implements OnInit {
userId = "";
soluciones: Array<Solucion> = [];
encuestas: Array<Encuesta> = [];
encuestasFilter: Array<Encuesta> = [];
asignatura: number = 0;
asignaturas: Array<string> = ["Todas"];
links: Array<Link> = [];
users: Array<any> = [];
id: string = "";
operacion: string = "";
......@@ -89,6 +94,9 @@ export class PerfilComponent implements OnInit {
resp => {
if (resp.status < 400) { // Si no hay error en la respuesta
this.encuestas = resp.body as Encuesta[]; // Se obtiene la lista de users desde la respuesta
this.encuestas.forEach(encuesta => {
this.getLinks(encuesta.code);
});
this.getSolucionesFilter();
} else {
this.datos.cambiarMostrarMensaje(true);
......@@ -127,13 +135,13 @@ export class PerfilComponent implements OnInit {
getStats(){
this.nEncuestas = this.encuestas.length;
this.nEncuestas = this.encuestasFilter.length;
this.nEncuestasContestadas = 0;
this.nEncuestasContestadasFinalizadas = 0;
this.nPreguntasContestadas = 0;
this.nPreguntasContestadasAcertadas = 0;
this.encuestas.forEach(encuesta => {
this.encuestasFilter.forEach(encuesta => {
var soluciones = this.soluciones.filter(s => s.idEncuesta == encuesta.id);
if(soluciones.length > 0){
this.nEncuestasContestadas++;
......@@ -220,7 +228,9 @@ export class PerfilComponent implements OnInit {
resp => {
if (resp.status < 400) { // Si no hay error en la respuesta
this.encuestas = resp.body as Encuesta[]; // Se obtiene la lista de users desde la respuesta
this.encuestas.forEach(encuesta => {
this.getLinks(encuesta.code);
});
this.getSolucionesFilter();
} else {
this.datos.cambiarMostrarMensaje(true);
......@@ -242,5 +252,38 @@ export class PerfilComponent implements OnInit {
);
}
getLinks(code:string){
this.clienteApiRest.getLinksByCode(code).subscribe(
resp => {
console.log(resp.body as Link[])
var links = resp.body as Link[]
links.forEach(link => {
this.links.push(link)
if(!this.asignaturas.includes(link.guildName)){
this.asignaturas.push(link.guildName)
}
});
}
)
}
asignaturaFilter(i:number){
this.encuestasFilter = []
if(i == 0){
this.encuestasFilter = this.encuestas;
}else{
var links = this.links.filter(f => f.guildName == this.asignaturas[i])
console.log(links)
links.forEach(link => {
var encuesta = this.encuestas.find(e => e.code == link.code)
if(encuesta != undefined && !this.encuestasFilter.includes(encuesta)){
this.encuestasFilter.push(encuesta)
}
console.log(this.encuestasFilter)
});
}
this.getSolucionesFilter()
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment