toHTML() public method

public toHTML ( List props, Grupo g, string email, int width, eModo modo ) : string
props List
g Grupo
email string
width int
modo eModo
return string
Ejemplo n.º 1
0
        private Documento crearDocumento(Nodo n, DateTime now, string fname, string docPath, string URL)
        {
            Modelo    m   = grupo.organizacion.getModeloDocumento(n.modeloID);
            Documento doc = new Documento();

            doc.fecha    = now;
            doc.nombre   = m.nombre;
            doc.fname    = fname;
            doc.modeloID = n.modeloID;
            doc.path     = grupo.path + "\\" + docPath + "\\" + fname + ".json";
            doc.URLPath  = URL;
            //obtengo el titulo
            //debo dibujar el documento
            //junto propuestas
            List <Propuesta> props = new List <Propuesta>();

            foreach (Nodo n1 in getPath(n.id))
            {
                Propuesta p = getPropuesta(n1);
                if (p != null) //la raiz
                {
                    props.Add(p);
                }
            }
            //armo HTML
            m.toHTML(props, this.grupo, "", 1024, Modelo.eModo.consenso);
            doc.titulo = m.titulo;

            //guardo propuestas
            doc.propuestas = props;

            return(doc);
        }
Ejemplo n.º 2
0
        string doVariante(int id, string modeloID, string grupo, string email, int width)
        {
            string           ret   = "";
            List <Propuesta> props = new List <Propuesta>();
            Grupo            g     = app.getGrupo(grupo);

            lock (g)
            {
                //preparo propuestas de nodos ancestros
                Arbol       a    = g.arbol;
                List <Nodo> path = a.getPath(id);
                Modelo      m    = g.organizacion.getModeloDocumento(modeloID);
                g.ts = DateTime.Now;
                foreach (Nodo n in path)
                {
                    Propuesta op = a.getPropuesta(n); //comparo textox con hermanos y resalto palarbas nuevas
                    if (n.nivel > 0 && op != null)
                    {
                        props.Add(op);
                    }
                }

                //marco la propuesta de id como prevista
                props[0]        = props[0].clone(); //nueva propuesta
                props[0].email  = email;
                props[0].nodoID = 0;                //nodoID=0 determina propuesta prevista, porque esta propuesta aun no tiene nodo

                //muestro documento
                ret = m.toHTML(props, g, email, width, Modelo.eModo.editar); //las propuesta debe ir en orden de nivel
            }
            return(ret);
        }
