Example #1
0
    def editar_proyecto(self, id_proyecto, *args, **kw):
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

        if id_proyecto is not None:
            id_proyecto=int(id_proyecto)

        usuarios = Usuario.get_usuarios()
        tipos_fases = Tipo_Fase.get_tipo_fases()	
        proyecto = Proyecto.get_proyecto_by_id(id_proyecto)

        usuario2 = Usuario.get_user_by_id(int(proyecto.idusuario))
        
        tipos = proyecto.tipos_fases

        tipos_fases2 = []
        for tip in tipos:
            tipos_fases2.append(tip.id_tipo_fase)

        values = dict(id_proyecto=proyecto.id_proyecto, 
						nombre_proyecto=proyecto.nombre_proyecto, 
						descripcion=proyecto.descripcion, 
						idusuario=proyecto.idusuario
						)
                      
        values.update(kw)

        return dict(pagina="editar_proyecto",values=values, usuarios=usuarios,
                     tipos_fases=tipos_fases, tipos_fases2=tipos_fases2,
                    usuario2=usuario2, nom_proyecto=nom_proyecto,
                    nom_fase=nom_fase)
Example #2
0
    def listar_usuario(self, start=0, end=5):
        """Lista usuarios 
        """
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        paginado = 5
        if start <> 0:
            end = int(start.split("=")[1])  # obtiene el fin de pagina
            start = int(start.split("&")[0])  # obtiene el inicio de pagina
        # print start,end
        total = len(Usuario.get_usuarios())
        pagina_actual = ((start % end) / paginado) + 1
        if ((start % end) % paginado) <> 0:
            pagina_actual = pagina_actual + 1

        usuarios = Usuario.get_usuarios_por_pagina(start, end)

        return dict(
            pagina="listar_usuario",
            usuarios=usuarios,
            nom_proyecto=nom_proyecto,
            nom_fase=nom_fase,
            inicio=start,
            fin=end,
            paginado=paginado,
            pagina_actual=pagina_actual,
            total=total,
        )
Example #3
0
    def agregar_usuario(self, cancel=False, **data):
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        usuarios = Usuario.get_alias()

        errors = {}
        usuario = None
        if request.method == "POST":
            if cancel:
                redirect("/usuario")
            form = UsuarioForm()
            try:
                data = form.to_python(data)

                usuario = Usuario(
                    alias=data.get("alias"),
                    nombre=data.get("nombre"),
                    apellido=data.get("apellido"),
                    email_address=data.get("email"),
                    nacionalidad=data.get("nacionalidad"),
                    tipodocumento=data.get("tipodocumento"),
                    nrodoc=data.get("nrodoc"),
                    _password=data.get("clave"),
                )

                if usuario.alias not in usuarios:
                    usuario._set_password(data.get("clave"))
                    rol = Rol.get_rol_by_nombre("Usuario Basico")
                    usuario.roles.append(rol)

                    DBSession.add(usuario)
                    DBSession.flush()
                    print usuario
                    flash("Usuario agregado!")
                    redirect("/usuario")
                else:

                    flash(_("Favor cambie el alias es repetido"), "warning")
                    return dict(
                        pagina="usuarios",
                        usuario=usuario,
                        errors=errors,
                        data=data.get("alias"),
                        nom_proyecto=nom_proyecto,
                        nom_fase=nom_fase,
                        usuarios=usuarios,
                    )

            except Invalid, e:
                print e
                usuario = None
                errors = e.unpack_errors()
                flash(_("Favor complete los datos requeridos"), "warning")

            except IntegrityError:
                flash("LLave duplicada")
                DBSession.rollback()
                redirect("/agregar_usuario")
Example #4
0
    def post_delete_usuario(
        self, idusuario, alias, nombre, apellido, nacionalidad, tipodocumento, nrodoc, email_address, **kw
    ):

        if idusuario is not None:
            idusuario = int(idusuario)

        Usuario.borrar_by_id(idusuario)
        DBSession.flush()
        flash("Usuario eliminado!")
        redirect("/usuario")
