Beispiel #1
0
        string doEvaluarTema(string idTema, string grupo, string email, int width)
        {
            string ret = "";
            Grupo  g   = app.getGrupo(grupo);

            lock (g)
            {
                g.ts = DateTime.Now;

                //busco el tema
                foreach (Tema t in g.queso.temas)
                {
                    if (t.id == idTema)
                    {
                        ModeloEvaluacion m    = g.organizacion.getModeloEvaluacion(t.modeloEvaluacionID);
                        Propuesta        prop = m.createProp(t);
                        ret = m.toHTML(prop, g, email, width, ModeloEvaluacion.eModo.editar); //las propuesta debe ir en orden de nivel

                        //guarpo prevista para poder crearla luego
                        Usuario  u    = g.getUsuarioHabilitado(email);
                        Prevista prev = new Prevista();
                        prev.titulo = m.titulo;
                        prev.propuestas.Clear();
                        prev.propuestas.Add(prop);
                        u.prevista = prev;
                    }
                }
            }
            return(ret);
        }
Beispiel #2
0
        public string doDocumentSubmit(string accion, string parametro, string grupo, string email, string modeloID, int width, HttpRequest req)
        {
            string           ret = "";
            Grupo            g   = app.getGrupo(grupo);
            ModeloEvaluacion m   = g.organizacion.getModeloEvaluacion(modeloID);
            Usuario          u   = g.getUsuarioHabilitado(email);

            lock (g)
            {
                Propuesta prop = prepararDocumento(g, email, modeloID, req);

                //proceso evento
                m.evaluacionSubmit(accion, parametro, prop, g, email); //las propuesta debe ir en orden de nivel

                //genro respuesta
                ret = m.toHTML(prop, g, email, width, ModeloEvaluacion.eModo.editar);

                //guarpo prevista para poder crearla luego
                Prevista prev = new Prevista();
                prev.titulo = m.titulo;
                prev.propuestas.Clear();
                prev.propuestas.Add(prop);
                u.prevista = prev;
            }
            return(ret);
        }
Beispiel #3
0
        private Propuesta prepararDocumento(Grupo g, string email, string modeloID, HttpRequest req)
        {
            //preparo propuestas de nodos ancestros
            Propuesta        prop;
            Arbol            a = g.arbol;
            ModeloEvaluacion m = g.organizacion.getModeloEvaluacion(modeloID);

            g.ts = DateTime.Now;

            Usuario u = g.getUsuarioHabilitado(email);

            if (u.prevista != null)
            {
                prop = u.prevista.propuestas[0];
            }
            else
            {
                prop = new Propuesta();
            }

            //agrego las propuestas de prevista
            foreach (string reqID in req.Form.AllKeys)
            {
                if (reqID != null && m.isVariable(reqID) && req[reqID] != "")
                {
                    //este valor me lo guardo en la prpuesta para ese nivel
                    Variable v = m.getVariable(reqID);
                    prop.bag[reqID] = m.parse(reqID, req[reqID]);
                }
            }

            return(prop);
        }
Beispiel #4
0
 public void evaluar(Grupo g)
 {
     //calculo respuestas segun las evaluaciones
     if (modeloEvaluacionID != "")
     {
         ModeloEvaluacion ev = g.organizacion.getModeloEvaluacion(modeloEvaluacionID);
         respuestas = ev.evaluar(evaluaciones);
     }
 }
Beispiel #5
0
        string doCrearEvaluacion(ModeloEvaluacion m, Grupo g, string email, Evaluacion ev)
        {
            string msg = "";

            //tema
            string idTema = m.nombre + ":" + m.getEvaluadoID();
            Tema   t      = g.queso.getTema(idTema);

            if (t == null)
            {
                t    = new Tema();
                t.id = idTema;
                t.modeloEvaluacionID = m.id;
                t.nombre             = m.getTemaNombre();
                t.icono      = m.getTemaIcono();
                t.URL        = m.getTemaURL();
                t.evaluadoID = m.getEvaluadoID();
                t.autor      = m.getTemaAutor();

                g.queso.temas.Add(t);
            }

            //agrego evaluacion (reemplazo anterior si hay)
            if (ev != null)
            {
                msg = "";
                foreach (Evaluacion e in t.evaluaciones)
                {
                    if (e.email == email)
                    {
                        t.evaluaciones.Remove(e);
                        msg = Tools.tr("La evaluacion anterior ha sido reemplazada", g.idioma);
                        break;
                    }
                }
                t.evaluaciones.Add(ev);
            }

            //limpio
            Usuario u = g.getUsuario(email);

            if (u != null)
            {
                u.prevista = null;
            }

            //actualizo queso
            g.queso.evaluar();

            return(msg);
        }