Ejemplo n.º 3
0
        // public bool doSimulacionLive0(Grupo g, float coopProb)
        //{
        //    bool ret = false;
        //    lock (g)
        //    {
        //        Arbol a = g.arbol;
        //        float action = coopProb + a.getNexRandom() - 0.5f;

        //        if (action > 3f / 4f)
        //        {
        //            //cooperacion, muevo un voto del menor al mayor
        //            Nodo mayor = a.getMayorAgregar(0);
        //            Nodo menor = a.getMenorQuitar(mayor.id);

        //            if (mayor != menor && menor.flores > 0 && !mayor.consensoAlcanzado)
        //            {
        //                Usuario u = a.quitarFlor(menor);
        //                try { a.asignarflor(u, mayor); }
        //                catch { }
        //                if (mayor.consensoAlcanzado) ret = true;
        //            }
        //        }
        //        else if (action > 2f / 4f)
        //        {
        //            //voto a minorias, muevo un voto del mayor al menor
        //            var mayor = a.getMayorQuitar(0);
        //            var menor = a.getMenorAgregar(mayor.id);

        //            if (mayor != menor && mayor.flores > 0 && !menor.consensoAlcanzado)
        //            {
        //                Usuario u = a.quitarFlor(mayor);
        //                try { a.asignarflor(u, menor); }
        //                catch { }
        //                if (menor.consensoAlcanzado) ret = true;
        //            }
        //        }
        //        else if (action > 1f / 4f)
        //        {
        //            //quito alguna flor
        //            var mayor = a.getMayorQuitar(0);
        //            if (mayor.flores > 0)
        //            {
        //                a.quitarFlor(mayor);
        //            }
        //        }
        //        else
        //        {
        //            //creo una rama nueva
        //            //seleccion nodo al azar
        //            List<Nodo> nodes = a.toList();
        //            Nodo selected = a.rndElement(nodes);

        //            //agrego nuevo nodo
        //            if (!selected.consensoAlcanzado && selected.nivel < 5)
        //            {
        //                //agrego nodo
        //                //creo texto segun nivel y modelo de documento
        //                Modelo m = g.organizacion.getModeloDocumento("nabu.plataforma.modelos.Accion");  //modelo de simulacion (Accion)
        //                Propuesta prop = new Propuesta();
        //                prop.email = g.usuarios[0].email;
        //                prop.modeloID = m.id;
        //                prop.nivel = selected.nivel + 1;  //esta propuesta es para el hijo que voy a crear
        //                prop.nodoID = selected.id;
        //                prop.niveles = 5;
        //                prop.titulo = Tools.tr("Documento simulado", g.idioma);
        //                prop.etiqueta = ".";

        //                //lleno datos de prueba
        //                foreach (Variable v in m.getVariables())
        //                {
        //                    if (v.id == "s.etiqueta")
        //                        prop.bag.Add("s.etiqueta", "Sim");
        //                    else if (v.id == "s.titulo")
        //                        prop.bag.Add("s.titulo", Tools.tr("Documento simulado", g.idioma));
        //                    else
        //                        prop.bag.Add(v.id, Tools.tr("Simulacion", g.idioma));
        //                }

        //                //me aseguro que el usuario tenga flores o agrego otro
        //                if (a.lastSimUsuario.flores.Count < 5)
        //                    a.lastSimUsuario.flores.Add(new Flor());
        //                else
        //                {
        //                    //busco un usuario con flores
        //                    a.lastSimUsuario = a.getUsuarioConFloresDisponibles();
        //                }
        //                if (a.lastSimUsuario == null)
        //                {
        //                    Usuario u = new Usuario();
        //                    u.nombre = "Sim" + g.usuarios.Count + 1;
        //                    u.email = "Sim" + g.usuarios.Count + 1;
        //                    u.flores.Add(new Flor());
        //                    g.usuarios.Add(u);
        //                    a.lastSimUsuario = u;
        //                }

        //                prop.email = a.lastSimUsuario.email;
        //                Nodo nuevo = a.addNodo(selected, prop);

        //                if (selected.nivel == 1)
        //                {
        //                    selected.nombre = "Sim" + selected.id;
        //                }
        //            }
        //        }
        //    }
        //    return ret;
        //}

        string doPrevista(int id, string modeloID, string grupo, string email, int width, HttpRequest req)
        {
            string ret = "";
            Grupo  g   = app.getGrupo(grupo);
            Modelo m   = g.organizacion.getModeloDocumento(modeloID);

            lock (g)
            {
                List <Propuesta> props = prepararDocumento(g, email, modeloID, id, req);

                //genro prevista para segurarme que defina etiqueta y titulo
                ret = m.toHTML(props, g, email, width, Modelo.eModo.prevista); //las propuesta debe ir en orden de nivel

                //guarpo prevista para poder crearla luego
                if (props.Count > 0)
                {
                    Usuario  u    = g.getUsuarioHabilitado(email);
                    Prevista prev = new Prevista();
                    prev.etiqueta = m.etiqueta;
                    prev.titulo   = m.titulo;
                    prev.propuestas.Clear();
                    foreach (Propuesta p in props)
                    {
                        if (p.esPrevista())
                        {
                            prev.propuestas.Add(p);
                        }
                    }
                    u.prevista = prev;
                } //else no ha escrito nada nuevo
            }
            return(ret);
        }
Ejemplo n.º 4
0
        string HTMLPropuesta(int id, string grupo, string email, int width)
        {
            string           ret = "";
            List <Propuesta> l   = new List <Propuesta>();
            Grupo            g   = app.getGrupo(grupo);

            lock (g)
            {
                Arbol a = g.arbol;
                g.ts = DateTime.Now;
                Propuesta p = a.getPropuesta(id);
                if (p != null)
                {
                    Modelo m = g.organizacion.getModeloDocumento(p.modeloID);
                    ret = m.toHTML(p, g, email, width, Modelo.eModo.ver);
                }
            }
            return(ret);
        }
Ejemplo n.º 5
0
        string HTMLDocumento(int id, string modeloID, string grupo, string email, int width)
        {
            string           ret = "";
            List <Propuesta> l   = new List <Propuesta>();
            Grupo            g   = app.getGrupo(grupo);

            lock (g)
            {
                Arbol a = g.arbol;
                g.ts = DateTime.Now;
                foreach (Nodo n in a.getPath(id))
                {
                    Propuesta op = a.getPropuesta(n); //comparo textox con hermanos y resalto palarbas nuevas
                    if (op != null)
                    {
                        l.Add(op);
                    }
                }
                Modelo m = g.organizacion.getModeloDocumento(modeloID);
                ret = m.toHTML(l, g, email, width, Modelo.eModo.editar); //las propuesta debe ir en orden de nivel
            }
            return(ret);
        }
