liceo zorrilla

parent be3b90a7
......@@ -1248,9 +1248,10 @@ var CalificarEntrega = (function (_super) {
CalificarEntrega.prototype.confirm = function () {
var _this = this;
if (this.nota >= 0 && this.nota <= 100) {
this.parentContext.calificando = true;
this.archivo.evaluacion.nota = this.nota;
this.archivo.evaluacion.descripcion = this.descripcion;
console.log('this.archivo: ', this.archivo);
this.parentContext.calificando = true;
this.parentContext.haskellService.calificarArchivo(this.archivo)
.subscribe(function (archivo) {
_this.parentContext.calificando = false;
......@@ -2216,11 +2217,11 @@ var HaskellService = (function () {
.map(function (res) { return res.json(); })
.catch(this.handleError);
};
HaskellService.prototype.entregarArchivoParaEvaluacion = function (assignmentId, archivo) {
HaskellService.prototype.entregarArchivoParaEvaluacion = function (assignmentId, nombreTarea, cursoid, grupal, grupoId, archivo) {
var headers = new __WEBPACK_IMPORTED_MODULE_1__angular_http__["l" /* Headers */]({ 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + this.authService.getToken() });
var options = new __WEBPACK_IMPORTED_MODULE_1__angular_http__["g" /* RequestOptions */]({ headers: headers });
this.printEnConsola('--------------------', '\n', 'HaskellService.entregarArchivoMoodle', '\n', 'assignmentId: ', assignmentId, '\n', 'archivo: ', archivo, '\n', 'POST ', __WEBPACK_IMPORTED_MODULE_3__config__["a" /* SERVER */] + '/servicios/evaluaciones/entregaarchivo/' + assignmentId, '\n', '___________________________');
return this.http.post(__WEBPACK_IMPORTED_MODULE_3__config__["a" /* SERVER */] + '/servicios/evaluaciones/entregaarchivo/' + assignmentId, archivo, options)
this.printEnConsola('--------------------', '\n', 'HaskellService.entregarArchivoMoodle', '\n', 'assignmentId: ', assignmentId, '\n', 'nombreTarea: ', nombreTarea, '\n', 'cursoid: ', cursoid, '\n', 'grupal: ', grupal, '\n', 'grupoId: ', grupoId, '\n', 'archivo: ', archivo, '\n', 'POST ', __WEBPACK_IMPORTED_MODULE_3__config__["a" /* SERVER */] + '/servicios/evaluaciones/entregaarchivo/' + assignmentId + '/' + nombreTarea + '/' + cursoid + '/' + grupal + '/' + grupoId, '\n', '___________________________');
return this.http.post(__WEBPACK_IMPORTED_MODULE_3__config__["a" /* SERVER */] + '/servicios/evaluaciones/entregaarchivo/' + assignmentId + '/' + nombreTarea + '/' + cursoid + '/' + grupal + '/' + grupoId, archivo, options)
.map(function (res) { return res.json(); })
.catch(this.handleError);
};
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.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -14,7 +14,8 @@
<span *ngIf="compartiendo">Compartiendo archivo</span>
<span *ngIf="creandoArchivo">Creando archivo</span>
<span *ngIf="creandoCarpeta">Creando carpeta</span>
<img *ngIf="compartiendo || creandoArchivo || creandoCarpeta" width=40 src="assets/img/btnloading.gif" />
<span *ngIf="realizandoEntrega">Realizando entrega</span>
<img *ngIf="compartiendo || creandoArchivo || creandoCarpeta || realizandoEntrega" width=40 src="assets/img/btnloading.gif" />
</div>
</div>
<div class="row" style="margin-top: 20px">
......
......@@ -63,7 +63,8 @@ export class ArchivosComponent {
coursesGroupsAndMembers;
configCodeMirror = JSON.parse(localStorage.getItem('codeMirrorConfig')) ;
archivosCurso: Archivo[] = [];
realizandoEntrega: boolean = false;
get vistaDirectorioActualMisArchivos(){
if (this.soloMatefun)
return this.directorioActual.archivos.filter(arch => arch.nombre.toLowerCase().endsWith('.mf') );
......
......@@ -97,7 +97,6 @@
<div class="col-7">
<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>
</select>
</div>
......@@ -120,13 +119,13 @@
<td class="borderleft">Archivos compartidos (período)
&nbsp;&nbsp;<i triggers="mouseenter:mouseleave" class="fa fa-info-circle fa-4 helpinfo" placement="top" ngbPopover="{{help.textSharedFiles}}" popoverTitle="{{help.titleSharedFiles}}"></i>
</td>
<td class="borderright">{{cursoSeleccionado.archivosCompartidos.length}}&nbsp;&nbsp;<p class="link" (click)="mostrarModalDetalle('share');">detalle</p> </td>
<td class="borderright">{{cursoSeleccionado.archivosCompartidos.length}}&nbsp;&nbsp;<p *ngIf="cursoSeleccionado.archivosCompartidos.length>0" class="link" (click)="mostrarModalDetalle('share');">detalle</p> </td>
</tr>
<tr *ngIf="seleccionaCurso" class="gray">
<td class="borderleft borderbottom">Tareas/entregas
&nbsp;&nbsp;<i triggers="mouseenter:mouseleave" class="fa fa-info-circle fa-4 helpinfo" placement="top" ngbPopover="{{help.textTask}}" popoverTitle="{{help.titleTask}}"></i>
</td>
<td class="borderright borderbottom">{{cursoSeleccionado.tareasExistentes.length}}&nbsp;&nbsp;<p class="link" (click)="mostrarModalDetalle('task');">detalle</p> </td>
<td class="borderright borderbottom">{{cursoSeleccionado.tareasExistentes.length}}&nbsp;&nbsp;<p *ngIf="cursoSeleccionado.tareasExistentes.length>0" class="link" (click)="mostrarModalDetalle('task');">detalle</p> </td>
</tr>
</tbody>
</table>
......
......@@ -60,9 +60,10 @@ export class CalificarEntrega extends DialogComponent<ConfirmModel, boolean> imp
confirm() {
if(this.nota>=0 && this.nota<=100) {
this.parentContext.calificando = true;
this.archivo.evaluacion.nota = this.nota;
this.archivo.evaluacion.descripcion = this.descripcion;
console.log ('this.archivo: ' , this.archivo);
this.parentContext.calificando = true;
this.parentContext.haskellService.calificarArchivo(this.archivo)
.subscribe(
archivo => {
......
......@@ -93,6 +93,7 @@ export class ConfirmEntregaComponent extends DialogComponent<ConfirmModel, boole
cursos : MoodleCourseDTO[];
allAssignments: Assignment[];
shownAssignments: Assignment[];
assSeleccionado: Assignment;
idAssignmentSeleccionado: number;
archivo: Archivo;
habilitado: boolean = false;
......@@ -162,11 +163,11 @@ export class ConfirmEntregaComponent extends DialogComponent<ConfirmModel, boole
assignmentChange(ass){
this.reset();
const assSeleccionado: Assignment = this.shownAssignments.find (a => a.id===(+this.idAssignmentSeleccionado));
const fechaFin: Date = new Date(assSeleccionado.duedate * 1000);
this.assSeleccionado = this.shownAssignments.find (a => a.id===(+this.idAssignmentSeleccionado));
const fechaFin: Date = new Date(this.assSeleccionado.duedate * 1000);
const hoy: Date = new Date();
const fechaInicio : Date = new Date(assSeleccionado.allowsubmissionsfromdate * 1000);
const fechaInicio : Date = new Date(this.assSeleccionado.allowsubmissionsfromdate * 1000);
if (hoy.getTime() < fechaInicio.getTime() ) {
this.errormsg = 'Aun no puedes realizar la entrega, se habilita: ' + this.timeConverter(fechaInicio);
this.habilitado = false;
......@@ -174,7 +175,7 @@ export class ConfirmEntregaComponent extends DialogComponent<ConfirmModel, boole
this.errormsg = 'No puedes realizar la entrega, el periodo venció en: ' + this.timeConverter(fechaInicio);
this.habilitado = false;
} else {
if (assSeleccionado.teamsubmission==1) {
if (this.assSeleccionado.teamsubmission==1) {
this.habilitado = false;
this.cargando = true;
this.parent.haskellService.getSubmissionStatus(this.idAssignmentSeleccionado, null, this.miGrupo.grupoId).subscribe(
......@@ -191,7 +192,7 @@ export class ConfirmEntregaComponent extends DialogComponent<ConfirmModel, boole
else
this.yellowMsg = 'NOTA: La entrega es grupal.'
this.deadline = assSeleccionado && assSeleccionado.duedate ? this.timeConverter(fechaFin) : '';
this.deadline = this.assSeleccionado && this.assSeleccionado.duedate ? this.timeConverter(fechaFin) : '';
}
},
error => {
......@@ -212,7 +213,7 @@ export class ConfirmEntregaComponent extends DialogComponent<ConfirmModel, boole
this.errormsg = 'La entrega se encuentra bloqueada';
}else{
this.yellowMsg = 'NOTA: La entrega es individual.';
this.deadline = assSeleccionado && assSeleccionado.duedate ? this.timeConverter(fechaFin) : '';
this.deadline = this.assSeleccionado && this.assSeleccionado.duedate ? this.timeConverter(fechaFin) : '';
}
},
error => {
......@@ -239,15 +240,21 @@ export class ConfirmEntregaComponent extends DialogComponent<ConfirmModel, boole
confirm() {
if (!this.habilitado)
return;
this.parent.haskellService.entregarArchivoParaEvaluacion(this.idAssignmentSeleccionado, this.archivo ).subscribe(
const nombreTarea = this.assSeleccionado.name;
const cursoid = this.assSeleccionado.course;
const grupal = this.assSeleccionado.teamsubmission==1;
const grupoId = this.miGrupo ? this.miGrupo.grupoId : 0;
this.parent.realizandoEntrega = true;
this.parent.haskellService.entregarArchivoParaEvaluacion(this.idAssignmentSeleccionado, nombreTarea, cursoid, grupal, grupoId, this.archivo ).subscribe(
data => {
console.log ('data: ' , data)
this.parent.notifService.success("Archivo entregado con exito.");
this.parent.realizandoEntrega = false;
this.parent.notifService.success("Archivo entregado con exito.");
},
error => {
console.log ('error: ' , error)
this.parent.realizandoEntrega = false;
this.parent.notifService.error(error);
});
this.result = true;
this.close();
}
......
......@@ -208,17 +208,21 @@ export class HaskellService {
}
entregarArchivoParaEvaluacion(assignmentId: number, archivo: Archivo): Observable<SimplePostResultDTO> {
entregarArchivoParaEvaluacion(assignmentId: number, nombreTarea: string, cursoid: number, grupal:boolean, grupoId: boolean, archivo: Archivo): Observable<SimplePostResultDTO> {
let headers = new Headers({ 'Content-Type': 'application/json', 'Authorization':'Bearer '+this.authService.getToken() });
let options = new RequestOptions({ headers: headers });
this.printEnConsola('--------------------', '\n',
'HaskellService.entregarArchivoMoodle', '\n',
'assignmentId: ', assignmentId, '\n',
'nombreTarea: ', nombreTarea, '\n',
'cursoid: ', cursoid, '\n',
'grupal: ', grupal, '\n',
'grupoId: ', grupoId, '\n',
'archivo: ', archivo, '\n',
'POST ', SERVER+'/servicios/evaluaciones/entregaarchivo/' + assignmentId , '\n',
'POST ', SERVER+'/servicios/evaluaciones/entregaarchivo/' + assignmentId + '/' + nombreTarea + '/' + cursoid + '/' + grupal + '/' + grupoId, '\n',
'___________________________')
return this.http.post(SERVER + '/servicios/evaluaciones/entregaarchivo/' + assignmentId, archivo, options)
return this.http.post(SERVER + '/servicios/evaluaciones/entregaarchivo/' + assignmentId + '/' + nombreTarea + '/' + cursoid + '/' + grupal + '/' + grupoId, archivo, options)
.map((res: Response) => res.json())
.catch(this.handleError);
}
......
......@@ -5,6 +5,7 @@ import java.util.Date;
public class EvaluacionDTO {
long evaluacionId;
Long cursoid;
private String cedulaDocente;
private Date fecha;
private Long assignmentid;
......@@ -24,10 +25,11 @@ public class EvaluacionDTO {
public EvaluacionDTO(){}
public EvaluacionDTO(Long assignmentid, Long userid, String nota,
public EvaluacionDTO(Long assignmentid, Long cursoid, Long userid, String nota,
Long attemptnumber, Boolean addattempt, String workflowstate, String descripcion, boolean corregido, Integer idDocenteQueCorrigio, Integer fechaCorreccion, String assignmentName, boolean esGrupal) {
super();
this.evaluacionId = -1;
this.cursoid = cursoid;
this.cedulaDocente = "";
this.fecha = new Date();
this.assignmentid = assignmentid;
......@@ -164,4 +166,12 @@ public class EvaluacionDTO {
this.esGrupal = esGrupal;
}
public Long getCursoid() {
return cursoid;
}
public void setCursoid(Long cursoid) {
this.cursoid = cursoid;
}
}
......@@ -8,23 +8,29 @@ public class RegistroTareaDTO implements Serializable {
private static final long serialVersionUID = 1L;
String nombre;
String tipo;
Long archivosEntregados;
Long archivosCorregidos;
Long archivosTotales;
Long liceoid;
Long cursoid;
String tipo;
String fecha;
public RegistroTareaDTO() {
super();
}
public void setFecha(GregorianCalendar fecha) {
this.fecha = fecha.get(Calendar.YEAR) + "-" + (fecha.get(Calendar.MONTH)+1) + "-" + fecha.get(Calendar.DATE);
}
public RegistroTareaDTO(String nombre, Long archivosEntregados, Long archivosCorregidos, Long archivosTotales,
String tipo, Long liceoid, Long cursoid, GregorianCalendar fecha) {
super();
this.nombre = nombre;
this.liceoid = liceoid;
this.fecha = fecha.get(Calendar.YEAR) + "-" + (fecha.get(Calendar.MONTH)+1) + "-" + fecha.get(Calendar.DATE);
setFecha(fecha);
this.cursoid = cursoid;
this.archivosEntregados = archivosEntregados;
this.archivosCorregidos = archivosCorregidos;
......@@ -79,6 +85,5 @@ public class RegistroTareaDTO implements Serializable {
public void setFecha(String fecha) {
this.fecha = fecha;
}
}
......@@ -21,7 +21,7 @@ import edu.proygrado.utils.Utils;
public class CourseAssignmentsRetrievalHelper {
public static void getSubmitionsInfo(List<Pair<JsonObject, Object>> allData, InvitadoEJB invitadoEJB, String matefunToken) throws Exception {
public static void getSubmitionsInfo(List<Pair<JsonObject, Object>> allData, InvitadoEJB invitadoEJB, String matefunToken, Long courseId) throws Exception {
boolean esGrupal = allData.get(0).getSecond() instanceof GrupoDTO;
......@@ -103,7 +103,7 @@ public class CourseAssignmentsRetrievalHelper {
false, //directorio
corregido ? EstadoArchivo.Corregido.toString() : EstadoArchivo.Entregado.toString(), //estado
file.getString("fileurl"), //moodleFilePath
new EvaluacionDTO(new Long(assignment.getInt("id")), userId, nota, -1l, false, corregido ? EstadoArchivo.Corregido.toString() : EstadoArchivo.Entregado.toString(), descripcion, corregido, idDocenteQueCorrigio, fechaCorreccion, assignment.getString("name"), esGrupal),
new EvaluacionDTO(new Long(assignment.getInt("id")), courseId, userId, nota, -1l, false, corregido ? EstadoArchivo.Corregido.toString() : EstadoArchivo.Entregado.toString(), descripcion, corregido, idDocenteQueCorrigio, fechaCorreccion, assignment.getString("name"), esGrupal),
TipoArchivo.ENTREGA, //tipo
false, //puedeCompartir
"" //directorioMatefun
......
package edu.proygrado.ejb;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.Semaphore;
import javax.json.JsonArray;
import javax.json.JsonObject;
import edu.proygrado.dto.AlumnoDTO;
import edu.proygrado.dto.ArchivoDTO;
import edu.proygrado.dto.EvaluacionDTO;
import edu.proygrado.dto.GrupoDTO;
import edu.proygrado.dto.TipoArchivo;
import edu.proygrado.modelo.EstadoArchivo;
import edu.proygrado.utils.MoodleFunctions;
import java.util.concurrent.atomic.AtomicInteger;
import edu.proygrado.utils.MoodleWS;
import edu.proygrado.utils.Pair;
import edu.proygrado.utils.Utils;
public class CourseProcessorRunnable {
private InvitadoEJB invitadoEJB;
private String matefunToken;
private Map<Integer, GrupoDTO> grupos;
private List<AlumnoDTO> alumnos;
private List<JsonObject> allAssignments;
private boolean esGrupal;
@SuppressWarnings("rawtypes")
public List result;
public Exception errorDetail = null;
public CourseProcessorRunnable (InvitadoEJB invitadoEJB, String matefunToken, GroupRunnable gr, List<JsonObject> allAssignments) {
this.invitadoEJB = invitadoEJB;
this.matefunToken = matefunToken;
this.grupos = gr.result;
this.allAssignments = allAssignments;
this.esGrupal = true;
}
public CourseProcessorRunnable (InvitadoEJB invitadoEJB, String matefunToken, List<AlumnoDTO> alumnos, List<JsonObject> allAssignments) {
this.invitadoEJB = invitadoEJB;
this.matefunToken = matefunToken;
this.alumnos = alumnos;
this.allAssignments = allAssignments;
this.esGrupal = false;
}
@SuppressWarnings({ "serial", "unchecked" })
public void run() {
this.errorDetail = null;
try {
List<Pair<JsonObject, Object>> allData = new ArrayList<Pair<JsonObject, Object>>();
if (this.esGrupal) {
for (GrupoDTO grupo : grupos.values()) {
for (JsonObject assignment : allAssignments) {
allData.add( new Pair<JsonObject, Object>(assignment, grupo) );
}
}
}else {
for (AlumnoDTO alumno : this.alumnos) {
for (JsonObject assignment : allAssignments) {
allData.add( new Pair<JsonObject, Object>(assignment, alumno ) );
}
}
}
System.out.println((this.esGrupal ? "GRUPAL" : "INDIVIDUAL") + ": Inicio paralell stream");
AtomicInteger countExp = new AtomicInteger(0);
allData.parallelStream().forEach( pair -> {
JsonObject assignment = pair.getFirst();
//usado en caso grupal
GrupoDTO grupo = this.esGrupal ? (GrupoDTO)pair.getSecond() : null;
//usado en caso no grupal
AlumnoDTO alumno = this.esGrupal ? ((GrupoDTO)pair.getSecond()).getAlumnos().get(0) : ((AlumnoDTO)pair.getSecond());
Map<String, Object> params = new HashMap<String, Object>() {{
put( "assignid", assignment.getInt("id"));
put( "userid", alumno.getMoodleUserId());
put( "groupid", 0);
}};
JsonObject response = null;
try {
response = MoodleWS.GET(invitadoEJB, matefunToken, MoodleFunctions.mod_assign_get_submission_status, params, false);
//System.out.println(String.format((this.esGrupal ? "GRUPAL" : "INDIVIDUAL") + ": [assign:%d] Response: %s", assignment.getInt("id"), response));
if (!response.getBoolean(MoodleWS.IS_OK)) {
this.errorDetail = new Exception("Error en mod_assign_get_assignments: " + response.toString());
this.result = null;
}else {
Integer idDocenteQueCorrigio = null;
String nota = null;
Integer fechaCorreccion = null;
String descripcion = null;
JsonObject result = response.getJsonObject("result");
if (result.containsKey("lastattempt")) {
JsonObject lastattempt = result.getJsonObject("lastattempt");
boolean corregido = lastattempt.containsKey("graded") && lastattempt.getBoolean("graded");
if (corregido) {
if (result.containsKey("feedback")) {
JsonObject feedback = result.getJsonObject("feedback");
if (feedback.containsKey("grade")) {
JsonObject grade = feedback.getJsonObject("grade");
idDocenteQueCorrigio = grade.getInt("grader");
nota = grade.getString("grade");
fechaCorreccion = grade.getInt("timemodified");
}
if (feedback.containsKey("plugins")) {
JsonObject commentsObject = Utils.filterByParam(feedback.getJsonArray("plugins"), "type", "comments");
if (commentsObject!=null && commentsObject.containsKey("editorfields")) {
JsonObject submissionCommentsObject = Utils.filterByParam(commentsObject.getJsonArray("editorfields"), "name", "comments");
descripcion = submissionCommentsObject!=null ? submissionCommentsObject.getString("text") : null;
}
}
}
}
Long userId = lastattempt.containsKey("submission") && lastattempt.getJsonObject("submission").containsKey("userid") ?
new Long( lastattempt.getJsonObject("submission").getInt("userid")) : null;
String submitionToUseStr = this.esGrupal ? "teamsubmission" : "submission";
if (lastattempt.containsKey(submitionToUseStr)) {
JsonObject submition = lastattempt.getJsonObject(submitionToUseStr);
if (submition.containsKey("plugins")) {
JsonArray plugins = submition.getJsonArray("plugins");
JsonArray fileareas = Utils.filterByParam(plugins, "type", "file").getJsonArray("fileareas");
if (fileareas!=null) {
JsonArray allFilesSubmitted = Utils.filterByParam(fileareas, "area", "submission_files").getJsonArray("files");
for (short f=0; f<allFilesSubmitted.size(); f++) {
JsonObject file = allFilesSubmitted.getJsonObject(f);
ArchivoDTO nuevoArchivo = new ArchivoDTO(
(new Random()).nextLong(), //id
file.getString("filename"), //nombre
new Date(file.getInt("timemodified")), //fechaCreacion
null, //contenido
invitadoEJB.getUsuario(matefunToken).getCedula(), //cedulaCreador
false, //editable
false, //eliminado
-1, //padreId
-1l, //archivoOrigenId
false, //directorio
corregido ? EstadoArchivo.Corregido.toString() : EstadoArchivo.Entregado.toString(), //estado
file.getString("fileurl"), //moodleFilePath
new EvaluacionDTO(new Long(assignment.getInt("id")), userId, nota, -1l, false, corregido ? EstadoArchivo.Corregido.toString() : EstadoArchivo.Entregado.toString(), descripcion, corregido, idDocenteQueCorrigio, fechaCorreccion, assignment.getString("name"), this.esGrupal),
TipoArchivo.ENTREGA, //tipo
false, //puedeCompartir
"" //directorioMatefun
);
if (this.esGrupal)
grupo.getArchivos().add(nuevoArchivo);
else
alumno.getArchivos().add(nuevoArchivo);
}
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
if (countExp.addAndGet(1)==1) {
this.errorDetail = e;
this.result = null;
}
}
});
System.out.println((this.esGrupal ? "GRUPAL" : "INDIVIDUAL") + ": Fin paralell stream");
if (this.errorDetail==null) {
// Si no hubo error en el paralell foreach ...
this.result = new ArrayList<Object>();
result.addAll( this.esGrupal ? grupos.values() : this.alumnos);
}
}catch (Exception e) {
this.result = null;
this.errorDetail = e;
}finally {
}
}
}
......@@ -178,7 +178,7 @@ public class EvaluacionesEJB {
for (JsonObject assignment : ar.result.get(courseId))
allData.add( new Pair<JsonObject, Object>(assignment, grupo));
CourseAssignmentsRetrievalHelper.getSubmitionsInfo(allData, invitadoEJB, matefunToken);
CourseAssignmentsRetrievalHelper.getSubmitionsInfo(allData, invitadoEJB, matefunToken, courseId);
ret.addAll(gr.result.values());
System.out.println("GRUPAL: Fin metodo OK");
......@@ -229,7 +229,7 @@ public class EvaluacionesEJB {
for (JsonObject assignment : ar.result.get(courseId))
allData.add(new Pair<JsonObject, Object>(assignment, alumno ));
CourseAssignmentsRetrievalHelper.getSubmitionsInfo(allData, invitadoEJB, matefunToken);
CourseAssignmentsRetrievalHelper.getSubmitionsInfo(allData, invitadoEJB, matefunToken, courseId);
return listaAlumnos;
}
......
......@@ -142,7 +142,6 @@ public class LoginEJB {
String tokenAuth = generateToken();
updateSession(tokenAuth, admin);
invitadoEJB.setUsuarioMatefunAdmin(tokenAuth, admin);
tiempoAccesoEJB.saveRegistroLogin(null, 0l, admin.getCedula());
return new UsuarioDTO(-1l, tokenAuth, null, admin, new ArrayList<MoodleCourseDTO>());
}else {
throw new MatefunException("Password incorrecto para administrador de Matefun.");
......@@ -190,7 +189,10 @@ public class LoginEJB {
//VERIFICA SI LAS CREDENCIALES SON CORRECTAS
List<StringPair> allMoodleTokens = MoodleHelper.getAllMoodleTokens(cedula, password, liceoBD, tiempoAccesoEJB, -1l);
for (StringPair tokenPair : allMoodleTokens) {
System.out.println("extrajo pair -> key: " + tokenPair.getKey() + ", value: " + tokenPair.getValue());
}
String tokenAuth = generateToken();
GetUsuariosRunnable usuariosRunnable = new GetUsuariosRunnable( moodleApiEndpoint,
new StringPair("username", liceoBD.getMoodleapiusername()),
......@@ -309,6 +311,7 @@ public class LoginEJB {
}
private MoodleUserInfoDTO getUserInfoMoodle(StringPair tokenPair, String moodleApiEndpoint) throws Exception {
System.out.println("usando pair -> key: " + tokenPair.getKey() + ", value: " + tokenPair.getValue());
JsonObject response = MoodleWS.GET(tokenPair, moodleApiEndpoint, MoodleFunctions.core_webservice_get_site_info, new HashMap<String, Object>());
if (!response.getBoolean(MoodleWS.IS_OK)) {
throw new Exception("Error en core_webservice_get_site_info: " + response.toString());
......
......@@ -25,10 +25,7 @@ public class RegistroLogin implements Serializable{
@GeneratedValue(strategy=GenerationType.IDENTITY)
long id;
@JoinColumn(nullable = true)
@OneToOne(cascade = CascadeType.DETACH)
Liceo liceo;
Long liceoId;
Long moodleUserId;
String moodleUserName;
......@@ -37,16 +34,16 @@ public class RegistroLogin implements Serializable{
GregorianCalendar fecha;
public RegistroLoginDTO toDto() {
return new RegistroLoginDTO( liceo!=null ? liceo.getLiceoPK().getLiceoId() : null, moodleUserId, moodleUserName, fecha);
return new RegistroLoginDTO( liceoId!=null ? liceoId : null, moodleUserId, moodleUserName, fecha);
}
public RegistroLogin() {
super();
}
public RegistroLogin(Liceo liceo, Long moodleUserId, String moodleUserName, GregorianCalendar fecha) {
public RegistroLogin(Long liceoId, Long moodleUserId, String moodleUserName, GregorianCalendar fecha) {
super();
this.liceo = liceo;
this.liceoId = liceoId;
this.moodleUserId = moodleUserId;
this.moodleUserName = moodleUserName;
this.fecha = fecha;
......@@ -60,12 +57,12 @@ public class RegistroLogin implements Serializable{
this.id = id;
}
public Liceo getLiceo() {
return liceo;
public Long getLiceo() {
return liceoId;
}
public void setLiceo(Liceo liceo) {
this.liceo = liceo;
public void setLiceo(Long liceoId) {
this.liceoId = liceoId;
}
public Long getMoodleUserId() {
......@@ -86,7 +83,7 @@ public class RegistroLogin implements Serializable{
@Override
public String toString() {
return "RegistroLogin [id=" + id + ", liceo=" + liceo + ", moodleUserId=" + moodleUserId + ", moodleUserName=" + moodleUserName + ", fecha=" + (fecha.get(Calendar.YEAR) + "-" + fecha.get(Calendar.MONTH) + "-" + fecha.get(Calendar.DATE)) + "]";
return "RegistroLogin [id=" + id + ", liceo=" + liceoId + ", moodleUserId=" + moodleUserId + ", moodleUserName=" + moodleUserName + ", fecha=" + (fecha.get(Calendar.YEAR) + "-" + fecha.get(Calendar.MONTH) + "-" + fecha.get(Calendar.DATE)) + "]";
}
public String getMoodleUserName() {
......@@ -102,7 +99,7 @@ public class RegistroLogin implements Serializable{
final int prime = 31;
int result = 1;
result = prime * result + ((fecha == null) ? 0 : fecha.hashCode());
result = prime * result + ((liceo == null) ? 0 : liceo.hashCode());
result = prime * result + ((liceoId == null) ? 0 : liceoId.hashCode());
result = prime * result + ((moodleUserId == null) ? 0 : moodleUserId.hashCode());
result = prime * result + ((moodleUserName == null) ? 0 : moodleUserName.hashCode());
return result;
......@@ -127,11 +124,11 @@ public class RegistroLogin implements Serializable{
} else if (!fecha.equals(other.fecha)) {
return false;
}
if (liceo == null) {
if (other.liceo != null) {
if (liceoId == null) {
if (other.liceoId != null) {
return false;
}
} else if (!liceo.equals(other.liceo)) {
} else if (!liceoId.equals(other.liceoId)) {
return false;
}
if (moodleUserId == null) {
......