def equipo(self,start=0,end=5,indice=None,texto=""): """ Menu para Equipo de Desarrollo """ nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") valor=int(Variables.get_valor_by_nombre("proyecto_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 <> "": equipos = Equipo_Desarrollo.get_miembros_by_proyecto_por_filtro(valor,indice,texto) total = len(equipos) else: equipos = Equipo_Desarrollo.get_miembros_by_proyecto_por_pagina(valor,start,end) total = len(Equipo_Desarrollo.get_miembros_by_proyecto(valor)) lista = ['nombre'] return dict(pagina="equipo",equipos=equipos, nom_proyecto=nom_proyecto,nom_fase=nom_fase, inicio=start,fin=end,paginado=paginado, pagina_actual=pagina_actual,total=total, param="/miembro/equipo",lista=lista)
def post_delete_miembro(self, id_equipo, nombre_usuario, nombre_rol, **kw): if id_equipo is not None: id_equipo=int(id_equipo) Equipo_Desarrollo.borrar_by_id(id_equipo) DBSession.flush() flash("Miembro eliminado!") redirect('/equipo/equipo')
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 listar_miembro(self): """Lista equipos """ nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") valor=int( Variables.get_valor_by_nombre("proyecto_actual")) equipos = Equipo_Desarrollo.get_miembros_by_proyecto(valor) return dict(pagina="listar_miembro",equipos=equipos, nom_proyecto=nom_proyecto,nom_fase=nom_fase)
def get_proyectos_by_equipo_desarrollo(self,idusuario): """ Obtiene los proyectos en los que el usuario enviado como parámetro forma parte. """ proy = DBSession.query(Proyecto).all() proyectos = [] miembros=Equipo_Desarrollo.get_miembros_by_usuario(idusuario) for miembro in miembros: for p in proy: if (miembro.proyecto == p.id_proyecto): proyectos.append(p) return proyectos
def get_proyectos_by_equipo_desarrollo(self, idusuario): """ Obtiene la lista de todos los roles registrados en el sistema """ proy = DBSession.query(Proyecto).all() proyectos = [] miembros = Equipo_Desarrollo.get_miembros_by_usuario(idusuario) for miembro in miembros: for p in proy: if miembro.proyecto == p.id_proyecto: proyectos.append(p) return proyectos
def eliminar_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) equipo = Equipo_Desarrollo.get_miembro_by_id(id_equipo) values = dict(id_equipo=equipo.id_equipo, nombre_usuario=equipo.nombre_usuario, nombre_rol=equipo.nombre_rol ) return dict(pagina="eliminar_miembro",values=values, nom_proyecto=nom_proyecto,nom_fase=nom_fase)
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 ver_fases(self,id_equipo): """Lista """ 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) miembro=Equipo_Desarrollo.get_miembro_by_id(int(id_equipo)) values = dict(id_equipo=miembro.id_equipo, nombre_usuario=miembro.nombre_usuario, nombre_rol=miembro.nombre_rol ) fas = miembro.fases fases = [] for f in fas: fases.append(f) return dict(pagina="listar_mis_fases",fases=fases, nom_proyecto=nom_proyecto,nom_fase=nom_fase, values=values)
def put_miembro(self, id_equipo, idusuario, idrol, asmSelect0, fases, **kw): equipo = Equipo_Desarrollo.get_miembro_by_id(id_equipo) if id_equipo is not None: id_equipo=int(id_equipo) if idusuario is not None: idusuario = int(idusuario) if idrol is not None: idrol = int(idrol) if not isinstance(fases, list): fases = [fases] fases = [DBSession.query(Fase).get(fase) for fase in fases] equipo.idusuario = idusuario equipo.idrol=idrol equipo.fases DBSession.flush() flash("Miembro Modificado!") redirect('/equipo/equipo')
def post_delete_proyecto(self, id_proyecto, nombre_proyecto, descripcion, tipos_fases, **kw): if id_proyecto is not None: id_proyecto=int(id_proyecto) proyecto = Proyecto.get_proyecto_by_id(id_proyecto) miembros=Equipo_Desarrollo.get_miembros_by_proyecto(proyecto.idusuario) for miembro in miembros: id_miembro=miembro.id_equipo Equipo_Desarrolloborrar_by_id(id_miembro) DBSession.flush() fases=Fase.get_fase_by_proyecto(id_proyecto) for fase in fases: Fase.borrar_by_id(fase.id_fase) DBSession.flush() Proyecto.borrar_by_id(id_proyecto) DBSession.flush() flash("Proyecto eliminado!") redirect('/proyecto/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 put_proyecto(self, id_proyecto, nombre_proyecto, idusuario, descripcion, asmSelect0, tipos_fases,**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) if idusuario is not None: idusuario=int(idusuario) nombres=Proyecto.get_nombres() proyecto = DBSession.query(Proyecto).get(id_proyecto) if not isinstance(nombres, list): nombres = [nombres] nombres.remove(proyecto.nombre_proyecto) if nombre_proyecto not in nombres: miembro=Equipo_Desarrollo.get_miembro_by_usuario_by_proyecto( proyecto.idusuario,proyecto.id_proyecto) id_miembro=miembro.id_equipo Equipo_Desarrollo.borrar_by_id(id_miembro) DBSession.flush() fases=Fase.get_fase_by_proyecto(proyecto.id_proyecto) for fase in fases: Fase.borrar_by_id(fase.id_fase) DBSession.flush() 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] cant=1 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=proyecto.id_proyecto,orden=cant, linea_base="Abierta", descripcion=tipo_fase.descripcion) DBSession.add(fase) DBSession.flush() cant+=1 proyecto.idusuario = idusuario proyecto.nombre_proyecto=nombre_proyecto proyecto.descripcion = descripcion proyecto.tipos_fases = tipos_fases proyecto.estado="Desactivado" DBSession.flush() fases = Fase.get_fase_by_proyecto(Proyecto.get_ultimo_id()) nom="Lider Proyecto" mirol=Rol.get_rol_by_nombre(nom) equipo = Equipo_Desarrollo(proyecto=Proyecto.get_ultimo_id(), idusuario=idusuario, idrol=mirol.idrol,fases=fases) DBSession.add(equipo) DBSession.flush() fases = Fase.get_fase_by_proyecto(proyecto.id_proyecto) flash("Proyecto Modificado!") return dict(pagina="/fase/listar_fase", fases=fases, nom_proyecto=nom_proyecto,nom_fase=nom_fase) else: flash("nombre proyecto repetido!") redirect('/proyecto/editar_proyecto?id_proyecto=%d' % id_proyecto)