Example #5
0
    def ingresar(self,id_proyecto):
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")

        usuario=Usuario.get_user_by_alias( request.identity['repoze.who.userid'])

        if id_proyecto is not None:
            id_proyecto=int(id_proyecto)

        proyecto=Proyecto.get_proyecto_by_id(id_proyecto)

        Variables.set_valor_by_nombre("fase_actual",0)
        Variables.set_valor_by_nombre("proyecto_actual",proyecto.id_proyecto)
        Variables.set_valor_by_nombre("nombre_proyecto_actual",
                                            proyecto.nombre_proyecto)

        miembros=Equipo_Desarrollo.get_miembros_by_proyecto(proyecto.id_proyecto)
        rol=""
        for miembro in miembros:
            if ( miembro.idusuario == usuario.idusuario ):
                temp=int (Variables.get_valor_by_nombre("rol_anterior"))
                if  temp == 0:		
                    Variables.set_valor_by_nombre("rol_anterior",
                                                    usuario.roles[0].idrol)

                Variables.set_valor_by_nombre("rol_actual",miembro.idrol)
                rol=Rol.get_rol_by_id(miembro.idrol)
                usuario.roles=[]

                DBSession.flush()
                usuario.roles.append(rol)
                DBSession.flush()
                break;
        redirect('/')
Example #6
0
    def post_logout(self, came_from=url("/")):
        """
        Redirect the user to the initially requested page on logout and say
        goodbye as well.

        """
        condicion = int(Variables.get_valor_by_nombre("rol_anterior"))
        if condicion > 0:
            usuario = Usuario.get_user_by_alias(Variables.get_valor_by_nombre("usuario_actual"))

            Variables.set_valor_by_nombre("fase_actual", 0)
            Variables.set_valor_by_nombre("proyecto_actual", 0)
            Variables.set_valor_by_nombre("nombre_proyecto_actual", "")
            Variables.set_valor_by_nombre("nombre_fase_actual", "")
            Variables.set_valor_by_nombre("usuario_actual", "")

            rol = int(Variables.get_valor_by_nombre("rol_anterior"))
            Variables.set_valor_by_nombre("rol_actual", 0)
            Variables.set_valor_by_nombre("rol_anterior", 0)

            rol2 = Rol.get_rol_by_id(rol)
            usuario.roles = []
            usuario.roles.append(rol2)
            DBSession.flush()

        flash(_("Hasta luego!"))
        redirect("/")
Example #7
0
    def editar_usuario(self, idusuario, cancel=False, *args, **kw):
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        if idusuario is not None:
            idusuario = int(idusuario)

        usuario = Usuario.get_user_by_id(idusuario)

        if cancel:
            redirect("/usuario")

        if request.method != "PUT":

            values = dict(
                idusuario=usuario.idusuario,
                alias=usuario.alias,
                nombre=usuario.nombre,
                apellido=usuario.apellido,
                nacionalidad=usuario.nacionalidad,
                tipodocumento=usuario.tipodocumento,
                nrodoc=usuario.nrodoc,
                email_address=usuario.email_address,
            )

        return dict(pagina="editar_usuario", values=values, nom_proyecto=nom_proyecto, nom_fase=nom_fase)
Example #8
0
    def proyecto(self,start=0,end=5,indice=None,texto=""):
        """Lista proyectos 
        """
        proyectos=""

        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

        usuario=Usuario.get_user_by_alias(request.identity['repoze.who.userid'])
        rol=usuario.roles[0]

        ############################
        paginado = 5
        if start <> 0:
            end=int(start.split('=')[1]) #obtiene el fin de pagina
            start=int(start.split('&')[0]) #obtiene el inicio de pagina
        #print start,end
        
        pagina_actual = ((start % end) / paginado) + 1
        if ((start % end) % paginado) <> 0:
             pagina_actual = pagina_actual + 1
         
        #roles = Rol.get_roles_por_pagina(start,end)
        ###########################
        
        lista = ['nombre','descripcion']

        if rol.nombrerol == "Administrador":
            #proyectos = Proyecto.get_proyecto_por_pagina(start,end)
            if indice  <> None and texto <> "":  
                proyectos = Proyecto.get_proyectos_por_filtro(indice,texto)
                total = len(proyectos)
            else:   
                proyectos = Proyecto.get_proyectos_por_pagina(start,end)
                total = len(Proyecto.get_proyectos())
            
            return dict(pagina="proyecto",proyectos=proyectos,
                            nom_proyecto=nom_proyecto,nom_fase=nom_fase,
                            inicio=start,fin=end,paginado=paginado,
                            pagina_actual=pagina_actual,total=total,
                            lista=lista,param="/proyecto/proyecto")
        else:
            if indice  <> None and texto <> "":  
                proyectos = Proyecto.get_proyectos_by_equipo_desarrollo_por_filtro(usuario.idusuario,
                                                                                   indice,texto)
                total = len(proyectos)
            else:   
                proyectos,total = Proyecto.get_proyectos_by_equipo_desarrollo_por_pagina(usuario.idusuario,
                                                                                   start,end)
                #total = len(Proyecto.get_proyectos_by_equipo_desarrollo(usuario.idusuario))
            
                        
            #total = len(proyectos)

        return dict(pagina="proyecto",proyectos=proyectos,
                        nom_proyecto=nom_proyecto,nom_fase=nom_fase,
                        inicio=start,fin=end,paginado=paginado,
                        pagina_actual=pagina_actual,total=total,
                        lista=lista,param="/proyecto/proyecto")
