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); }
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); }
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); }
public void evaluar(Grupo g) { //calculo respuestas segun las evaluaciones if (modeloEvaluacionID != "") { ModeloEvaluacion ev = g.organizacion.getModeloEvaluacion(modeloEvaluacionID); respuestas = ev.evaluar(evaluaciones); } }
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); }
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); }
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); }
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); }
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); }