def item2(self,start=0,end=5,indice=None,texto=""): """ Menu para Item """ 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 <> "": fases=Fase.get_fase_by_proyecto_por_filtro(int (Variables.get_valor_by_nombre ("proyecto_actual")), indice,texto ) total = len(fases) else: fases,total=Fase.get_fase_by_proyecto_por_pagina(int (Variables.get_valor_by_nombre ("proyecto_actual")), start,end ) #total = len(Fase.get_fase_by_proyecto(int (Variables.get_valor_by_nombre # ("proyecto_actual")) )) lista = ['nombre','descripcion'] return dict(pagina="listar_fases2",fases=fases,nom_proyecto=nom_proyecto ,nom_fase=nom_fase,inicio=start,fin=end, pagina_actual=pagina_actual,paginado=paginado, total=total,param="../reporte/item2",lista=lista)
def post_delete_fase(self, id_fase, nombre_fase, nombre_tipo_fase, estado, descripcion, **kw): Fase.borrar_by_id(id_fase) DBSession.flush() flash("Fase eliminada!") redirect('/fase/fase')
def put_fase(self, id_fase, nombre_fase, id_tipo_fase, tipos_items, descripcion, asmSelect0, **kw): if id_fase is not None: id_fase=int(id_fase) if id_tipo_fase is not None: id_tipo_fase=int(id_tipo_fase) fase =Fase.get_fase_by_id(id_fase) nombres=Fase.get_nombres_by_id(fase.proyecto) nombres.remove(fase.nombre_fase) if not isinstance(tipos_items, list): tipos_items = [tipos_items] tipos_items = [DBSession.query(Tipo_Item).get(tipo_item) for tipo_item in tipos_items] if nombre_fase not in nombres: fase.nombre_fase = nombre_fase fase.id_tipo_fase=id_tipo_fase fase.estado = fase.estado fase.linea_base = fase.linea_base fase.descripcion = descripcion fase.tipos_items=tipos_items DBSession.flush() flash("Fase modificada!") redirect('/fase/fase') else: nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") id_tipo_fase=fase.id_tipo_fase tipos_fases = Tipo_Fase.get_tipo_fases() tipos = fase.tipos_items lista=[] lista.append(id_tipo_fase) tipos = fase.tipos_items tipos_items2 = [] for tip in tipos: tipos_items2.append(tip.id_tipo_item) values = dict(id_fase=id_fase, nombre_fase=nombre_fase, descripcion=descripcion, ) flash("El nombre de fase solicitado ya existe!") return dict(pagina="editar_fase",values=values, tipos_fases=tipos_fases,tipos_items=tipos_items, tipos_items2=tipos_items2,lista=lista, id_tipo_fase=id_tipo_fase,nom_fase=nom_fase, nom_proyecto= nom_proyecto )
def put_seleccionar_tipo(self, id_fase, nombre_fase, id_tipo_fase, tipos_items, descripcion, asmSelect0, nombre_tipo_fase,**kw): if id_fase is not None: id_fase=int(id_fase) if id_tipo_fase is not None: id_tipo_fase=int(id_tipo_fase) fase = Fase.get_fase_by_id(id_fase) if not isinstance(tipos_items, list): tipos_items = [tipos_items] tipos_items = [DBSession.query(Tipo_Item).get(tipo_item) for tipo_item in tipos_items] fase.nombre_fase = nombre_fase fase.id_tipo_fase=id_tipo_fase fase.estado = fase.estado fase.linea_base = fase.linea_base fase.descripcion = descripcion fase.tipos_items=tipos_items DBSession.flush() flash("Tipos Item agregados!") redirect('/proyecto/proyecto')
def editar_fase(self,id_fase,*args, **kw): nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") if id_fase is not None: id_fase=int(id_fase) tipos_fases = Tipo_Fase.get_tipo_fases() fase = Fase.get_fase_by_id(id_fase) tipos_items = Tipo_Item.get_tipos_items() id_tipo_fase=int(fase.id_tipo_fase) lista=[] lista.append(id_tipo_fase) tipos = fase.tipos_items tipos_items2 = [] for tip in tipos: tipos_items2.append(tip.id_tipo_item) if request.method != 'PUT': values = dict(id_fase=fase.id_fase, nombre_fase=fase.nombre_fase, descripcion=fase.descripcion, ) return dict(pagina="editar_fase",values=values,tipos_fases=tipos_fases, tipos_items=tipos_items,tipos_items2=tipos_items2, lista=lista,nom_fase=nom_fase, nom_proyecto= nom_proyecto )
def listar_fase(self): """Lista fases """ nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") fases=Fase.get_fase_by_proyecto(int (Variables.get_valor_by_nombre ("proyecto_actual")) ) return dict(pagina="listar_fase",fases=fases,nom_proyecto=nom_proyecto ,nom_fase=nom_fase)
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 eliminar_fase(self,id_fase, *args, **kw): nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") if id_fase is not None: id_fase=int(id_fase) fase2 = Fase.get_fase_by_id(id_fase) values = dict(id_fase=fase2.id_fase, nombre_fase=fase2.nombre_fase, nombre_tipo_fase=fase2.nombre_tipo_fase, estado=fase2.estado, descripcion=fase2.descripcion, ) return dict(pagina="eliminar_fase",values=values, nom_proyecto=nom_proyecto,nom_fase=nom_fase)
def post_fase(self, nombre_fase, id_tipo_fase, tipos_items, descripcion, asmSelect0): """ Permite agregar una nueva fase al proyecto. """ proyecto=int(Variables.get_valor_by_nombre("proyecto_actual")) nombres=Fase.get_nombres_by_id(proyecto) if not isinstance(nombres, list): nombres = [nombres] if nombre_fase not in nombres: if id_tipo_fase is not None: id_tipo_fase = int(id_tipo_fase) if tipos_items is not None: if not isinstance(tipos_items, list): tipos_items = [tipos_items] tipos_items = [DBSession.query(Tipo_Item).get(tipo_item) for tipo_item in tipos_items] fase = Fase (nombre_fase=nombre_fase, id_tipo_fase=id_tipo_fase, estado="nuevo", linea_base="abierta", descripcion=descripcion,tipos_items=tipos_items, proyecto=0,orden=0) DBSession.add(fase) DBSession.flush() flash("Fase agregada!") redirect('/fase/fase') else: nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") tipos_fases = Tipo_Fase.get_tipo_fases() tipos_items = Tipo_Item.get_tipos_items() values = dict(nombre_fase=nombre_fase, descripcion=descripcion, ) flash("Nombre de Fase es repetido!") return dict(pagina="agregar_fase",values=values, tipos_fases=tipos_fases, tipos_items=tipos_items,nom_proyecto=nom_proyecto ,nom_fase=nom_fase)
def seleccionar_fase(self,id_fase,start=0,end=5,indice=None,texto="",*kw,**args): """ Selecciona una fase de un proyecto. """ if id_fase is not None: id_fase=int(id_fase) nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") proy_act=int (Variables.get_valor_by_nombre("proyecto_actual")) Variables.set_valor_by_nombre("fase_actual",id_fase) fase=Fase.get_fase_by_id(id_fase) Variables.set_valor_by_nombre("nombre_fase_actual",fase.nombre_fase) nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") #items = Item.get_item_proy_fase( proy_act, id_fase) #id_fase=int(Variables.get_valor_by_nombre("fase_actual")) #items = Item.get_item_activados_by_fase(id_fase) 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(Privilegios.get_privilegios()) pagina_actual = ((start % end) / paginado) + 1 if ((start % end) % paginado) <> 0: pagina_actual = pagina_actual + 1 if indice <> None and texto <> "": items = Item.get_item_activados_by_fase_por_filtro(id_fase,indice,texto) total = len(privilegios) else: items = Item.get_item_activados_by_fase_por_pagina(id_fase,start,end) total = len(Item.get_item_activados_by_fase(id_fase)) lista = ['nombre','descripcion'] param = "/fase/seleccionar_fase?id_fase=%s" % id_fase items = Item.get_item_activados_by_fase(id_fase) return dict(pagina="menu_item",items=items,nom_proyecto=nom_proyecto ,nom_fase=nom_fase,paginado=paginado,inicio=start, fin=end,pagina_actual=pagina_actual,total=total, param=param,lista=lista)
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 agregar_item(self, *args, **kw): nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") id_fase=int(Variables.get_valor_by_nombre("fase_actual")) fase = Fase.get_fase_by_id(id_fase) orden=str(fase.orden) padres=Relaciones.get_padres_habilitados(fase.orden) master=[] if (fase.orden ==1): master.append(Item.get_master().id_item) else: master.append(0) tipos_items=fase.tipos_items return dict(pagina="agregar_item",values=kw, tipos_items=tipos_items ,nom_proyecto=nom_proyecto,nom_fase=nom_fase,padres=padres, master=master,orden=orden)
def ver_tipos_items(self,id_fase): """Lista privilegios """ nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") if id_fase is not None: id_fase=int(id_fase) fase=Fase.get_fase_by_id(id_fase) values = dict(id_fase=fase.id_fase, nombre_fase=fase.nombre_fase, descripcion=fase.descripcion ) tipos =fase.tipos_items tipos_items = [] for t in tipos: tipos_items.append(t) return dict(pagina="listar_mis_tipos_items",tipos_items=tipos_items, nom_proyecto=nom_proyecto,nom_fase=nom_fase, values=values)
def ver_fases(self,id_proyecto): """Lista privilegios """ 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) proyecto=Proyecto.get_proyecto_by_id(id_proyecto) values = dict(id_proyecto=proyecto.id_proyecto, nombre_proyecto=proyecto.nombre_proyecto, descripcion=proyecto.descripcion ) fas = Fase.get_fase_by_proyecto(int (id_proyecto) ) 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_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)
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 put_item(self, id_item, nombre_item, nombre_tipo_item, complejidad, id_campos,nombre_campo,tipo_campo,dato, padres,asmSelect0,adjunto=None,adjuntados=None): if id_item is not None: id_item=int(id_item) item = Item.get_item_by_id(id_item) items= Item.get_nombres_items() items.remove(item.nombre_item) if nombre_item not in items: if id_campos is not None: if not isinstance(id_campos, list): id_campos = [id_campos] if nombre_campo is not None: if not isinstance(nombre_campo, list): nombre_campo = [nombre_campo] if tipo_campo is not None: if not isinstance(tipo_campo, list): tipo_campo = [tipo_campo] if dato is not None: if not isinstance(dato, list): dato = [dato] if complejidad is not None: complejidad=int(complejidad) if adjuntados is not None: if not isinstance(adjuntados, list): adjuntados = [adjuntados] if len(adjuntados)<1: adjuntados =[] if adjunto is not None: if not isinstance(adjunto, list): adjunto = [adjunto] if padres is not None: if not isinstance(padres, list): padres = [padres] padres = [DBSession.query(Item).get(padre) for padre in padres] item.estado_oculto="Desactivado" DBSession.flush() version=item.version+1 item2 = Item (nombre_item=nombre_item , codigo_item=item.codigo_item , id_tipo_item=item.id_tipo_item , complejidad=complejidad, estado = item.estado , orden=item.orden, fase=int(Variables.get_valor_by_nombre ("fase_actual")), proyecto=int(Variables.get_valor_by_nombre ("proyecto_actual")), creado_por=Variables.get_valor_by_nombre ("usuario_actual"), fecha_creacion = time.ctime() , version =version ,estado_oculto="Activo", lb_parcial=item.lb_parcial,lb_general=item.lb_general) DBSession.add(item2) DBSession.flush() indice=0 id_item=Item.get_ultimo_id() for c in id_campos: if len(c)>0: camp =Campos(id_item=id_item, nombre_campo=nombre_campo[indice], tipo_campo=tipo_campo[indice], dato=dato[indice]) DBSession.add(camp) indice+=1 mayor =Item.get_ultimo_id() relacion = Relaciones (id_item_hijo=mayor,padres=padres) if adjunto is not None: for adj in adjunto: if len(str(adj))==0: break if len(adj.filename)==0: break data = adj.file.read() encode=base64.b64encode(data) var=binascii.a2b_base64(encode) adj = Adjunto (id_item=mayor, archivo=var, nombre_archivo=adj.filename,version=item2.version, estado_oculto=item2.estado_oculto) DBSession.add(adj) DBSession.flush() adjuntos=Adjunto.get_adjuntos_by_item(item.id_item) for adjun in adjuntos: if adjuntados is not None: if adjun.nombre_archivo in adjuntados: adj2 = Adjunto(id_item=mayor,archivo=adjun.archivo, nombre_archivo=adjun.nombre_archivo, version=item2.version, estado_oculto=item2.estado_oculto ) DBSession.add(adj2) DBSession.flush() adjun.estado_oculto=item.estado_oculto DBSession.flush() flash("Item Modificado!") redirect('/item/item') else: nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") padres=Item.get_item_activados() #cambiar esta funcion y solo traer lo que no forman ciclos id_fase=int(Variables.get_valor_by_nombre("fase_actual")) fase = Fase.get_fase_by_id(id_fase) tipos_items=fase.tipos_items lista=[] lista.append(item.nombre_tipo_item ) item = DBSession.query(Item).get(id_item) values = dict(id_item=id_item, nombre_item=nombre_item, codigo_item=item.codigo_item, complejidad=complejidad, ) adjuntos=Adjunto.get_adjuntos_by_item(item.id_item) adjuntados=[] for adj in adjuntos: var = dict(id_adjunto=adj.id_adjunto, nombre_archivo=adj.nombre_archivo) adjuntados.append(var) padres2=[] padr=Relaciones.get_mis_padres(id_item) for pad in padr: padres2.append(pad.id_item) flash("EL NOMBRE DEL ITEM YA ESXISTE!") return dict(pagina="editar_item",values=values,adjuntados=adjuntados, nom_proyecto=nom_proyecto,nom_fase=nom_fase, lista=lista,tipos_items=tipos_items,padres=padres, padres2=padres2)
def editar_item(self,id_item,*args, **kw): nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") id_fase=int (Variables.get_valor_by_nombre("fase_actual") ) if id_item is not None: id_item=int(id_item) id_fase=int(Variables.get_valor_by_nombre("fase_actual")) item = Item.get_item_by_id(id_item) fase = Fase.get_fase_by_id(id_fase) orden=str(fase.orden) padres=Relaciones.get_padres_habilitados(fase.orden) hijos=Relaciones.get_sucesores(id_item) master=[] if (fase.orden ==1): master.append(Item.get_master().id_item) else: master.append(0) for hijo in hijos: #evita que yo o algun sucesor sea mi nuevo padre if hijo in padres: padres.remove(hijo) for padre in padres: if padre.id_item == id_item: padres.remove(padre) tipos_items=fase.tipos_items lista=[] lista.append(item.id_tipo_item ) values = dict(id_item=item.id_item, nombre_item=item.nombre_item, nombre_tipo_item=item.nombre_tipo_item, codigo_item=item.codigo_item, estado=item.estado, complejidad=item.complejidad, ) adjuntos=Adjunto.get_adjuntos_by_item(item.id_item) adjuntados=[] for adj in adjuntos: var = dict(id_adjunto=adj.id_adjunto, nombre_archivo=adj.nombre_archivo) adjuntados.append(var) padres2=[] padr=Relaciones.get_mis_padres(id_item) for pad in padr: padres2.append(pad.id_item) campos= Campos.get_campos_by_item(id_item) return dict(pagina="editar_item",values=values,adjuntados=adjuntados, nom_proyecto=nom_proyecto,nom_fase=nom_fase, lista=lista,tipos_items=tipos_items,padres=padres, padres2=padres2,master=master,orden=orden,campos=campos)
def post_item(self, nombre_item, complejidad, adjunto, id_tipo_item, asmSelect0,padres=None): items= Item.get_nombres_items() if nombre_item not in items: if id_tipo_item is not None: id_tipo_item = int(id_tipo_item) if complejidad is not None: complejidad=int(complejidad) if adjunto is not None: if not isinstance(adjunto, list): adjunto = [adjunto] if padres is not None: if not isinstance(padres, list): padres = [padres] padres = [DBSession.query(Item).get(padre) for padre in padres] #---------------------------------------- tipo_item =Tipo_Item.get_tipo_item_by_id(id_tipo_item) pre_codigo=tipo_item.codigo_tipo_item proy_act=int (Variables.get_valor_by_nombre("proyecto_actual")) fas_act=int (Variables.get_valor_by_nombre("fase_actual")) fase=Fase.get_fase_by_id(fas_act) codigo_item=Item.crear_codigo(id_tipo_item, pre_codigo,proy_act,fas_act) item = Item (nombre_item=nombre_item, codigo_item=codigo_item, id_tipo_item=id_tipo_item, complejidad=complejidad, estado = "nuevo", fase=fas_act,proyecto=proy_act,orden=fase.orden, creado_por=Variables.get_valor_by_nombre("usuario_actual"), fecha_creacion = time.ctime(), version =1 , estado_oculto="Activo",lb_parcial=0,lb_general=0 ) DBSession.add(item) DBSession.flush() #---------------------------------------- for padre in padres: if padre.nombre_item == "master": padres.remove(padre) mayor =int(Item.get_ultimo_id()) relacion = Relaciones (id_item_hijo=mayor,padres=padres) #---------------------------------------- id_item2=Item.get_ultimo_id() tipos_campos=Tipo_Campos.get_campos_by_tipo_item(id_tipo_item) for tipo in tipos_campos: camp =Campos(id_item=id_item2, nombre_campo=tipo.nombre_campo, tipo_campo= tipo.valor_campo) DBSession.add(camp) DBSession.flush() #---------------------------------------- if adjunto is not None: for adj in adjunto: if len(str(adj))==0: break if len(adj.filename)==0: break data = adj.file.read() encode=base64.b64encode(data) var=binascii.a2b_base64(encode) adj = Adjunto (id_item=mayor, archivo=var, nombre_archivo=adj.filename, version =item.version , estado_oculto=item.estado_oculto) DBSession.add(adj) DBSession.flush() flash("Item Agregado!") redirect('/item/item') else: nom_fase=Variables.get_valor_by_nombre("nombre_fase_actual") nom_proyecto=Variables.get_valor_by_nombre("nombre_proyecto_actual") id_fase=int(Variables.get_valor_by_nombre("fase_actual")) padres=Item.get_item_activados() #cambiar esta funcion y solo traer lo que no forman ciclos fase = Fase.get_fase_by_id(id_fase) tipos_items=fase.tipos_items values = dict(nombre_item=nombre_item, id_tipo_item=id_tipo_item, complejidad=complejidad, ) flash("Nombre de Item ya existente!") return dict(pagina="agregar_item",values=values, tipos_items=tipos_items,nom_proyecto=nom_proyecto, nom_fase=nom_fase,padres=padres)
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_fase(self): """Lista fases """ fases = Fase.get_fase() return dict(pagina="listar_fase",fases=fases)