Example #9
0
    def agregar_proyecto(self, *args, **kw):
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

        usuarios = Usuario.get_usuarios()
        tipos_fases = Tipo_Fase.get_tipo_fases()	

        return dict(pagina="agregar_proyecto",values=kw, tipos_fases=tipos_fases,
                         usuarios=usuarios,nom_proyecto=nom_proyecto
                        ,nom_fase=nom_fase)
Example #10
0
    def put_usuario(
        self, idusuario, alias, nombre, apellido, nacionalidad, tipodocumento, nrodoc, email_address, cancel=False, **kw
    ):

        if cancel:
            redirect("/usuario")

        usuario = Usuario.get_user_by_id(int(idusuario))
        usuarios = Usuario.get_alias()
        usuarios.remove(usuario.alias)

        if alias not in usuarios:

            usuario.alias = (alias,)
            usuario.nombre = (nombre,)
            usuario.apellido = (apellido,)
            usuario.nacionalidad = (nacionalidad,)
            usuario.tipodocumento = (tipodocumento,)
            usuario.nrodoc = (nrodoc,)
            usuario.email_address = (email_address,)

            DBSession.flush()
            flash("Usuario modificado!")
            redirect("/usuario")

        else:

            nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
            nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

            values = dict(
                idusuario=idusuario,
                alias=alias,
                nombre=nombre,
                apellido=apellido,
                nacionalidad=nacionalidad,
                tipodocumento=tipodocumento,
                nrodoc=nrodoc,
                email_address=email_address,
            )

            flash("El alias solicitado ya existe!")
            return dict(pagina="editar_usuario", values=values, nom_proyecto=nom_proyecto, nom_fase=nom_fase)
Example #11
0
    def post_cambiar_password(self, clave, clave2, cancel=False):
        """
        Metodo que usa el Id del usuario logeado
        para modificar su password
        """
        if cancel:
            redirect("/usuario")

        var = Variables.get_valor_by_nombre("usuario_actual")
        usuario = Usuario.get_user_by_alias(var)
        usuario._set_password(clave)
        flash("password modificado!")
        redirect("/usuario")
Example #12
0
    def usuario(self, start=0, end=5, indice=None, texto=""):
        """
        Menu para USUARIO
        """
        nom_proyecto = Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase = Variables.get_valor_by_nombre("nombre_fase_actual")

        paginado = 5
        if start <> 0:
            end = int(start.split("=")[1])  # obtiene el fin de pagina
            start = int(start.split("&")[0])  # obtiene el inicio de pagina
        # print start,end

        pagina_actual = ((start % end) / paginado) + 1
        if ((start % end) % paginado) <> 0:
            pagina_actual = pagina_actual + 1

        if indice <> None and texto <> "":
            usuarios = Usuario.get_usuarios_por_filtro(indice, texto, start, end)
            total = len(usuarios)
        else:
            usuarios = Usuario.get_usuarios_por_pagina(start, end)
            total = len(Usuario.get_usuarios())

        lista = ["alias", "nombre", "apellido"]

        return dict(
            pagina="usuario",
            usuarios=usuarios,
            nom_proyecto=nom_proyecto,
            nom_fase=nom_fase,
            inicio=start,
            fin=end,
            paginado=paginado,
            pagina_actual=pagina_actual,
            total=total,
            param="usuario",
            lista=lista,
        )
