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)
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, )
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")
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")
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('/')
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("/")
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)
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")
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)
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)
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")
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, )
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)
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)
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')
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')
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)
def listar_usuario(self): """Lista usuarios """ usuarios = Usuario.get_usuarios() return dict(pagina="listar_usuario",usuarios=usuarios)