Beispiel #6
0
        string doRevisar(string modeloID, string grupo, string email, int width)
        {
            string           ret = "";
            Grupo            g   = app.getGrupo(grupo);
            ModeloEvaluacion m   = g.organizacion.getModeloEvaluacion(modeloID);

            lock (g)
            {
                //preparo propuestas de nodos ancestros
                g.ts = DateTime.Now;

                //agrego las propuestas de prevista
                Usuario u = g.getUsuario(email);

                //genro revision
                ret = m.toHTML(u.prevista.propuestas[0], g, email, width, ModeloEvaluacion.eModo.revisar); //las propuesta debe ir en orden de nivel
            }
            return(ret);
        }
Beispiel #7
0
        string HTMLEvaluacion(Propuesta prop, string modeloID, string grupo, string email, int width)
        {
            string ret = "";
            Grupo  g   = app.getGrupo(grupo);

            lock (g)
            {
                Arbol a = g.arbol;
                g.ts = DateTime.Now;
                ModeloEvaluacion m = g.organizacion.getModeloEvaluacion(modeloID);

                //limpio valores antiguos
                Usuario u = g.getUsuarioHabilitado(email);
                if (u.prevista != null)
                {
                    u.prevista = null;
                }

                ret = m.toHTML(prop, g, email, width, ModeloEvaluacion.eModo.editar); //las propuesta debe ir en orden de nivel
            }
            return(ret);
        }
Beispiel #8
0
        string doPrevista(string modeloID, string grupo, string email, int width, HttpRequest req)
        {
            string           ret = "";
            Grupo            g   = app.getGrupo(grupo);
            ModeloEvaluacion m   = g.organizacion.getModeloEvaluacion(modeloID);

            lock (g)
            {
                Propuesta prop = prepararDocumento(g, email, modeloID, req);

                //genro prevista para segurarme que defina etiqueta y titulo
                ret = m.toHTML(prop, g, email, width, ModeloEvaluacion.eModo.prevista);

                //guarpo prevista para poder crearla luego
                Usuario  u    = g.getUsuarioHabilitado(email);
                Prevista prev = new Prevista();
                prev.titulo = m.titulo;
                prev.propuestas.Clear();
                prev.propuestas.Add(prop);
                u.prevista = prev;
            }
            return(ret);
        }
Beispiel #9
0
        string crearEvaluacionAlPadre(string grupopadre, string grupohijo, string docnombre, string doctitulo, string docmodeloid, HttpPostedFile file)
        {
            //yo soy el padre
            string ret = "";
            Grupo  g   = app.getGrupo(grupopadre);

            lock (g)
            {
                //compruebo grupo hijo
                bool encontrado = false;
                foreach (Hijo h in g.hijos)
                {
                    if (h.nombre == grupohijo)
                    {
                        encontrado = true;
                    }
                }

                if (encontrado)
                {
                    //escribo documento recibido
                    int    docID   = g.queso.lastEvalID++;
                    string fname   = docmodeloid + "_" + docID.ToString("0000");
                    string docPath = "evaluaciones\\intergrupal\\" + grupohijo + "\\" + docID.ToString("0000");
                    string URL     = g.URL + "/grupos/" + g.nombre + "/" + docPath.Replace('\\', '/') + "/" + fname + ".html";

                    //creo carpeta se salida
                    if (!System.IO.Directory.Exists(g.path + "\\" + docPath))
                    {
                        System.IO.Directory.CreateDirectory(g.path + "\\" + docPath);
                        System.IO.Directory.CreateDirectory(g.path + "\\" + docPath + "\\res\\documentos");
                        System.IO.File.Copy(g.path + "\\..\\..\\styles.css", g.path + "\\" + docPath + "\\styles.css");
                        System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(g.path + "\\..\\..\\res\\documentos");
                        foreach (System.IO.FileInfo fi in di.GetFiles())
                        {
                            System.IO.File.Copy(fi.FullName, g.path + "\\" + docPath + "\\res\\documentos\\" + fi.Name);
                        }
                    }
                    //guardo documento recibido
                    file.SaveAs(g.path + "\\" + docPath + "\\" + fname + ".html");

                    //creo modelos de evaluacion con datos identificatorios
                    ModeloEvaluacion m = g.organizacion.getModeloEvaluacion("nabu.plataforma.modelosEvaluacion.AlPadre");
                    m.evaluadoID = (g.queso.lastEvalID++).ToString();
                    m.temaNombre = grupohijo + ": " + doctitulo;
                    m.temaIcono  = "res/documentos/alpadre.png";
                    m.temaURL    = URL;
                    m.temaAutor  = grupohijo;

                    //creo evaluacion vacia para este documento nuevo
                    doCrearEvaluacion(m, g, "", null);

                    //alertas
                    foreach (Usuario u in g.getUsuariosHabilitados())
                    {
                        u.alertas.Add(new Alerta(Tools.tr("Nuevo documento intergrupal [%1]", doctitulo, g.idioma)));
                    }

                    ret = "ok";
                }
                else
                {
                    ret = "Hijo [" + grupohijo + "] no encontrado en [" + grupopadre + "]";
                }
            }

            //guardo
            //app.saveGrupos();

            return(ret);
        }