Skip to content

Commit

Permalink
Quiz
Browse files Browse the repository at this point in the history
  • Loading branch information
jorge1301 committed Feb 1, 2020
1 parent e5b0324 commit 3711fe0
Show file tree
Hide file tree
Showing 36 changed files with 1,179 additions and 41 deletions.
10 changes: 9 additions & 1 deletion src/app/administracion/administracion.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ import { PdfViewerModule } from 'ng2-pdf-viewer';
import { AgGridModule } from 'ag-grid-angular';
import { ProgramacionComponent } from './programacion/programacion.component';
import { EstiloCeldaAgridComponent } from './estilo-celda-agrid/estilo-celda-agrid.component';
import { AlumnosComponent } from './alumnos/alumnos.component';
import { AlumnosFormularioComponent } from './alumnos/alumnos-formulario.component';
import { QuizComponent } from './quiz/quiz.component';
import { QuizFormularioComponent } from './quiz/quiz-formulario.component';

@NgModule({
declarations: [
Expand All @@ -51,7 +55,11 @@ import { EstiloCeldaAgridComponent } from './estilo-celda-agrid/estilo-celda-agr
PortafolioFormularioComponent,
PortafolioCursosFormularioComponent,
ProgramacionComponent,
EstiloCeldaAgridComponent
EstiloCeldaAgridComponent,
AlumnosComponent,
AlumnosFormularioComponent,
QuizComponent,
QuizFormularioComponent
],
imports: [
SharedModule,
Expand Down
149 changes: 131 additions & 18 deletions src/app/administracion/administracion.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,144 @@ import { PortafolioFormularioComponent } from './portafolio/portafolio-formulari
import { CertificadoFormularioComponent } from './certificados/certificado-formulario.component';
import { PortafolioCursosFormularioComponent } from './portafolio-cursos/portafolio-cursos-formulario.component';
import { ProgramacionComponent } from './programacion/programacion.component';
import { NopagefoundComponent } from '../shared/nopagefound/nopagefound.component';
import { AlumnosComponent } from './alumnos/alumnos.component';
import { AlumnosFormularioComponent } from './alumnos/alumnos-formulario.component';
import { QuizComponent } from './quiz/quiz.component';
import { QuizFormularioComponent } from './quiz/quiz-formulario.component';
import { VerificaTokenGuard } from '../services/guards/verifica-token.guard';


const routes: Routes = [{
path: 'administracion',
component: AdministracionComponent,
canActivate: [LoginGuardGuard],
children: [
{ path: 'agencias', component: AgenciasComponent, data: { titulo: 'Agencias' } },
{ path: 'agencia/:id', component: AgenciaFormularioComponent, data: { titulo: 'Agencias' } },
{ path: 'avanzado', component: AvanzadoComponent, data: { titulo: 'Cursos Avanzados' } },
{ path: 'avanzado/:id', component: AvanzadoFormularioComponent, data: { titulo: 'Cursos Avanzados' } },
{ path: 'galeria', component: GaleriaComponent, data: { titulo: 'Galeria' } },
{ path: 'galeria/:id', component: GaleriaFormularioComponent, data: { titulo: 'Galeria' } },
{ path: 'internacional', component: InternacionalComponent, data: { titulo: 'Cursos Internacionales' } },
{ path: 'internacional/:id', component: InternacionalFormularioComponent, data: { titulo: 'Cursos Internacionales' } },
{ path: 'portafolio', component: PortafolioComponent, data: { titulo: 'Portafolio' } },
{ path: 'portafolio/:id', component: PortafolioFormularioComponent, data: { titulo: 'Portafolio' } },
{ path: 'certificados', component: CertificadosComponent, data: { titulo: 'Certificados' } },
{ path: 'certificado/:id', component: CertificadoFormularioComponent, data: { titulo: 'Certificados' } },
{ path: 'account-settings', component: AccountSettingsComponent, data: { titulo: 'Ajustes del Tema' } },
{ path: 'perfil', component: ProfileComponent, data: { titulo: 'Perfil de usuario' } },
{ path: 'portafolio-cursos', component: PortafolioCursosComponent, data: { titulo: 'Cursos del Portafolio' } },
{ path: 'portafolio-cursos/:id', component: PortafolioCursosFormularioComponent, data: { titulo: 'Cursos del Portafolio' } },
{ path: 'programacion', component: ProgramacionComponent, data: { titulo: 'Programacion de cursos' } }
{
path: 'agencias',
component: AgenciasComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Agencias' }
},
{
path: 'agencia/:id',
component: AgenciaFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Agencias' }
},
{
path: 'avanzado',
component: AvanzadoComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Cursos Avanzados' }
},
{
path: 'avanzado/:id',
component: AvanzadoFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Cursos Avanzados' }
},
{
path: 'galeria',
component: GaleriaComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Galeria' }
},
{
path: 'galeria/:id',
component: GaleriaFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Galeria' }
},
{
path: 'internacional',
component: InternacionalComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Cursos Internacionales' }
},
{
path: 'internacional/:id',
component: InternacionalFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Cursos Internacionales' }
},
{
path: 'portafolio',
component: PortafolioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Portafolio' }
},
{
path: 'portafolio/:id',
component: PortafolioFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Portafolio' }
},
{
path: 'certificados',
component: CertificadosComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Certificados' }
},
{
path: 'certificado/:id',
component: CertificadoFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Certificados' }
},
{
path: 'account-settings',
component: AccountSettingsComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Ajustes del Tema' }
},
{
path: 'perfil',
component: ProfileComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Perfil de usuario' }
},
{
path: 'portafolio-cursos',
component: PortafolioCursosComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Cursos del Portafolio' }
},
{
path: 'portafolio-cursos/:id',
component: PortafolioCursosFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Cursos del Portafolio' }
},
{
path: 'programacion',
component: ProgramacionComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Programacion de cursos' }
},
{
path: 'alumnos',
component: AlumnosComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Alumnos' }
},
{
path: 'alumnos/:id',
component: AlumnosFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Alumnos' }
},
{
path: 'quiz',
component: QuizComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Simulador de preguntas' }
},
{
path: 'quiz/:id',
component: QuizFormularioComponent,
canActivate: [VerificaTokenGuard],
data: { titulo: 'Simulador de preguntas' }
}
]
}];

Expand Down
57 changes: 57 additions & 0 deletions src/app/administracion/alumnos/alumnos-formulario.component.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<div class="row">
<div class="col-lg-7">
<div class="card">
<div class="card-body">
<h4 class="card-title">{{id === 'nuevo' ? 'Crear' : 'Editar'}} alumno</h4>
<form ngNativeValidate #formulario="ngForm" (ngSubmit)="crearAlumno(formulario)" class="form p-t-20">
<div class="form-group">
<label for="exampleInputuname">Cedula</label>
<div class="input-group">
<div class="input-group-addon"><i class="ti-id-badge"></i></div>
<input name="cedula" [(ngModel)]="alumno.cedula" type="text" class="form-control"
placeholder="Cedula" required [disabled]="condicion">
</div>
</div>
<div class="form-group">
<label for="exampleInputuname">Nombre</label>
<div class="input-group">
<div class="input-group-addon"><i class="ti-user"></i></div>
<input name="nombre" [(ngModel)]="alumno.nombre" type="text" class="form-control"
placeholder="Nombre" required>
</div>
</div>
<div class="form-group">
<label for="exampleInputuname">Email</label>
<div class="input-group">
<div class="input-group-addon"><i class="ti-email"></i></div>
<input name="email" [(ngModel)]="alumno.email" type="email" class="form-control"
placeholder="Email" required>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-lg-6">
<select [(ngModel)]="quiz" name="quiz" class="custom-select" required>
<option value="">Seleccione el tipo de examen</option>
<option value="Guardia">Guardia</option>
</select>
</div>
<div class="col-lg-6">
<input [(ngModel)]="estado" name="estado" id="checkbox-estado" type="checkbox" class="filled-in chk-col-light-blue">
<label for="checkbox-estado"> {{estado===false?'El alumno no puede realizar el examen':'El alumno puede realizar el examen'}} </label>
</div>
</div>
</div>
<div class="text-center">
<button type="submit" class="btn btn-success waves-effect waves-light m-r-10">
<i class="fa fa-save"></i>
Guardar</button>
<a routerLink="/administracion/alumnos" class="btn btn-inverse waves-effect waves-light m-r-10">
<i class="fa fa-times"></i>
Cancelar</a>
</div>
</form>
</div>
</div>
</div>
</div>
60 changes: 60 additions & 0 deletions src/app/administracion/alumnos/alumnos-formulario.component.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import { Component, OnInit } from '@angular/core';
import { AlumnosService } from '../../services/service.index';
import { Alumno } from '../../models/alumno.model';
import { Router, ActivatedRoute } from '@angular/router';
import { NgForm } from '@angular/forms';

@Component({
selector: 'app-alumnos-formulario',
templateUrl: './alumnos-formulario.component.html',
styles: []
})
export class AlumnosFormularioComponent implements OnInit {
alumno: Alumno = new Alumno();
id: string;
condicion = false;
quiz = '';
estado = false;

constructor(
public alumnoService: AlumnosService,
public router: Router,
public activatedRoute: ActivatedRoute
) {
activatedRoute.params.subscribe(params => {
this.id = params.id;
if (this.id !== 'nuevo') {
this.condicion = true;
this.buscarInformacion(this.id);
}
});
}

ngOnInit() {
}

crearAlumno(formulario: NgForm) {
if (formulario.invalid) {
return;
}
this.alumno = formulario.value;
this.alumno.estado = this.estado;
this.alumno.quiz = this.quiz;
this.alumno._id = this.id;
this.alumnoService.crearAlumnos(this.alumno)
.subscribe(() => {
this.router.navigate(['administracion/alumnos']);
}
);
}

buscarInformacion(id) {
this.alumnoService.buscarAlumnoId(id)
.subscribe((alumno: any) => {
this.alumno = alumno;
this.quiz = alumno.quiz;
this.estado = alumno.estado;
});
}

}
70 changes: 70 additions & 0 deletions src/app/administracion/alumnos/alumnos.component.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<div class="row animated fadeIn">
<div class="col-12">
<div class="card">
<div class="card-body">
<input #input (keyup)="buscarInformacion(input.value)" type="text" class="form-control"
placeholder="Buscar Alumno">
</div>
</div>
</div>
</div>

<div class="alert alert-warning text-center" *ngIf="cargando">
<strong>Cargando</strong>
<br>
<i class="fa fa-spinner fa-spin"></i>
<br>
<span>Espere por favor</span>
</div>

<div class="row animated fadeIn" *ngIf="!cargando">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="text-right">
<button [routerLink]="['/administracion/alumnos','nuevo']" type="button"
class="btn waves-effect waves-light btn-rounded btn-primary"> <i class="fa fa-plus"></i>
Crear Alumno
</button>
</div>
<h3 class="card-title"> Alumnos registrados (<small>{{totalRegistros}}</small>)</h3>
<table class="table table-hover">
<thead>
<tr>
<th>Cedula</th>
<th>Nombre</th>
<th>Email</th>
<th>Estado</th>
<th>Tipo de examen</th>
<th>Opciones</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let alumno of listaAlumnos">
<td>{{alumno.cedula}}</td>
<td>{{alumno.nombre}}</td>
<td>{{alumno.email}}</td>
<td>{{alumno.estado === false?'Desabilitado':'Habilitado'}}</td>
<td>{{alumno.quiz}}</td>
<td>
<div class="d-flex justify-content-sm-end">
<button [routerLink]="['/administracion/alumnos',alumno._id]"
class="btn btn-primary mr-1">
<i class="fa fa-edit"></i>
</button>
<button (click)="eliminarInformacion(alumno)" class="btn btn-danger mr-1">
<i class="fa fa-trash-o"></i>
</button>
</div>
</td>
</tr>
</tbody>
</table>
<button (click)="cambiarDesde(-5)"
class="btn btn-secondary mr-1 matTooltip='Info about the action'">Anteriores</button>
<button (click)="cambiarDesde(5)" class="btn btn-secondary mr-1">Siguientes</button>
</div>
</div>
</div>
</div>

Loading

0 comments on commit 3711fe0

Please sign in to comment.