Example #13
0
    def ingresar_proyecto(self):
        """lista de los  proyectos del usuario
        """
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")	
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")	

        usuario=Usuario.get_user_by_alias(request.identity['repoze.who.userid'])
        proy = Proyecto.get_proyectos()
        proyectos = []
        miembros=Equipo_Desarrollo.get_miembros_by_usuario(usuario.idusuario)

        for miembro in miembros:
            for p in proy:
                if (miembro.proyecto == p.id_proyecto):
                    proyectos.append(p)

        return dict(pagina="ingresar_proyecto",proyectos=proyectos,
                    nom_proyecto=nom_proyecto,nom_fase=nom_fase)
Example #14
0
    def agregar_miembro(self, *args, **kw):
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

        proy=int(Variables.get_valor_by_nombre("proyecto_actual") )
        roles = Rol.get_roles()
        usuarios = Usuario.get_usuarios()

        miembros=Equipo_Desarrollo.get_miembros_by_proyecto(proy)
        fases = Fase.get_fase_by_proyecto(proy)

        if usuarios is not None:
            if not isinstance(usuarios, list):
                usuarios = [usuarios]
        if roles is not None:
            if not isinstance(roles, list):
                roles = [roles]
        if miembros is not None:
            if not isinstance(miembros, list):
                miembros = [miembros]

        for usuario in usuarios:
            for miembro in miembros:
                if usuario.idusuario == miembro.idusuario:
                    usuarios.remove(usuario)

        for rol in roles:
            if rol.nombrerol == "Usuario Basico":
                roles.remove(rol)
            if rol.nombrerol == "Administrador":
                roles.remove(rol)            
        for rol in roles:
            if rol.nombrerol == "Lider Proyecto":        
                roles.remove(rol)



        return dict(pagina="agregar_miembro",values=kw, roles=roles,
                     usuarios=usuarios, fases=fases,nom_proyecto=nom_proyecto
                     ,nom_fase=nom_fase)
Example #15
0
    def salir_proyecto(self):
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")
        condicion=int (Variables.get_valor_by_nombre("rol_anterior"))

        if condicion > 0:
            usuario=Usuario.get_user_by_alias(request.identity['repoze.who.userid'])

            Variables.set_valor_by_nombre("fase_actual",0)
            Variables.set_valor_by_nombre("proyecto_actual",0)
            Variables.set_valor_by_nombre("nombre_proyecto_actual","")
            Variables.set_valor_by_nombre("nombre_fase_actual","")
            Variables.set_valor_by_nombre("usuario_actual","")
            rol=int (Variables.get_valor_by_nombre("rol_anterior") )
            Variables.set_valor_by_nombre("rol_actual",rol)
            Variables.set_valor_by_nombre("rol_anterior",0)
            rol2=Rol.get_rol_by_id(rol)
            usuario.roles=[]
            usuario.roles.append(rol2)
            DBSession.flush()

        redirect('/index')
