estado subsist 1

parent 63fefcec
......@@ -2096,7 +2096,6 @@ var HaskellService = (function () {
this.authService = authService;
}
HaskellService.prototype.getArchivos = function (cedula) {
console.log('pidiendo los archivos en kaskell service: ', this.authService.getToken());
var headers = new __WEBPACK_IMPORTED_MODULE_1__angular_http__["l" /* Headers */]({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authService.getToken() });
var params = new __WEBPACK_IMPORTED_MODULE_1__angular_http__["m" /* URLSearchParams */]();
params.set('cedula', cedula);
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -702,7 +702,6 @@ var LoginComponent = (function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.authenticationService.getAllSchools().subscribe(function (data) {
console.log('todos los liceos: ', data);
_this.schoolList = data;
//admin
_this.genericServices.GET('/servicios/usuario/getMatefunAdmin', [], true).subscribe(function (data) {
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -7,17 +7,17 @@
<div class="col-md-3">
<p style="font-size: 23px; color: #0085ff; text-decoration: bold;" class="mt-4" *ngIf="esAdminLiceo">{{liceoSeleccionado.nombre}}</p>
<label *ngIf="!esAdminLiceo">Seleccione el Liceo</label>
<select *ngIf="!esAdminLiceo" [(ngModel)]="liceoSeleccionado" (ngModelChange)="liceoChange($event)" class="form-control" [ngModelOptions]="{standalone: true}">
<select *ngIf="!esAdminLiceo" [(ngModel)]="liceoSeleccionado" (ngModelChange)="cambioLiceo($event)" class="form-control" [ngModelOptions]="{standalone: true}">
<option value="undefined">Seleccione un liceo</option>
<option *ngFor="let school of schoolList" [ngValue]="school">{{school.nombre}}</option>
</select>
</div>
<div class="col-md-2">
<div class="col-md-3">
<label class="form-control-label" for="fechainicio">Fecha inicio</label>
<div class="form-group">
<div class="input-group">
<input class="form-control" (blur)="blurCalendar(dinicio)" (click)="dinicio.toggle()" placeholder="dd-mm-aaaa" name="dp" id="fechainicio" [(ngModel)]="fechainicio" (ngModelChange)="finicioChange($event)" ngbDatepicker #dinicio="ngbDatepicker">
<div class="input-group-append" (blur)="blurCalendar(dinicio)">
<input class="form-control" (click)="dinicio.toggle()" placeholder="aaaa-mm-dd" name="dp" id="fechainicio" [(ngModel)]="fechainicio" (ngModelChange)="actualizarData()" ngbDatepicker #dinicio="ngbDatepicker">
<div class="input-group-append" >
<button class="btn btn-outline-secondary calendar" (click)="dinicio.toggle()" type="button">
<img width=20 src="assets/img/calendario.png" alt="&#128197;">
</button>
......@@ -25,12 +25,12 @@
</div>
</div>
</div>
<div class="col-md-2">
<div class="col-md-3">
<label class="form-control-label" for="fechafin">Fecha fin</label>
<div class="form-group">
<div class="input-group">
<input class="form-control" (blur)="blurCalendar(dfin)" (click)="dfin.toggle()" placeholder="dd-mm-aaaa" name="dp" id="fechafin" [(ngModel)]="fechafin" (ngModelChange)="ffinChange($event)" ngbDatepicker #dfin="ngbDatepicker">
<div class="input-group-append" (blur)="blurCalendar(dfin)">
<input class="form-control" (click)="dfin.toggle()" placeholder="aaaa-mm-dd" name="dp" id="fechafin" [(ngModel)]="fechafin" (ngModelChange)="actualizarData()" ngbDatepicker #dfin="ngbDatepicker">
<div class="input-group-append">
<button class="btn btn-outline-secondary calendar" (click)="dfin.toggle()" type="button">
<img width=20 src="assets/img/calendario.png" alt="&#128197;">
</button>
......@@ -46,8 +46,9 @@
<div class="card">
<p class="ml-2 mt-2 liceomsg" *ngIf="!liceoSeleccionado">Debe seleccionar un liceo ...</p>
<p class="ml-2 mt-2 liceomsg" *ngIf="!!liceoSeleccionado && loading">Cargando <img width=40 src="assets/img/btnloading.gif"/></p>
<table *ngIf="liceoSeleccionado" class="table table-hover">
<table *ngIf="!!liceoSeleccionado && !loading" class="table table-hover">
<thead>
<tr>
<th scope="col">Dato</th>
......@@ -78,7 +79,7 @@
</td>
<td><a class="disableLinkSyle" title="{{usuarioTotalTooltip}}">{{ liceoSeleccionado.cantidadUsuarios }}</a></td>
</tr>
<tr>
<tr *ngIf="liceoSeleccionado.archivosAccedidos">
<td>Archivos Accedidos
&nbsp;&nbsp;<i style="font-size: 20px;" triggers="mouseenter:mouseleave" class="fa fa-info-circle fa-4" placement="top" ngbPopover="{{help.textFileAccess}}" popoverTitle="{{help.titleFileAccess}}"></i>
</td>
......@@ -88,13 +89,13 @@
<td>Acceso a curso (total período)
&nbsp;&nbsp;<i style="font-size: 20px;" triggers="mouseenter:mouseleave" class="fa fa-info-circle fa-4" placement="top" ngbPopover="{{help.textCourseAccess}}" popoverTitle="{{help.titleCourseAccess}}"></i>
</td>
<td>
<td *ngIf="liceoSeleccionado.cursos">
<div class="row">
<div class="col-3">
{{liceoSeleccionado.cursos.length}}
</div>
<div class="col-7">
<select [(ngModel)]="cursoSeleccionado" (ngModelChange)="cursoChange($event)" class="form-control" [ngModelOptions]="{standalone: true}">
<select [(ngModel)]="cursoSeleccionado" class="form-control" [ngModelOptions]="{standalone: true}">
<option value="undefined">Seleccionar curso</option>
<option value="0">Todos (período)</option>
<option *ngFor="let curso of liceoSeleccionado.cursos" [ngValue]="curso">{{curso.nombre}}</option>
......@@ -136,7 +137,9 @@
<ng-template ngbTabContent>
<div class="card">
<p class="ml-2 mt-2 liceomsg" *ngIf="!liceoSeleccionado">Debe seleccionar un liceo ...</p>
<div *ngIf="liceoSeleccionado" class="row mt-3">
<p class="ml-2 mt-2 liceomsg" *ngIf="!!liceoSeleccionado && loading">Cargando <img width=40 src="assets/img/btnloading.gif"/></p>
<div *ngIf="!!liceoSeleccionado && !loading" class="row mt-3">
<div class="col-md-2"></div>
<div class="col-md-3">
<label>Tipo de función</label>
......@@ -156,7 +159,7 @@
</div>
</div>
<div *ngIf="liceoSeleccionado" class="row mt-3">
<div *ngIf="!!liceoSeleccionado && !loading" class="row mt-3">
<div class="col-md-1"></div>
<div class="col-md-8">
<table class="table table-hover">
......@@ -184,7 +187,7 @@
</div>
<div class="col-md-1"></div>
<div class="col-md-2">
<div *ngIf="estadistico" class="col-md-2">
<div style="color: #0085ff;" class="row mt-3">Promedio</div>
<div class="row">{{ estadistico.prom }}&nbsp;ms</div>
......
......@@ -2,6 +2,8 @@ import { Component, OnInit } from '@angular/core';
import { DialogService } from "ng2-bootstrap-modal";
import { DetalleComponent } from './../../shared/modal/detalle.component';
import { Usuario } from '../../shared/objects/usuario';
import { EstadoSistemaService } from '../../shared/services/estadosistema.service'
import { AuthenticationService } from '../../shared/services/authentication.service';
import * as _ from "lodash";
@Component({
......@@ -23,7 +25,7 @@ export class EstadoSistemaComponent implements OnInit {
estadistico: any;
esAdminLiceo: boolean = false;
usuarioTotalTooltip: string = 'Hace referencia a cualquier referencia a el curso seleccionado usando matefun.\nEj: Leer archivos de curso.\n compartir archivos a alumnos de un curso.\n entregar trabajo para el curso, etc.';
loading: boolean = false;
tipoFuncion: string;
nombreFuncion: string;
......@@ -48,120 +50,95 @@ export class EstadoSistemaComponent implements OnInit {
titleTask: 'Tareas/entregas (período)'
}
constructor(private dialogService: DialogService) { }
ngOnInit() {
this.schoolList = [
{
liceoid: 3,
nombre: 'Liceo 3',
url: 'https://matefun.moodlecloud.com/',
cantidadUsuarios: 19,
logueadosActualmente: 3,
archivosAccedidos : [{nombre: 'prueba.mf', tamanio: 23, usuario: 'docente2' , fecha: '2020-May-04'}],
cursos:
[
{
idCurso: 3,
cantidadAlumnos: 7,
cantidadDocentes: 3,
nombre: 'Matematica sexto',
archivosCompartidos : [ {nombre: 'Tareaborrador.mf' , tamanio: 445, tipo: 'grupo', fecha: '2020-may-05'},
{nombre: 'tareaborrador2.mf' , tamanio: 998, tipo: 'grupo', fecha: '2020-may-09'},
{nombre: 'prueba34.mf' , tamanio: 1221, tipo: 'usuario', fecha: '2020-abr-05'},
{nombre: 'compartir' , tamanio: 5423, tipo: 'curso', fecha: '2020-may-01'}
],
tareasExistentes: [ {nombre: 'Oblig 1' , archivosEntregados: 20, archivosCorregidos: 16, archivosTotales: 23 , tipo : 'grupal'},
{nombre: 'Oblig 2' , archivosEntregados: 16, archivosCorregidos: 14, archivosTotales: 17 , tipo : 'individual'},
{nombre: 'Oblig 3' , archivosEntregados: 11, archivosCorregidos: 10, archivosTotales: 23 , tipo : 'grupal'}
],
},
{
idCurso: 4,
cantidadAlumnos: 9,
cantidadDocentes: 3,
nombre: 'Fisica',
archivosCompartidos : [{nombre: 'gonza' , tamanio: 12, tipo: 'curso' , fecha: '2020-may-05'}],
tareasExistentes: [ {nombre: 'vsafsd' , archivosCorregidos: 1, archivosTotales: 23 , tipo : 'grupal'},
{nombre: 'vsdfvfds' , archivosCorregidos: 4, archivosTotales: 55 , tipo : 'individual'},
],
}
],
} ,
{liceoid: 2 , nombre: 'Liceo 2', url: 'matefun2.111',} ,
{liceoid: 1 , nombre: 'Liceo 1', url: 'matefun3.aaa',}
];
this.tiempos = [
{ tipo: 'matefun', nombre: '/logout' , promediodia: 786, max: 981, min: 122, fecha: '2020-may-18'},
{ tipo: 'moodle', nombre: 'core_user_get_user' , promediodia: 321, max: 677, min: 221, fecha: '2020-may-17' },
{ tipo: 'matefun', nombre: '/compartirArchivo' , promediodia: 613, max: 998, min: 290, fecha: '2020-may-16' },
{ tipo: 'moodle', nombre: 'core_user_get_user' , promediodia: 335, max: 566, min: 110 , fecha: '2020-may-15' },
{ tipo: 'matefun', nombre: '/logout' , promediodia: 416, max: 781, min: 200, fecha: '2020-may-14' },
{ tipo: 'moodle', nombre: 'core_user_delete_user' , promediodia: 191, max: 612, min: 101, fecha: '2020-may-13' },
];
this.estadistico = { prom: 235, max: 778 , min: 116 };
const usuario : Usuario = Usuario.getUser();
this.esAdminLiceo = Usuario.getUser().esAdminLiceo();
constructor(private dialogService: DialogService, private estadosistemaservice: EstadoSistemaService, private authenticationService: AuthenticationService,) { }
async ngOnInit() {
this.loading = false;
this.schoolList = await this.authenticationService.getAllSchools().toPromise();
//if (this.schoolList.length > 1) {
this.schoolList.push({liceoid: 0, nombre : 'Todos'});
//}
const user : Usuario = Usuario.getUser();
this.esAdminLiceo = user.esAdminLiceo();
if (this.esAdminLiceo){
this.liceoSeleccionado = this.schoolList[0];
this.liceoSeleccionado = this.schoolList.find ( (l: any) => l.liceoid === user.liceoId);
this.actualizarData();
}
}
cambioLiceo() {
this.cursoSeleccionado = undefined;
if (this.liceoSeleccionado.liceoid==0){
//cambiar opciones cursos
}else{
//cambiar opciones cursos
}
this.actualizarData();
}
blurCalendar(d: any){
window.setTimeout( () => {d.close();} , 300 );
actualizarEstadistico(tiempos) {
const maximo = Math.max (...tiempos.map( (t:any) => t.max));
const minimo = Math.min (...tiempos.map( (t:any) => t.min));
let sumaTotal = 0;
let sumaDenominadores = 0;
for (let t of tiempos){
sumaTotal += t.promediodia * t.cantidadDatos;
sumaDenominadores += t.cantidadDatos;
}
const promedioTotal = sumaTotal/sumaDenominadores;
return { prom: this.toFixedDown(promedioTotal,1), max: maximo , min: minimo };
}
actualizarData() {
const liceo = !!this.liceoSeleccionado ? this.liceoSeleccionado.liceoid : null;
const inicio = this.fechainicio ? ((this.fechainicio.year + '-') + (this.fechainicio.month + '-') + (this.fechainicio.day)) : '1970-01-01';
const fin = this.fechafin ? ((this.fechafin.year + '-') + (this.fechafin.month + '-') + (this.fechafin.day)) : '3000-01-01';
this.estadosistemaservice.getTiempos(liceo, inicio, fin).subscribe(
data => {
this.tiempos = data;
this.estadistico = this.actualizarEstadistico(this.tiempos);
},
error => { console.log(error); }
);
this.loading = true;
this.estadosistemaservice.getEstadoSistema(liceo, inicio, fin).subscribe(
dataEstadoSistema => {
this.loading = false;
console.log ('dataEstadoSistema: ' , dataEstadoSistema)
this.liceoSeleccionado.archivosAccedidos = dataEstadoSistema.archivosAccedidos;
this.liceoSeleccionado.cantidadUsuarios = dataEstadoSistema.cantidadUsuarios;
this.liceoSeleccionado.cursos = dataEstadoSistema.cursos;
this.liceoSeleccionado.logueadosActualmente = dataEstadoSistema.logueadosActualmente;
this.liceoSeleccionado.url = dataEstadoSistema.url;
},
error => {
this.loading = false;
console.log(error);
}
);
}
toFixedDown(num, digits){
let re = new RegExp("(\\d+\\.\\d{" + digits + "})(\\d)"),
m = num.toString().match(re);
return m ? parseFloat(m[1]) : num.valueOf();
}
get promStdev() : any {
const res = { prom : 0 , stdev : 0 , max : 0 , min : 0};
const resTiempos = this.resultadoTiempos;
let accum = 0;
for (let t of resTiempos) {
accum += t.promediodia;
}
const promedio = accum/resTiempos.length;
accum = 0;
for (let t of resTiempos) {
accum += Math.pow(t.promediodia - promedio, 2)
}
res.prom = this.toFixedDown(promedio,1);
res.stdev = this.toFixedDown(Math.sqrt( accum / resTiempos.length ),1);
res.max = this.toFixedDown(Math.max(...resTiempos.map (t => t.promediodia )),1);
res.min = this.toFixedDown(Math.min(...resTiempos.map (t => t.promediodia )),1);
return res;
}
cambioTipoFuncion(event) {
this.nombreFuncion = undefined;
}
clickFecha(id){
console.log (id);
}
get resultadoTiempos(): any[] {
if (!this.tiempos)
if (!this.tiempos) {
this.estadistico = { prom: '?', max: '?' , min: '?' }
return [];
return this.tiempos.filter ( (t: any) => (!this.tipoFuncion || t.tipo===this.tipoFuncion) &&
(!this.nombreFuncion || t.nombre===this.nombreFuncion)
);
}
const resultado: any[] = this.tiempos.filter ( (t: any) => (!this.tipoFuncion || t.tipo===this.tipoFuncion) &&
(!this.nombreFuncion || t.nombre===this.nombreFuncion)
);
this.estadistico = this.actualizarEstadistico(resultado);
return resultado;
}
get funciones() : string[] {
......@@ -174,24 +151,6 @@ export class EstadoSistemaComponent implements OnInit {
window.open(destination, '_blank');
}
cursoChange(curso: any) {
}
liceoChange(liceo: any) {
}
finicioChange(newDate: any){
const fInicioUnixMyTimezone = new Date(this.fechainicio.year + '.' + this.fechainicio.month + '.' + this.fechainicio.day).getTime() / 1000;
//console.log ('ffinunix: ' , fInicioUnixMyTimezone);
}
ffinChange(newDate: any){
const fFinUnixMyTimezone = new Date(this.fechafin.year + '.' + this.fechafin.month + '.' + this.fechafin.day).getTime() / 1000;
//console.log ('ffinunix: ' , fFinUnixMyTimezone);
}
mostrarModalDetalle(tipo: string){
this.dialogService.addDialog(DetalleComponent,
{parent: this,
......
......@@ -7,12 +7,14 @@ import { FormsModule } from '@angular/forms';
import { DialogService } from "ng2-bootstrap-modal";
import { DetalleComponent } from './../../shared/modal/detalle.component'
import { BootstrapModalModule } from 'ng2-bootstrap-modal';
import { EstadoSistemaService } from '../../shared/services/estadosistema.service'
import { AuthenticationService } from '../../shared/services/authentication.service';
@NgModule({
imports: [ CommonModule, NgbModule, FormsModule, EstadoSistemaRoutingModule, BootstrapModalModule ],
entryComponents: [DetalleComponent],
declarations: [DetalleComponent, EstadoSistemaComponent],
providers: [DialogService],
providers: [DialogService, EstadoSistemaService, AuthenticationService],
exports: [EstadoSistemaComponent],
})
export class EstadoSistemaModule { }
......@@ -71,7 +71,6 @@ export class LoginComponent implements OnInit {
async fillSelect(){
await this.authenticationService.getAllSchools().subscribe(
data => {
console.log ('todos los liceos: ' , data)
this.schoolList = data;
//admin
......
......@@ -25,38 +25,20 @@ export interface DetalleModel {
<div class="modal-body" [ngStyle]="{ 'width': tipo !== 'task' ? '700px' : '900px' }" style="text-align: center !important;">
<div style="display: inline-block !important;">
<table class="table table-striped">
<div *ngIf="tipo=='share'">
<div *ngIf="tipo!='task'">
<thead>
<tr>
<th scope="col">Nombre</th>
<th scope="col">Tamaño (B)</th>
<th scope="col">Tipo</th>
<th scope="col">Fecha</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let file of modalContent">
<td>{{ file.nombre }}</td>
<td>{{ file.tamanio }}</td>
<td>{{ file.tipo }}</td>
<td>{{ file.fecha }}</td>
</tr>
</tbody>
</div>
<div *ngIf="tipo=='file'">
<thead>
<tr>
<th scope="col">Nombre</th>
<th scope="col">Tamaño (B)</th>
<th scope="col">Usuario</th>
<th scope="col">{{ tipo=='share' ? 'Tipo' : 'Usuario' }}</th>
<th scope="col">Fecha</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let file of modalContent">
<td>{{ file.nombre }}</td>
<td title='{{file.nombre}}'>{{ this.getFileNameFromRoute(file.nombre) }}</td>
<td>{{ file.tamanio }}</td>
<td>{{ file.usuario }}</td>
<td>{{ file.additionalData }}</td>
<td>{{ file.fecha }}</td>
</tr>
</tbody>
......@@ -105,6 +87,11 @@ export class DetalleComponent extends DialogComponent<DetalleModel, boolean> imp
super(dialogService);
}
getFileNameFromRoute(route: string){
if (!route)
return '';
return route.substring(route.lastIndexOf('/')+1);
}
toFixedDown(num, digits){
let re = new RegExp("(\\d+\\.\\d{" + digits + "})(\\d)"),
......
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { Http, Response, Headers, RequestOptions, URLSearchParams } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { SERVER } from '../config';
import { AuthenticationService } from './authentication.service';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Injectable()
export class EstadoSistemaService {
constructor(private http: Http, private router: Router, private authService: AuthenticationService) {}
getEstadoSistema(liceo: number, inicio: string, fin: string): Observable<any> {
let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization':'Bearer ' + this.authService.getToken() });
let params: URLSearchParams = new URLSearchParams();
params.set('fechaInicio', inicio);
params.set('fechaFin', fin);
params.set('liceoId', liceo + '');
let options = new RequestOptions({ headers: headers, search: params });
return this.http.get(SERVER+'/servicios/estadosistema', options)
.map((res: Response) => res.json())
.catch(this.handleError);
}
getTiempos(liceo: number, inicio: string, fin: string): Observable<any[]> {
let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization':'Bearer ' + this.authService.getToken() });
let params: URLSearchParams = new URLSearchParams();
params.set('fechaInicio', inicio);
params.set('fechaFin', fin);
params.set('liceoId', liceo + '');
let options = new RequestOptions({ headers: headers, search: params });
return this.http.get(SERVER+'/servicios/estadosistema/tiempos', options)
.map((res: Response) => res.json())
.catch(this.handleError);
}
private handleError (error: any) {
console.log ('this: ' , this)
if (!this){
window.location.replace(window.location.origin);
return;
}
if(error.status == 401) {
this.router.navigate(['/login']);
}
// In a real world app, we might use a remote logging infrastructure
// We'd also dig deeper into the error to get a better message
let errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.error(errMsg); // log to console instead
return Observable.throw(errMsg);
}
}
......@@ -23,7 +23,6 @@ export class HaskellService {
constructor(private http: Http, private router: Router, private authService: AuthenticationService) {}
getArchivos(cedula:string): Observable<Archivo[]> {
console.log ('pidiendo los archivos en kaskell service: ' , this.authService.getToken() )
let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization':'Bearer '+this.authService.getToken() });
let params: URLSearchParams = new URLSearchParams();
params.set('cedula', cedula);
......
package edu.proygrado.dto;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class EstadoSistemaCursoDTO implements Serializable {
private static final long serialVersionUID = 1L;
Long idLiceo;
Long idCurso;
Long cantidadAlumnos;
Long cantidadDocentes;
String nombre;
List<RegistroArchivoDTO> archivosCompartidos;
List<RegistroTareaDTO> tareasExistentes;
public EstadoSistemaCursoDTO() {
super();
}
public EstadoSistemaCursoDTO(Long idLiceo, Long idCurso, Long cantidadAlumnos, Long cantidadDocentes, String nombre) {
super();
this.idLiceo = idLiceo;
this.idCurso = idCurso;
this.cantidadAlumnos = cantidadAlumnos;
this.cantidadDocentes = cantidadDocentes;
this.nombre = nombre;
this.archivosCompartidos = new ArrayList<RegistroArchivoDTO>();
this.tareasExistentes = new ArrayList<RegistroTareaDTO>();
}
public EstadoSistemaCursoDTO(Long idLiceo, Long idCurso, Long cantidadAlumnos, Long cantidadDocentes, String nombre,
List<RegistroArchivoDTO> archivosCompartidos, List<RegistroTareaDTO> tareasExistentes) {
super();
this.idLiceo = idLiceo;
this.idCurso = idCurso;
this.cantidadAlumnos = cantidadAlumnos;
this.cantidadDocentes = cantidadDocentes;
this.nombre = nombre;
this.archivosCompartidos = archivosCompartidos;
this.tareasExistentes = tareasExistentes;
}
public Long getIdCurso() {
return idCurso;
}
public void setIdCurso(Long idCurso) {
this.idCurso = idCurso;
}
public Long getCantidadAlumnos() {
return cantidadAlumnos;
}
public void setCantidadAlumnos(Long cantidadAlumnos) {
this.cantidadAlumnos = cantidadAlumnos;
}
public Long getCantidadDocentes() {
return cantidadDocentes;
}
public void setCantidadDocentes(Long cantidadDocentes) {
this.cantidadDocentes = cantidadDocentes;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public List<RegistroArchivoDTO> getArchivosCompartidos() {
return archivosCompartidos;
}
public void setArchivosCompartidos(List<RegistroArchivoDTO> archivosCompartidos) {
this.archivosCompartidos = archivosCompartidos;
}
public List<RegistroTareaDTO> getTareasExistentes() {
return tareasExistentes;
}
public void setTareasExistentes(List<RegistroTareaDTO> tareasExistentes) {
this.tareasExistentes = tareasExistentes;
}
public Long getIdLiceo() {
return idLiceo;
}
public void setIdLiceo(Long idLiceo) {
this.idLiceo = idLiceo;
}
}