Ejemplo n.º 6
0
        string doRevisar(int id, string modeloID, string grupo, string email, int width)
        {
            string           ret   = "";
            List <Propuesta> props = new List <Propuesta>();
            Grupo            g     = app.getGrupo(grupo);
            Modelo           m     = g.organizacion.getModeloDocumento(modeloID);

            lock (g)
            {
                //preparo propuestas de nodos ancestros
                Arbol       a    = g.arbol;
                List <Nodo> path = a.getPath(id);
                g.ts = DateTime.Now;
                foreach (Nodo n in path)
                {
                    Propuesta op = a.getPropuesta(n); //comparo textox con hermanos y resalto palarbas nuevas
                    if (n.nivel > 0 && op != null)
                    {
                        props.Add(op);
                    }
                }

                //agrego las propuestas de prevista
                Usuario u = g.getUsuario(email);
                if (u.prevista != null)
                {
                    foreach (Propuesta p in u.prevista.propuestas)
                    {
                        props.Add(p);
                    }
                }

                //genro revision
                ret = m.toHTML(props, g, email, width, Modelo.eModo.revisar); //las propuesta debe ir en orden de nivel
            }
            return(ret);
        }
Ejemplo n.º 7
0
        private void generarDocumentoHTML(Nodo n, DateTime now, string fname, string docPath, string URL)
        {
            List <Nodo> pathn  = getPath(n.id);
            Modelo      m      = grupo.organizacion.getModeloDocumento(n.modeloID);
            DateTime    inicio = DateTime.MaxValue;

            //junto propuestas
            List <Propuesta> props = new List <Propuesta>();

            foreach (Nodo n1 in pathn)
            {
                Propuesta p = getPropuesta(n1);
                if (p != null) //la raiz
                {
                    props.Add(p);
                    if (p.born < inicio)
                    {
                        inicio = p.born;
                    }
                }
            }
            //firma consenso
            string ret = "";

            ret += "Documento escrito de forma cooperativa.<br>";
            ret += "Grupo: " + this.nombre + "<br>";
            ret += "Documento ID:" + fname + "<br>";
            ret += "Inicio de debate: " + inicio.ToString("dd/MM/yy") + "<br>";
            ret += "Fecha de consenso: " + DateTime.Now.ToString("dd/MM/yy") + " " + DateTime.Now.ToShortTimeString() + "<br>";
            ret += "Ubicaci&oacute;n: <a target='_blank' href='" + URL + "'>" + URL + "</a><br>";
            ret += "Objetivo: " + this.grupo.objetivo + "<br>";
            ret += "Usuarios: " + this.grupo.getUsuariosHabilitados().Count + "<br>";
            ret += "Activos: " + this.grupo.activos + "<br>";
            ret += "Si: (&ge; " + this.minSiPc + "%): " + n.flores + "<br>";
            ret += "No: (&le; " + this.maxNoPc + "%): " + n.negados + "<br>";

            //admin
            if (this.grupo.getAdmin() != null)
            {
                ret += "Coordinador: " + grupo.getAdmin().nombre + "<br>";
            }

            //representates
            ret += "Representantes: ";
            foreach (Usuario rep in this.grupo.getRepresentantes())
            {
                ret += rep.nombre + ",";
            }
            if (ret.EndsWith(","))
            {
                ret = ret.Substring(0, ret.Length - 1);
            }
            ret += "<br>";

            //secretaria
            if (this.grupo.getSecretaria() != null)
            {
                ret += "Secretaria: " + grupo.getSecretaria().nombre + "<br>";
            }

            //facilitador
            if (this.grupo.getFacilitador() != null)
            {
                ret += "Facilitador: " + grupo.getFacilitador().nombre + "<br>";
            }

            //armo HTML
            string html = "";

            try
            {
                m.firmaConsenso = ret;
                html            = m.toHTML(props, this.grupo, "", 1024, Modelo.eModo.consenso);
            }
            catch (Exception ex)
            {
                throw new Exception("generarDocumentoHTML():toHTML():" + m.nombre + ":" + ex.Message + " " + ex.StackTrace);
            }

            //escribo
            System.IO.File.WriteAllText(grupo.path + "\\" + docPath + "\\" + fname + ".html", html, System.Text.Encoding.UTF8);
        }