Example #16
0
    def post_proyecto(self, nombre_proyecto, idusuario, tipos_fases, asmSelect0,
                            descripcion,start=0,end=5,indice=None,texto=""):

        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

        nombres=Proyecto.get_nombres()

        if not isinstance(nombres, list):
            nombres = [nombres]

        if nombre_proyecto not in nombres:
            if idusuario is not None:
                idusuario = int(idusuario)

            if tipos_fases is not None:
                if not isinstance(tipos_fases, list):
                    tipos_fases = [tipos_fases]
    
                tipos_fases = [DBSession.query(Tipo_Fase).get(tipo_fase) 
                                    for tipo_fase in tipos_fases]

            proyecto = Proyecto (nombre_proyecto=nombre_proyecto, 
                                    idusuario=idusuario, 
                                    descripcion=descripcion, 
                                    tipos_fases=tipos_fases,
                                    estado ="Desactivado")
            DBSession.add(proyecto)
            DBSession.flush()

            proy=int(Proyecto.get_ultimo_id())
            cant=1
            lista=[]
            for tipo_fase in tipos_fases:
                fase = Fase (nombre_fase=tipo_fase.nombre_tipo_fase, 
                                id_tipo_fase=tipo_fase.id_tipo_fase, 
                                estado ="Nuevo",proyecto=proy,
                                orden=cant,linea_base="Abierta", 
                                descripcion=tipo_fase.descripcion)

                DBSession.add(fase)
                DBSession.flush()
                lista.append(fase)
                cant+=1

            nom="Lider Proyecto"
            mirol=Rol.get_rol_by_nombre(nom)
            fases2=Fase.get_fase_by_proyecto(proy)
            equipo = Equipo_Desarrollo(proyecto=Proyecto.get_ultimo_id(), 
                                        idusuario=idusuario, 
                                        idrol=mirol.idrol,fases=fases2)

            DBSession.add(equipo)
            DBSession.flush()


            fases,len_fases = Fase.get_fase_by_proyecto_por_pagina(proy,start,end)


            ############
            paginado = 5
            if start <> 0:
                end=int(start.split('=')[1]) #obtiene el fin de pagina
                start=int(start.split('&')[0]) #obtiene el inicio de pagina
            #print start,end
            total = len(Fase.get_fase_by_proyecto(proy))
            pagina_actual = ((start % end) / paginado) + 1
            if ((start % end) % paginado) <> 0:
                pagina_actual = pagina_actual + 1
             
            #roles = Fase.get_fase_by_proyecto_por_pagina(proy,start,end)
            ###########
            param="/fase/fase"
            flash("Proyecto Agregado!")  
            return dict(pagina="../fase/fase", fases=fases,
                                nom_proyecto=nom_proyecto,nom_fase=nom_fase,
                                inicio=start,fin=end,paginado=paginado,
                                pagina_actual=pagina_actual,total=total,
                                param=param)

        else:
            nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
            nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")

            usuarios = Usuario.get_usuarios()
            tipos_fases = Tipo_Fase.get_tipo_fases()	

            flash("Nombre del Proyecto ya existe!")  
            redirect('../proyecto/agregar_proyecto')
Example #17
0
    def editar_miembro(self, id_equipo, *args, **kw):
        nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual")
        nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual")  

        if id_equipo is not None:
            id_equipo=int(id_equipo)

        proy=int(Variables.get_valor_by_nombre("proyecto_actual") )
        equipo = Equipo_Desarrollo.get_miembro_by_id(id_equipo)
        roles = Rol.get_roles()
        usuarios = Usuario.get_usuarios()
        miembros=Equipo_Desarrollo.get_miembros_by_proyecto(proy)
        rol=Rol.get_rol_by_id(equipo.idrol)
        lider=Rol.get_rol_by_nombre("Lider Proyecto")

        if usuarios is not None:
            if not isinstance(usuarios, list):
                usuarios = [usuarios]
        if roles is not None:
            if not isinstance(roles, list):
                roles = [roles]
        if miembros is not None:
            if not isinstance(miembros, list):
                miembros = [miembros]
    
        for rol in roles:
            if rol.nombrerol == "Usuario Basico":
                roles.remove(rol)
            if rol.nombrerol == "Administrador":
                roles.remove(rol)            
        
        if lider in roles:
                if not lider.idrol == equipo.idrol:
                    roles.remove(lider)            

        for usuario in usuarios:
            for miembro in miembros:
                if usuario.idusuario == miembro.idusuario and not (usuario.idusuario
                                            ==equipo.idusuario):
                    usuarios.remove(usuario)


        proy=int(Variables.get_valor_by_nombre("proyecto_actual"))
        fases = Fase.get_fase_by_proyecto(proy)

        fasess = equipo.fases
        fases2 = []
        for fas in fasess:
            fases2.append(fas.id_fase)

        usuario2=equipo.nombre_usuario
        rol2=equipo.nombre_rol

        values = dict(id_equipo=equipo.id_equipo, 
				  nombre_usuario=equipo.nombre_usuario, 
				  nombre_rol=equipo.nombre_rol
		                  )
		                  
        values.update(kw)

        return dict(values=values, usuarios=usuarios, roles=roles , 
                        usuario2=usuario2, rol2=rol2,fases2=fases2, fases=fases,
                        nom_proyecto=nom_proyecto,nom_fase=nom_fase)
Example #18
0
 def listar_usuario(self):
     """Lista usuarios 
     """
     usuarios = Usuario.get_usuarios()
     return dict(pagina="listar_usuario",usuarios=usuarios)