Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/EjercitarServer
diff options
context:
space:
mode:
authorcecigg <caggsld@gmail.com>2013-12-14 14:25:13 (GMT)
committer cecigg <caggsld@gmail.com>2013-12-14 14:25:13 (GMT)
commit3b14ac9a6dadda4fbafd1b74d2fbed80140235b7 (patch)
tree5fa5c8457e2f26fb2a0ece02bd512f9c90df1bad /EjercitarServer
parent68a74e6dbd2a356ecc7e8bc5fc9c43dbe77d253e (diff)
se agrego contador de ejercicios resueltos y se arreglo el css de login y asignatura.
Diffstat (limited to 'EjercitarServer')
-rw-r--r--EjercitarServer/ejbModule/beans/AdministracionBean.java100
-rw-r--r--EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java5
-rw-r--r--EjercitarServer/ejbModule/beans/EjercitarWSBean.java210
-rw-r--r--EjercitarServer/ejbModule/beans/EjercitarWSRemote.java10
4 files changed, 184 insertions, 141 deletions
diff --git a/EjercitarServer/ejbModule/beans/AdministracionBean.java b/EjercitarServer/ejbModule/beans/AdministracionBean.java
index 0864b15..8368297 100644
--- a/EjercitarServer/ejbModule/beans/AdministracionBean.java
+++ b/EjercitarServer/ejbModule/beans/AdministracionBean.java
@@ -2,6 +2,7 @@ package beans;
import java.util.ArrayList;
import java.util.Date;
+import java.util.Iterator;
import java.util.List;
import javax.ejb.LocalBean;
@@ -18,6 +19,7 @@ import model.Concepto;
import model.Curso;
import model.Ejercicio;
import model.Profesor;
+import model.Respuesta;
import model.Sesion;
import model.Tarea;
import model.Tema;
@@ -124,8 +126,9 @@ public class AdministracionBean implements AdministracionBeanRemote{
}
public void agregarTema(Tema tema) {
-
em.persist(tema);
+ System.out.print("asog " + tema.getDescripcion());
+
agregarTemaRed(tema);
}
@@ -243,14 +246,15 @@ public class AdministracionBean implements AdministracionBeanRemote{
public void agregarProfesor(Profesor profesor) {
em.persist(profesor);
}
- public void agregarAsignatura(Asignatura asignatura) {
+
+ /* public void agregarAsignatura(Asignatura asignatura) {
em.persist(asignatura);
Network net = new Network();
String nombreRed = "red_asignatura_" + asignatura.getIdAsignatura() + ".xdsl";
net.writeFile("redes/" + nombreRed);
- }
+ }*/
public void agregarTarea(Tarea tarea, ArrayList<Concepto> conceptoList) {
@@ -532,8 +536,7 @@ public class AdministracionBean implements AdministracionBeanRemote{
}
@Override
- public void agregarAsignatura(Asignatura asignatura, boolean usaPlantilla,
- String plantilla) {
+ public void agregarAsignatura(Asignatura asignatura) {
em.persist(asignatura);
Network net = new Network();
String titulo = sp.convertirEspacioToGuion(asignatura.getNombre());
@@ -674,7 +677,92 @@ public class AdministracionBean implements AdministracionBeanRemote{
}
-
+ public void copiarRedAsignatura(Integer idAsignaturaPlanitilla, Asignatura asignatura){
+
+
+ Asignatura asignaturaPlantilla = em.find( Asignatura.class, idAsignaturaPlanitilla);
+ Profesor profesor = asignatura.getProfesor();
+ //Asignatura asignatura = new Asignatura();
+ Concepto concepto;
+ Tema tema;
+ Ejercicio ejercicio;
+ Respuesta respuesta;
+ ArrayList <Respuesta> respuestaList = new ArrayList();
+
+ //Cargar los temas a una asignatura
+ for(Tema temaPlantilla: asignaturaPlantilla.getTemaList()){
+
+
+ tema = new Tema();
+ tema.setNombre(temaPlantilla.getNombre());
+ tema.setDescripcion(temaPlantilla.getDescripcion());
+ tema.setPeso(temaPlantilla.getPeso());
+ tema.setProfesor(profesor);
+ tema.setAsignatura(asignatura);
+
+ System.out.print("asignaturaaaaa " + asignatura.getIdAsignatura());
+ //persiste el tema y agrega a la red
+ agregarTema(tema);
+
+ System.out.println("tema: " + temaPlantilla.getNombre());
+ //crear conceptos
+ for(Concepto conceptoPlantilla : tema.getConceptoList()){
+ System.out.println("concepto " + conceptoPlantilla.getNombre());
+ concepto = new Concepto();
+ concepto.setAdivinanza(conceptoPlantilla.getAdivinanza());
+ concepto.setApriori(conceptoPlantilla.getApriori());
+ concepto.setDescripcion(conceptoPlantilla.getDescripcion());
+ concepto.setDescuido(conceptoPlantilla.getDescuido());
+ concepto.setNombre(conceptoPlantilla.getNombre());
+ concepto.setPeso(conceptoPlantilla.getPeso());
+ concepto.setProfesor(profesor);
+ concepto.setTema(tema);
+
+ //persistir el concepto y agregar a la red
+ agregarConcepto(concepto);
+
+
+ //crear ejercicios
+
+ for(Ejercicio ejercicioPlantilla : concepto.getEjercicioList()){
+
+ ejercicio = new Ejercicio();
+ ejercicio.setAdivinanza(ejercicioPlantilla.getAdivinanza());
+ ejercicio.setEnunciado(ejercicioPlantilla.getEnunciado());
+ ejercicio.setImagen(ejercicioPlantilla.getImagen());
+ ejercicio.setNivelDificultad(ejercicioPlantilla.getNivelDificultad());
+ ejercicio.setProfesor(profesor);
+ ejercicio.setRespuesta(ejercicioPlantilla.getRespuesta());
+
+
+ //crear Respuestas para ejercicios
+ for(Respuesta respuestaPlantilla : ejercicio.getRespuestaList()){
+
+ respuesta = new Respuesta();
+ respuesta.setDescripcion(respuestaPlantilla.getDescripcion());
+ respuestaList.add(respuesta);
+
+ }
+
+ ejercicio.setRespuestaList(respuestaList);
+
+ //agregar ejercicio a la red
+
+ agregarEjercicio(ejercicioPlantilla, asignatura.getIdAsignatura());
+ ;
+ }
+
+
+
+
+ }
+
+
+
+
+ }
+
+ }
diff --git a/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java b/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java
index 665e073..8071ee7 100644
--- a/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java
+++ b/EjercitarServer/ejbModule/beans/AdministracionBeanRemote.java
@@ -22,7 +22,7 @@ public interface AdministracionBeanRemote {
public void agregarTema(Tema tema);
public void agregarProfesor(Profesor profesor);
public Profesor logIn(String usuario, String password);
- public void agregarAsignatura(Asignatura asignatura, boolean usaPlantilla, String plantilla);
+ public void agregarAsignatura(Asignatura asignatura);
public void editarTema(Tema tema);
public void editarConcepto(Concepto concepto, String asignatura);
public void eliminarConcepto(int idConcepto);
@@ -37,6 +37,9 @@ public interface AdministracionBeanRemote {
String getValorNodoRed(String nombre, int idAsignatura, int idAlumno);
public void editarAsignatura(Asignatura asignatura );
+
+ public void copiarRedAsignatura(Integer idAsignaturaPlanitilla, Asignatura asignatura);
+
diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
index adbc968..1ddec16 100644
--- a/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
+++ b/EjercitarServer/ejbModule/beans/EjercitarWSBean.java
@@ -37,8 +37,24 @@ import model.Tema;
@Remote(EjercitarWSRemote.class)
@Stateless
public class EjercitarWSBean implements EjercitarWSRemote {
+ @PersistenceContext
+
+ EntityManager em;
+
+ /**
+
+ * Default constructor.
+
+ */
+
+ public EjercitarWSBean() {
+
+
+
+ }
+
@WebMethod
public String getDatosAlumno(int idAlumno) {
// TODO Auto-generated method stub
@@ -61,14 +77,18 @@ public class EjercitarWSBean implements EjercitarWSRemote {
System.out.println("cant tareas:" + listaTareas.size());
- Query query = em.createQuery("SELECT DISTINCT t from Tarea t join t.sesionList s where s.alumno = :alumno and s.estadoTerminado = false and s.tarea in (:tareas)");
+ Query query = em.createQuery("SELECT DISTINCT t from Tarea t left outer join t.sesionList s where s.alumno = :alumno and s.estadoTerminado = false and s.tarea in (:tareas)");
query.setParameter("alumno", alumno);
query.setParameter("tareas", listaTareas);
List<Tarea> listaTareasDisponibles = query.getResultList();
//return (List<Tarea>) listaTareas;
-
+ System.out.println(listaTareasDisponibles.size());
+ if(listaTareasDisponibles.size() == 0){
+
+ listaTareasDisponibles = listaTareas;
+ }
String [] arrayTareas = new String [listaTareasDisponibles.size()];
int c = 0;
for (Tarea tarea : listaTareasDisponibles) {
@@ -146,8 +166,7 @@ public class EjercitarWSBean implements EjercitarWSRemote {
// Tema tema = tarea.getTema();
// List<Concepto> = tema.getIdConcepto()
- List<Ejercicio> ejercicios = em
- .createQuery("SELECT e FROM Ejercicio e").getResultList();
+ List<Ejercicio> ejercicios = em.createQuery("SELECT e FROM Ejercicio e").getResultList();
System.out.println(ejercicios.size());
Random rnd = new Random();
int siguienteID = rnd.nextInt(ejercicios.size());
@@ -158,91 +177,77 @@ public class EjercitarWSBean implements EjercitarWSRemote {
}
private Ejercicio seleccionUtilidadMax(Tarea tarea, Alumno alumno) {
- // Tema tema = tarea.getTema();
- // List<Concepto> conceptoList = new ArrayList();
- //List<Concepto> conceptoList = tarea.getConceptoList();
+
+
+ List<Concepto> conceptoList = em.createQuery("Select c from Concepto c inner join c.tareaList t where t = :tarea").setParameter("tarea", tarea).getResultList();
// inicializacion
+
double utilidadMax = 0;
- Ejercicio ejercicio = null;
- List<Concepto> conceptoList = em.createQuery("Select c from Concepto c inner join c.tareaList t where t = :tarea").setParameter("tarea", tarea).getResultList();
+ Ejercicio ejercicio = null;
for (Concepto concepto : conceptoList) {
-
- // red
Network net1 = new Network();
-
String nombreRed = "red_alumno_" + alumno.getIdAlumno() + "_asignatura_" + tarea.getAsignatura().getIdAsignatura() +".xdsl";
System.out.println("redes/" + nombreRed);
net1.readFile("redes/" + nombreRed);
net1.updateBeliefs();
- // Network net2 = new Network();
- // net2.readFile("redes/" + nombreRed);
- // red
-
-
String nombreConcepto = concepto.getNombre();
+ double [] values = net1.getNodeValue(nombreConcepto);
- double[] values = net1.getNodeValue(nombreConcepto);
System.out.println("values");
+
System.out.println(values.toString());
+
double pC1 = values[0]; // P(C=1)
+
double pC0 = values[1]; // P(C=0)
- List<Ejercicio> ejercicios = concepto.getEjercicioList();
+
- for (Ejercicio ejercicioConcepto : ejercicios) {
- String nombreEjercicio = "E"
- + ejercicioConcepto.getIdEjercicio();
+ List<Ejercicio> ejercicios = concepto.getEjercicioList();
+ for(Ejercicio ejercicioConcepto : ejercicios){
+ String nombreEjercicio = "E" + ejercicioConcepto.getIdEjercicio();
net1.setEvidence(nombreConcepto, "Conoce");
net1.updateBeliefs();
values = net1.getNodeValue(nombreEjercicio);
double pE1C1 = values[0]; // P(E=1/C=1)
-
+ double utilidadParcial1 = pE1C1 * pC1;
net1.clearEvidence(nombreConcepto);
net1.updateBeliefs();
net1.setEvidence(nombreConcepto, "No_conoce");
net1.updateBeliefs();
double pE0C0 = values[1]; // P(E=0/C=0)
-
- double utilidadParcial2 = pE0C0 * pC0;
-
- double utilidadMaxParcial = utilidadParcial1 + utilidadParcial2;
-
- if (utilidadMaxParcial > utilidadMax) {
+ double utilidadParcial2 = pE0C0 * pC0;
+ double utilidadMaxParcial = utilidadParcial1 + utilidadParcial2;
+ if(utilidadMaxParcial > utilidadMax) {
utilidadMax = utilidadMaxParcial;
ejercicio = ejercicioConcepto;
}
- }
-
+ }
}
return ejercicio;
}
@WebMethod
- public void registrarSesion(int idAlumno, int idTarea, Boolean ayudaPadres,
+ public Integer registrarSesion(int idAlumno, int idTarea, Boolean ayudaPadres,
Boolean desdeHogar, String estadoAnimo) {
Sesion sesion = new Sesion();
-
+
sesion.setEntrada(new Date(System.currentTimeMillis()));
sesion.setAyudaPadres(ayudaPadres);
sesion.setDesdeHogar(desdeHogar);
sesion.setEstadoAnimo(estadoAnimo);
- System.out.println("#########Estado" + estadoAnimo
- + estadoAnimo.length());
+ sesion.setEstadoTerminado(false);
+ sesion.setCantidadEjerciciosResueltos(0);
Alumno alumno = em.find(Alumno.class, idAlumno);
- System.out.println("#########" + alumno.getApellido());
-
- Tarea tarea = em.find(Tarea.class, idTarea);
-
- System.out.println("#########" + tarea.getDescripcion());
-
+ Tarea tarea = em.find(Tarea.class, idTarea);
sesion.setAlumno(alumno);
sesion.setTarea(tarea);
-
+
em.persist(sesion);
-
+ return sesion.getIdSesion();
}
@WebMethod
@@ -278,37 +283,23 @@ public class EjercitarWSBean implements EjercitarWSRemote {
}//remove1
+
@WebMethod
- public Boolean getCriterioParada(Integer idAlumno, Integer idTarea) {
-
- Tarea tarea = em.find(Tarea.class, idTarea);
- Alumno alumno = em.find(Alumno.class, idAlumno);
+ public Boolean getCriterioParada(Integer idAlumno, Integer idSesion, Integer cantResuelto) {
- System.out.println("tareaa "+tarea.getDescripcion());
- System.out.println("alumno " + alumno.getIdAlumno() + alumno.getNombre());
+ Sesion sesion = em.find(Sesion.class, idSesion);
+ System.out.println(cantResuelto);
- Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea order by s.salida desc");
- query.setParameter("alumno", alumno.getIdAlumno());
-
- query.setParameter("tarea", tarea.getIdTarea());
- query.setMaxResults(1);
-
- Sesion sesion = (Sesion) query.getSingleResult();
-
- System.out.println("sesion cantidad EjercicioResuelto " + sesion.getcantidadEjerciciosResueltos());
+ //obtener cantidad de ejercicios maximos a resolver
+ Integer cantMaxEjercicio = sesion.getTarea().getCantidadEjercicioParada();
+ System.out.println(cantMaxEjercicio + " canti");
- Integer cantEjercicioResuelto = sesion.getcantidadEjerciciosResueltos() + 1;
- Integer cantMaxEjercicio = sesion.getTarea()
- .getCantidadEjercicioParada();
-
- System.out.println("sesion cantidad cantMaxEjercicio " + cantMaxEjercicio);
- sesion.setCantidadEjerciciosResuetos(cantEjercicioResuelto);
- try{
- em.persist(sesion);
- }catch(Exception e){
- System.out.println(e.getLocalizedMessage());
- }
- if (cantEjercicioResuelto.equals(cantMaxEjercicio)) {
+ //persistir la cantidad de ejercicios resueltos
+ sesion.setCantidadEjerciciosResueltos(cantResuelto);
+ em.persist(sesion);
+
+ //compara el maximo con la cantidad actual resuelta.
+ if (cantResuelto.compareTo(cantMaxEjercicio) == 0) {
System.out.println("true");
return true;
} else{
@@ -324,18 +315,18 @@ public class EjercitarWSBean implements EjercitarWSRemote {
Tarea tarea = em.find(Tarea.class, idTarea);
Alumno alumno = em.find(Alumno.class, idAlumno);
- System.out.println("tareaa "+tarea.getDescripcion());
- System.out.println("alumno " + alumno.getIdAlumno() + alumno.getNombre());
- Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea and s.salida is not null order by s.salida desc");
+ //para obtener la sesion anterior.
+ Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea order by s.idSesion desc");
query.setParameter("alumno", alumno.getIdAlumno());
-
query.setParameter("tarea", tarea.getIdTarea());
query.setMaxResults(1);
- Sesion sesion = (Sesion) query.getSingleResult();
+ Sesion sesionAnterior = (Sesion) query.getSingleResult();
- Integer cantEjerResueltos = (sesion!=null)? sesion.getcantidadEjerciciosResueltos() : 1;
+ // obtener la cantidad de ejercicios resueltos
+ //Si no existe sesion anterior agregar uno.
+ Integer cantEjerResueltos = (sesionAnterior!=null)? sesionAnterior.getcantidadEjerciciosResueltos() : 1;
Integer topeEjercicio = tarea.getCantidadEjercicioParada();
System.out.println(cantEjerResueltos.toString() +"#"+topeEjercicio.toString());
@@ -343,71 +334,36 @@ public class EjercitarWSBean implements EjercitarWSRemote {
return cantEjerResueltos.toString() +"#"+topeEjercicio.toString();
}
-
+
@WebMethod
- public Boolean getCriterioParada(Integer idAlumno, Integer idTarea) {
-
- Tarea tarea = em.find(Tarea.class, idTarea);
- Alumno alumno = em.find(Alumno.class, idAlumno);
-
- System.out.println("tareaa "+tarea.getDescripcion());
- System.out.println("alumno " + alumno.getIdAlumno() + alumno.getNombre());
-
- Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea order by s.salida desc");
- query.setParameter("alumno", alumno.getIdAlumno());
-
- query.setParameter("tarea", tarea.getIdTarea());
- query.setMaxResults(1);
- Sesion sesion = (Sesion) query.getSingleResult();
+ public String [] getRespuestas (int idEjercicio) {
- System.out.println("sesion cantidad EjercicioResuelto " + sesion.getcantidadEjerciciosResueltos());
+ Ejercicio ejercicio = em.find(Ejercicio.class, idEjercicio);
+ String [] arrayRespuestas = new String [4];
+ int c = 0;
- Integer cantEjercicioResuelto = sesion.getcantidadEjerciciosResueltos() + 1;
- Integer cantMaxEjercicio = sesion.getTarea()
- .getCantidadEjercicioParada();
+ for (Respuesta respuesta : ejercicio.getRespuestaList()) {
+ String respuestaElement = respuesta.getDescripcion();
+ arrayRespuestas[c] = respuestaElement;
+ c++;
- System.out.println("sesion cantidad cantMaxEjercicio " + cantMaxEjercicio);
- sesion.setCantidadEjerciciosResuetos(cantEjercicioResuelto);
- try{
- em.persist(sesion);
- }catch(Exception e){
- System.out.println(e.getLocalizedMessage());
- }
- if (cantEjercicioResuelto.equals(cantMaxEjercicio)) {
- System.out.println("true");
- return true;
- } else{
- System.out.println("false");
- return false;
}
+ System.out.println(arrayRespuestas.toString());
+ return arrayRespuestas;
}
@WebMethod
- public String obtenerCantidadEjercicioTarea(Integer idAlumno, Integer idTarea){
+ public void terminarTarea(Integer idSesion){
- Tarea tarea = em.find(Tarea.class, idTarea);
- Alumno alumno = em.find(Alumno.class, idAlumno);
+ Sesion sesion = em.find(Sesion.class, idSesion);
- System.out.println("tareaa "+tarea.getDescripcion());
- System.out.println("alumno " + alumno.getIdAlumno() + alumno.getNombre());
-
- Query query = em.createQuery("Select s from Sesion s where s.alumno.idAlumno = :alumno and s.tarea.idTarea = :tarea and s.salida is not null order by s.salida desc");
- query.setParameter("alumno", alumno.getIdAlumno());
-
- query.setParameter("tarea", tarea.getIdTarea());
- query.setMaxResults(1);
-
- Sesion sesion = (Sesion) query.getSingleResult();
-
- Integer cantEjerResueltos = (sesion!=null)? sesion.getcantidadEjerciciosResueltos() : 1;
- Integer topeEjercicio = tarea.getCantidadEjercicioParada();
+ sesion.setEstadoTerminado(true);
- System.out.println(cantEjerResueltos.toString() +"#"+topeEjercicio.toString());
+ em.persist(sesion);
- return cantEjerResueltos.toString() +"#"+topeEjercicio.toString();
-
}
+
}
diff --git a/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java b/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
index 36f8d15..6cfbfe4 100644
--- a/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
+++ b/EjercitarServer/ejbModule/beans/EjercitarWSRemote.java
@@ -19,25 +19,21 @@ public interface EjercitarWSRemote {
public String [] getTareas(int idAlumno);
-
-
public String getSiguienteEjercicio(int idTarea, int idAlumno, int idEjercicio, String respuesta);
public String [] getRespuestas (int idEjercicio);
public String getText();
- public void registrarSesion(int idAlumno, int idTarea, Boolean ayudaPadres, Boolean desdeHogar, String estadoAnimo) ;
+ public Integer registrarSesion(int idAlumno, int idTarea, Boolean ayudaPadres, Boolean desdeHogar, String estadoAnimo) ;
public Alumno obtenerIdAlumno(String serial);
- public Boolean getCriterioParada(Integer idAlumno, Integer idTarea);
+ public Boolean getCriterioParada(Integer idAlumno, Integer idSesion, Integer cantResuelto);
public String obtenerCantidadEjercicioTarea(Integer idAlumno, Integer idTarea);
-
- public Boolean getCriterioParada(Integer idAlumno, Integer idTarea);
- public String obtenerCantidadEjercicioTarea(Integer idAlumno, Integer idTarea);
+ public void terminarTarea(Integer idSesion);
} \ No newline at end of file