def GraficoFase(self, id_fase): tipos = DBSession.query(TipoItem.id_tipoitem).filter(TipoItem.id_fase==id_fase).all() itemfase = [] # todos los items que estan en la fase for j in tipos: item = DBSession.query(Item.id_item).filter(Item.id_tipoitem==j.id_tipoitem) itemfase.extend(item) listitems = [] grafo = digraph() for nodo in itemfase: grafo.add_nodes([nodo.id_item]) #~ buscar relaciones de los nodos... (items) for nodo in itemfase: listitems = listitems + [nodo.id_item] #agrega el id del item a la lista relaciones = DBSession.query(Relacion).\ filter(Relacion.tiporelacion=="Padre Hijo").\ filter(Relacion.id_item1.in_(listitems)).\ filter(Relacion.id_item2.in_(listitems)).all() for relacion in relaciones: grafo.add_edge((relacion.id_item1,relacion.id_item2)) return grafo
def new(self, id_fase, method='', **kw): identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario rol_lider = DBSession.query(RolUsuario).filter(RolUsuario.id_usuario==idi).\ filter(Rol.group_name=="lider").filter(Rol.id_rol == RolUsuario.id_rol).all() if (len(rol_lider) == 0): crear = DBSession.query(Usperfa).filter(Usperfa.id_fase==id_fase).\ filter(Permiso.permission_name=="crear_linea_base").\ filter(Usperfa.id_permiso==Permiso.id_permiso).\ filter(RolUsuario.id_usuario==idi).all() if len(crear) == 0: flash("No posee los permisos para crear linea base", 'error') redirect("/configuracion/linea_base/error") else: ItemsFieldSelect.id_fase = id_fase new_lineabase_form = NewLineaBaseForm( DBSession) #new_lineabase_form tmpl_context.widget = new_lineabase_form else: ItemsFieldSelect.id_fase = id_fase new_lineabase_form = NewLineaBaseForm( DBSession) #new_lineabase_form tmpl_context.widget = new_lineabase_form return dict(value=kw)
def list(self, id_fase): identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario rol_lider = DBSession.query(RolUsuario).filter(RolUsuario.id_usuario==idi).\ filter(Rol.group_name=="lider").filter(Rol.id_rol == RolUsuario.id_rol).all() if (len(rol_lider) == 0): listar = DBSession.query(Usperfa).filter(Usperfa.id_fase==id_fase).\ filter(Permiso.permission_name=="ver_linea_base").\ filter(Usperfa.id_permiso==Permiso.id_permiso).\ filter(RolUsuario.id_usuario==idi).all() if (len(listar) == 0): flash("No posee los permisos para ver las lineas bases", 'error') redirect("/configuracion/linea_base/error") else: self.id_fase = id_fase fase = DBSession.query(Fase).get(id_fase) tmpl_context.widget = list_lineabase value = list_lineabase_filler.get_value(id_fase=id_fase) else: self.id_fase = id_fase fase = DBSession.query(Fase).get(id_fase) tmpl_context.widget = list_lineabase value = list_lineabase_filler.get_value(id_fase=id_fase) return dict(fase=fase, value=value)
def new(self, id_fase, method='', **kw): """Metodo que trae el formulario para crear un item nuevo""" identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario rol_lider = DBSession.query(RolUsuario).filter(RolUsuario.id_usuario==idi).\ filter(Rol.group_name=="lider").filter(Rol.id_rol == RolUsuario.id_rol).all() if(len(rol_lider)==0): crear = DBSession.query(Usperfa).filter(Usperfa.id_fase==id_fase).\ filter(Permiso.permission_name=="crear_item").\ filter(Usperfa.id_permiso==Permiso.id_permiso).\ filter(RolUsuario.id_usuario==idi).all() if len(crear)==0: flash("No posee los permisos para crear item en la fase",'error') redirect("/desarrollo/item/error") else: new_item_form.tipo_item.id_fase = id_fase tmpl_context.widget = new_item_form else: new_item_form.tipo_item.id_fase = id_fase tmpl_context.widget = new_item_form return dict(id_fase = id_fase, value=kw)
def new(self, id_fase, method='', **kw): identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario rol_lider = DBSession.query(RolUsuario).filter(RolUsuario.id_usuario==idi).\ filter(Rol.group_name=="lider").filter(Rol.id_rol == RolUsuario.id_rol).all() if(len(rol_lider)==0): crear = DBSession.query(Usperfa).filter(Usperfa.id_fase==id_fase).\ filter(Permiso.permission_name=="crear_linea_base").\ filter(Usperfa.id_permiso==Permiso.id_permiso).\ filter(RolUsuario.id_usuario==idi).all() if len(crear)==0: flash("No posee los permisos para crear linea base",'error') redirect("/configuracion/linea_base/error") else: ItemsFieldSelect.id_fase = id_fase new_lineabase_form = NewLineaBaseForm(DBSession)#new_lineabase_form tmpl_context.widget = new_lineabase_form else: ItemsFieldSelect.id_fase = id_fase new_lineabase_form = NewLineaBaseForm(DBSession)#new_lineabase_form tmpl_context.widget = new_lineabase_form return dict(value=kw)
def list(self, id_fase): identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario rol_lider = DBSession.query(RolUsuario).filter(RolUsuario.id_usuario==idi).\ filter(Rol.group_name=="lider").filter(Rol.id_rol == RolUsuario.id_rol).all() if(len(rol_lider)==0): listar = DBSession.query(Usperfa).filter(Usperfa.id_fase==id_fase).\ filter(Permiso.permission_name=="ver_linea_base").\ filter(Usperfa.id_permiso==Permiso.id_permiso).\ filter(RolUsuario.id_usuario==idi).all() if (len(listar)==0): flash("No posee los permisos para ver las lineas bases",'error') redirect("/configuracion/linea_base/error") else: self.id_fase = id_fase fase = DBSession.query(Fase).get(id_fase) tmpl_context.widget = list_lineabase value = list_lineabase_filler.get_value(id_fase=id_fase) else: self.id_fase = id_fase fase = DBSession.query(Fase).get(id_fase) tmpl_context.widget = list_lineabase value = list_lineabase_filler.get_value(id_fase=id_fase) return dict(fase=fase, value=value)
def getPadre(self, item): relacion = DBSession.query(Relacion).\ filter(Relacion.id_item2==item.id_item).\ filter(Relacion.tiporelacion=="Padre Hijo").first() padre = DBSession.query(Item.id_item) return padre
def put(self, id='', **kw): del kw['sprox_id'] rol = DBSession.query(Rol).get(int(id)) rol.group_name = kw['group_name'] rol.descripcion = kw['descripcion'] rol.permissions = [] for i in kw['permissions']: p = DBSession.query(Permiso).get(i) rol.permissions.append(p) DBSession.merge(rol) flash('Rol modificado') redirect("/administracion/rol/list")
def put(self, id='', **kw): del kw['sprox_id'] rol = DBSession.query(Rol).get(int(id)) rol.group_name = kw['group_name'] rol.descripcion = kw['descripcion'] rol.permissions=[] for i in kw['permissions'] : p = DBSession.query(Permiso).get(i) rol.permissions.append(p) DBSession.merge(rol) flash('Rol modificado') redirect("/administracion/rol/list")
def CalculoImpacto(self, id_item): """Metodo invocado calcular el impacto""" item = DBSession.query(Item).get(id_item) fase = item.tipo_item.id_fase proy = DBSession.query(Fase.id_proyecto).filter(Fase.id_fase==fase).one() grafo = self.GraficoProyecto(proy) costoF, listaF = self.Impacto(grafo, id_item) relaciones = DBSession.query(Relacion).\ filter((Relacion.id_item1).in_(listaF)).all() grafico = self.GraficarGrafo(grafo, proy) flash('Calculo de Impacto del item ' +str(id_item) + ' , es '+str(costoF)) return dict(relaciones=relaciones)
def put(self, id='', **kw): del kw['sprox_id'] fase = DBSession.query(Fase).get(int(id)) fase.nombre_fase = kw['nombre_fase'] fase.descripcion = kw['descripcion'] #fase.proyectos=[] for f in kw['proyectos']: p = DBSession.query(Proyecto).get(f) fase.proyectos.append(p) DBSession.merge(fase) flash('Fase modificada') redirect("/desarrollo/fase/list")
def put(self, id='', **kw): del kw['sprox_id'] proyecto = DBSession.query(Proyecto).get(id) proyecto.nombre_proyecto = kw['nombre_proyecto'] proyecto.descripcion = kw['descripcion'] proyecto.fecha_inicio = kw['fecha_inicio'] proyecto.usuarios = [] for i in kw['usuarios']: p = DBSession.query(Usuario).get(i) proyecto.usuarios.append(p) DBSession.merge(proyecto) flash('Proyecto modificado') redirect("/administracion/proyecto/list")
def put(self, id='', **kw): del kw['sprox_id'] proyecto = DBSession.query(Proyecto).get(id) proyecto.nombre_proyecto = kw['nombre_proyecto'] proyecto.descripcion = kw['descripcion'] proyecto.fecha_inicio = kw['fecha_inicio'] proyecto.usuarios=[] for i in kw['usuarios'] : p = DBSession.query(Usuario).get(i) proyecto.usuarios.append(p) DBSession.merge(proyecto) flash('Proyecto modificado') redirect("/administracion/proyecto/list")
def put(self, id='', **kw): del kw['sprox_id'] detalletipoitem = DBSession.query(DetalleTipoItem).get(int(id)) detalletipoitem.nombre_atributo = kw['nombre_atributo'] detalletipoitem.tipo_dato = kw['tipo_dato'] DBSession.merge(detalletipoitem) flash('Detalle de Tipo de item modificado') redirect("/desarrollo/detalle_tipo_item/list")
def edit(self, id,**kw): detalletipoitem = DBSession.query(DetalleTipoItem).get(id) tmpl_context.widget = edit_detalletipoitem_form kw['id_detalletipoitem'] = detalletipoitem.id_detalletipoitem kw['id_tipoitem'] = detalletipoitem.id_tipoitem kw['nombre_atributo'] = detalletipoitem.nombre_atributo kw['tipo_dato'] = detalletipoitem.tipo_dato return dict(value=kw)
def put(self, id='', **kw): del kw['sprox_id'] relacion = DBSession.query(Relacion).get(int(id)) relacion.descripcion = kw['descripcion'] relacion.tiporelacion = kw['tiporelacion'] DBSession.merge(relacion) flash('Relacion modificada') redirect("/desarrollo/relacion/list")
def edit(self, id,**kw): fase = DBSession.query(Fase).get(id) tmpl_context.widget = edit_fase_form kw['id_fase'] = fase.id_fase kw['cod_fase'] = fase.cod_fase kw['nombre_fase'] = fase.nombre_fase kw['descripcion'] = fase.descripcion return dict(value=kw)
def edit(self, id, **kw): detalletipoitem = DBSession.query(DetalleTipoItem).get(id) tmpl_context.widget = edit_detalletipoitem_form kw['id_detalletipoitem'] = detalletipoitem.id_detalletipoitem kw['id_tipoitem'] = detalletipoitem.id_tipoitem kw['nombre_atributo'] = detalletipoitem.nombre_atributo kw['tipo_dato'] = detalletipoitem.tipo_dato return dict(value=kw)
def put(self, _method='', id=0, **kw): del kw['sprox_id'] tipoitem = DBSession.query(TipoItem).get(int(id)) tipoitem.nombre_tipoitem = kw['nombre_tipoitem'] tipoitem.descripcion = kw['descripcion'] DBSession.merge(tipoitem) flash('Tipo de Item modificado') redirect("/desarrollo/tipo_item/list")
def edit(self, id,**kw): relacion = DBSession.query(Relacion).get(id) tmpl_context.widget = edit_relacion_form kw['id_relacion'] = relacion.id_relacion kw['cod_relacion'] = relacion.cod_relacion kw['descripcion'] = relacion.descripcion kw['tiporelacion'] = relacion.tiporelacion return dict(value=kw)
def edit(self, id, **kw): relacion = DBSession.query(Relacion).get(id) tmpl_context.widget = edit_relacion_form kw['id_relacion'] = relacion.id_relacion kw['cod_relacion'] = relacion.cod_relacion kw['descripcion'] = relacion.descripcion kw['tiporelacion'] = relacion.tiporelacion return dict(value=kw)
def post(self, _method='', **kw): del kw['sprox_id'] fase = Fase() #fase.id_fase = kw['id_fase']#fase.fases=[] for f in kw['proyectos']: p = DBSession.query(Proyecto).get(f) fase.proyectos.append(p) fase.cod_fase = kw['cod_fase'] fase.nombre_fase = kw['nombre_fase'] fase.descripcion = kw['descripcion'] #fase.fases=[] for f in kw['proyectos']: p = DBSession.query(Proyecto).get(f) fase.proyectos.append(p) DBSession.add(fase) flash('Fase creada') redirect('/desarrollo/fase/list')
def edit(self, id,**kw): tipoitem = DBSession.query(TipoItem).get(id) tmpl_context.widget = edit_tipoitem_form kw['id_tipoitem'] = tipoitem.id_tipoitem kw['cod_tipoitem'] = tipoitem.cod_tipoitem kw['nombre_tipoitem'] = tipoitem.nombre_tipoitem kw['descripcion'] = tipoitem.descripcion kw['fase'] = tipoitem.fase return dict(value=kw)
def GraficoProyecto(self, id_proyecto): fases = DBSession.query(Fase).filter(Fase.id_proyecto==id_proyecto).all() grafo = digraph() tipos = [] items = [] listitem = [] ###Aca empieza lo que cambie ###### colores = ['blue','cyan','green','yellow','orange','purple','gray', 'black'] indexColor = 0 for i in fases: # todos los items que estan en la fase tipo = DBSession.query(TipoItem.id_tipoitem).filter(TipoItem.id_fase==i.id_fase) #tipos.extend(tipo) for j in tipos: item = DBSession.query(Item.id_item).filter(Item.id_tipoitem==j.id_tipoitem) #items.extend(item) for k in items: # por cada item que este en la fase agregamos los nodos del mismo color #Agrego el nodo grafo.add_node(int(k.id_item),attrs=[('color', colores[indexColor])]) #Agrego a mi lista grobal de items, para luego sacar las relaciones listitem = listitem + [k.id_item] # Cambio el color para la siguiente fase if indexColor ==7: indexColor = 0 else: indexColor = indexColor + 1 ###Aca termina lo que cambie ###### # de la lista final de items obtiene las relaciones relaciones = DBSession.query(Relacion).\ filter((Relacion.id_item1).in_(listitem)).all() for r in relaciones: #agrega la aristas al grafo grafo.add_edge((int(r.id_item1), int(r.id_item2))) return grafo
def Impacto(self, grafo, item): antes_list = list(set(self.IAntecesor(grafo, grafo.incidents(int(item))))) # lista de antecesores itemI = [item] despues_list = list(set(self.ISucesor(grafo, grafo.neighbors(int(item))))) #lista de sucesores listFinal = antes_list + itemI + despues_list #lista para el costo costo = 0; for i in listFinal: item1 = DBSession.query(Item).get(i) costo = costo + item1.complejidad return costo, listFinal
def edit(self, id,**kw): proyecto = DBSession.query(Proyecto).get(id) tmpl_context.widget = edit_proyecto_form kw['id_proyecto'] = proyecto.id_proyecto #kw['cod_proyecto'] = proyecto.cod_proyecto #kw['nombre_proyecto'] = proyecto.nombre_proyecto #kw['descripcion'] = proyecto.descripcion #kw['fecha_inicio'] = proyecto.fecha_inicio value = edit_proyecto_filler.get_value(kw) return dict(value=value)
def put(self, id='', **kw): del kw['sprox_id'] usuario = DBSession.query(Usuario).get(int(id)) usuario.nombre = kw['nombre'] usuario.user_name = kw['user_name'] usuario.password = kw['password'] #for i in kw['proyect']: # p = DBSession.query(Proyecto).get(i) # usuario.proyect.append(p) usuario.groups=[] for i in kw['groups']: p = DBSession.query(Rol).get(i) usuario.groups.append(p) DBSession.merge(usuario) flash('Usuario modificado') redirect("/administracion/usuario/list")
def edit(self, id, **kw): proyecto = DBSession.query(Proyecto).get(id) tmpl_context.widget = edit_proyecto_form kw['id_proyecto'] = proyecto.id_proyecto #kw['cod_proyecto'] = proyecto.cod_proyecto #kw['nombre_proyecto'] = proyecto.nombre_proyecto #kw['descripcion'] = proyecto.descripcion #kw['fecha_inicio'] = proyecto.fecha_inicio value = edit_proyecto_filler.get_value(kw) return dict(value=value)
def edit(self, id,**kw): rol = DBSession.query(Rol).get(id) tmpl_context.widget = edit_rol_form kw['id_rol'] = rol.id_rol #kw['cod_rol'] = rol.cod_rol #kw['group_name'] = rol.group_name #kw['descripcion'] = rol.descripcion #kw['permissions'] = rol.permissions value = edit_rol_filler.get_value(kw) return dict(value=value)
def edit(self, id, **kw): rol = DBSession.query(Rol).get(id) tmpl_context.widget = edit_rol_form kw['id_rol'] = rol.id_rol #kw['cod_rol'] = rol.cod_rol #kw['group_name'] = rol.group_name #kw['descripcion'] = rol.descripcion #kw['permissions'] = rol.permissions value = edit_rol_filler.get_value(kw) return dict(value=value)
def put(self, id='', **kw): del kw['sprox_id'] usuario = DBSession.query(Usuario).get(int(id)) usuario.nombre = kw['nombre'] usuario.user_name = kw['user_name'] usuario.password = kw['password'] #for i in kw['proyect']: # p = DBSession.query(Proyecto).get(i) # usuario.proyect.append(p) usuario.groups = [] for i in kw['groups']: p = DBSession.query(Rol).get(i) usuario.groups.append(p) DBSession.merge(usuario) flash('Usuario modificado') redirect("/administracion/usuario/list")
def list(self, id_fase): """Metodo invocado para listar los items de una fase especificada""" self.id_fase = id_fase identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario fase = DBSession.query(Fase).get(id_fase) id_proy = fase.id_proyecto proyecto = DBSession.query(Proyecto).get(id_proy) rol_lider = DBSession.query(RolUsuario).filter(RolUsuario.id_usuario==idi).\ filter(Rol.group_name=="lider").filter(Rol.id_rol == RolUsuario.id_rol).all() if(len(rol_lider)==0): list = DBSession.query(Roperpro).filter(Roperpro.id_proyecto==id_proy).\ filter(Permiso.permission_name=="ver_fase").\ filter(Roperpro.id_permiso==Permiso.id_permiso).\ filter(RolUsuario.id_usuario==idi).\ filter(Roperpro.id_rol==RolUsuario.id_rol).all() if len(list)==0: flash("No posee el permiso para ver los items de la fase",'error') redirect("/desarrollo/item/error") else: fase = DBSession.query(Fase).get(id_fase) tmpl_context.widget = list_item value = list_item_filler.get_value(id_fase=id_fase) else: fase = DBSession.query(Fase).get(id_fase) tmpl_context.widget = list_item value = list_item_filler.get_value(id_fase=id_fase) return dict(fase=fase, proyecto = proyecto, value=value)
def edit(self, id,**kw): usuario = DBSession.query(Usuario).get(id) tmpl_context.widget = edit_usuario_form kw['id_usuario'] = usuario.id_usuario #kw['cod_usuario'] = usuario.cod_usuario #kw['nombre'] = usuario.nombre #kw['user_name'] = usuario.user_name #kw['_password'] = usuario._password #kw['password'] = usuario.password #kw['proyect'] = usuario.proyect #kw['groups'] = usuario.groups value=edit_usuario_filler.get_value(kw) return dict(value=value)
def edit(self, id, **kw): usuario = DBSession.query(Usuario).get(id) tmpl_context.widget = edit_usuario_form kw['id_usuario'] = usuario.id_usuario #kw['cod_usuario'] = usuario.cod_usuario #kw['nombre'] = usuario.nombre #kw['user_name'] = usuario.user_name #kw['_password'] = usuario._password #kw['password'] = usuario.password #kw['proyect'] = usuario.proyect #kw['groups'] = usuario.groups value = edit_usuario_filler.get_value(kw) return dict(value=value)
def post(self, _method='', **kw): del kw['sprox_id'] detalletipoitem = DetalleTipoItem() #detalletipoitem.id_detalletipoitem = kw['id_detalletipoitem'] detalletipoitem.nombre_atributo = kw['nombre_atributo'] detalletipoitem.tipo_dato = kw['tipo_dato'] for i in kw['tipositem']: p = DBSession.query(TipoItem).get(i) detalletipoitem.tipositem.append(p) DBSession.add(detalletipoitem) flash('Detalle de Tipo de item creado') redirect('/desarrollo/detalle_tipo_item/list')
def post(self, _method='', **kw): del kw['sprox_id'] #rol = DBSession.query(Rol).get(id) rol = Rol() #rol.id_rol = kw['id_rol'] rol.cod_rol = kw['cod_rol'] rol.group_name = kw['group_name'] rol.descripcion = kw['descripcion'] #rol.permissions=[] for i in kw['permissions']: p = DBSession.query(Permiso).get(i) rol.permissions.append(p) #rol.permissions.append(DBSession.query(Permiso).get(permiso)) #kw['permissions'] = permisos #rol = Rol(**kw) DBSession.add(rol) flash('Rol creado') redirect('/administracion/rol/list')
def post(self, _method='', **kw): del kw['sprox_id'] usuario = Usuario() usuario.cod_usuario = kw['cod_usuario'] usuario.nombre = kw['nombre'] usuario.user_name = kw['user_name'] usuario.password = kw['password'] #usuario.groups = [] #for i in kw['proyect']: # p = DBSession.query(Proyecto).get(i) # usuario.proyect.append(p) for i in kw['groups']: p = DBSession.query(Rol).get(i) usuario.groups.append(p) DBSession.add(usuario) flash('Usuario creado') redirect('/administracion/usuario/list')
def post(self, _method='', **kw): del kw['sprox_id'] proyecto = Proyecto() #proyecto.id_proyecto = kw['id_proyecto'] proyecto.cod_proyecto = kw['cod_proyecto'] proyecto.nombre_proyecto = kw['nombre_proyecto'] proyecto.descripcion = kw['descripcion'] proyecto.fecha_inicio = kw['fecha_inicio'] #proyecto.proyectos=[] for i in kw['usuarios']: p = DBSession.query(Usuario).get(i) proyecto.usuarios.append(p) #rol.permissions.append(DBSession.query(Permiso).get(permiso)) #kw['permissions'] = permisos #rol = Rol(**kw) DBSession.add(proyecto) flash('Proyecto creado') redirect('/administracion/proyecto/list')
def post(self, _method='', **kw): del kw['sprox_id'] proyecto = Proyecto() #proyecto.id_proyecto = kw['id_proyecto'] proyecto.cod_proyecto = kw['cod_proyecto'] proyecto.nombre_proyecto = kw['nombre_proyecto'] proyecto.descripcion = kw['descripcion'] proyecto.fecha_inicio = kw['fecha_inicio'] #proyecto.proyectos=[] for i in kw['usuarios'] : p = DBSession.query(Usuario).get(i) proyecto.usuarios.append(p) #rol.permissions.append(DBSession.query(Permiso).get(permiso)) #kw['permissions'] = permisos #rol = Rol(**kw) DBSession.add(proyecto) flash('Proyecto creado') redirect('/administracion/proyecto/list')
def post_delete(self, id, **kw): DBSession.delete(DBSession.query(TipoItem).get(id)) redirect('/desarrollo/tipo_item/list')
def aprobar(self, id, **kw): """Metodo invocado para aprobar un item especificado""" identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario id_tipo = DBSession.query(Item.id_tipoitem).filter(Item.id_item==id).one() id_fase = DBSession.query(TipoItem.id_fase).filter(TipoItem.id_tipoitem==id_tipo).one() rol_lider = DBSession.query(RolUsuario).filter(RolUsuario.id_usuario==idi).\ filter(Rol.group_name=="lider").filter(Rol.id_rol == RolUsuario.id_rol).all() if(len(rol_lider)==0): aprob = DBSession.query(Usperfa).filter(Usperfa.id_fase==id_fase).\ filter(Permiso.permission_name=="aprobar_item").\ filter(Usperfa.id_permiso==Permiso.id_permiso).\ filter(RolUsuario.id_usuario==idi).all() if len(aprob)==0: flash("No posee permiso para aprobar item",'error') redirect("/desarrollo/item/error") else: item = DBSession.query(Item).get(id) item.estado = "aprobado" identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario ahora = time.localtime() anho = str(ahora.tm_year) mes = str(ahora.tm_mon) dia = str(ahora.tm_mday) hora = str(ahora.tm_hour) min = str(ahora.tm_min) seg = str(ahora.tm_sec) historial = Historial() historial.cod_recurso = item.cod_item historial.tipo_recurso = "Item" historial.nombre_recurso = item.nombre_item historial.operacion = "Aprobacion" historial.fecha_operacion = anho+'-'+mes+'-'+dia historial.hora = hora+':'+min+':'+seg historial.nombre_usuario = user.user_name DBSession.add(historial) flash("Item aprobado") redirect('/desarrollo/item/list/'+str(self.id_fase)) #~ else: #~ item = DBSession.query(Item).get(id) #~ item.estado = "aprobado" else:#*******************************************************************************************desde aca item = DBSession.query(Item).get(id) item.estado = "aprobado" iditem = item.id_item if (item.id_lb!=None): """Si todos los items de la linea base, que fueron modificados, se aprueban, la linea base se cierra automaticamente""" lb = DBSession.query(ItemLineaBase.id_lb).filter(ItemLineaBase.id_item==iditem).one() print ("0000000000000000000000000000000000000000000000000000000 linea base del item en put es: %s") % (lb) list_items = [] apro = 0 list_items = DBSession.query(Item).filter(Item.id_lb==lb).all() for k in list_items: if (k.estado == "aprobado"): apro = apro + 1 if(len(list_items)==apro): li_b = DBSession.query(LineaBase).filter(LineaBase.id_lb==lb).all() for m in li_b: m.estado = "cerrado" DBSession.merge(m) #**************************************************************************************hasta aca identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario ahora = time.localtime() anho = str(ahora.tm_year) mes = str(ahora.tm_mon) dia = str(ahora.tm_mday) hora = str(ahora.tm_hour) min = str(ahora.tm_min) seg = str(ahora.tm_sec) historial = Historial() historial.cod_recurso = item.cod_item historial.tipo_recurso = "Item" historial.nombre_recurso = item.nombre_item historial.operacion = "Aprobacion" historial.fecha_operacion = anho+'-'+mes+'-'+dia historial.hora = hora+':'+min+':'+seg historial.nombre_usuario = user.user_name DBSession.add(historial) flash("Item aprobado") redirect('/desarrollo/item/list/'+str(self.id_fase))
def post_delete(self, id, **kw): DBSession.delete(DBSession.query(Fase).get(id)) redirect('/desarrollo/fase/list')
def getItemsA(self, id_fase): iAprobados = DBSession.query(Item).\ filter(Item.fase==idfase).\ filter(Item.estado=="aprobado").all() return iAprobados
def post(self, id_fase, method='', **kw): """Metodo invocado para persistir los datos del item creado en la BD""" del kw['sprox_id'] funciones = Funciones() item = Item() item.id_tipoitem = kw['tipo_item'] tipoitem = DBSession.query(TipoItem).filter(TipoItem.id_tipoitem==item.id_tipoitem).first() cod_tipoitem = tipoitem.cod_tipoitem item.cod_item = str(cod_tipoitem)+str(funciones.generador_codigo_item(cod_tipoitem)) item.nombre_item = kw['nombre_item'] item.descripcion = kw['descripcion'] item.version = 1#kw['version'] item.estado = "en desarrollo" item.complejidad = kw['complejidad'] id_fa = id_fase item.id_tipoitem = kw['tipo_item'] DBSession.add(item) DBSession.flush() #VERSIONADO_ITEM cod_tipoitem_versionado = DBSession.query(TipoItem.cod_tipoitem).filter(TipoItem.id_tipoitem==item.id_tipoitem).first() versionadoitem = VersionadoItem() versionadoitem.cod_item = item.cod_item versionadoitem.cod_tipoitem= cod_tipoitem_versionado versionadoitem.nombre_item = item.nombre_item versionadoitem.descripcion = item.descripcion versionadoitem.version = item.version versionadoitem.complejidad = item.complejidad DBSession.add(versionadoitem) DBSession.flush() print ("0000000000000000000000000000000000000000000000000000000000000000 VERSIONADO %s") % (versionadoitem.id_versionado) #se crean los detalles del item en base a los detalles del tipo detalles = DBSession.query(DetalleTipoItem.id_detalletipoitem).filter(DetalleTipoItem.id_tipoitem==kw['tipo_item']).all() for i in detalles: detalle = DBSession.query(DetalleTipoItem).get(i) atributo = DetalleItem() atributo.id_item = item.id_item atributo.tipo_dato = DBSession.query(DetalleTipoItem.tipo_dato).filter(DetalleTipoItem.id_detalletipoitem==i).first() atributo.id_detalletipoitem = i atributo.cod_detalleitem = funciones.generador_codigo(detalle.nombre_atributo) atributo.cod_detalletipoitem = DBSession.query(DetalleTipoItem.cod_detalletipoitem).filter(DetalleTipoItem.id_detalletipoitem==i).first() atributo.nombre_atributo = detalle.nombre_atributo atributo.valor = None #atributo.archivo = None DBSession.add(atributo) #DETALLE_VERSIONADO_ITEM detalleversionadoitem = DetalleVersionadoItem() detalleversionadoitem.id_versionado = versionadoitem.id_versionado detalleversionadoitem.cod_item = item.cod_item detalleversionadoitem.cod_detalleitem = atributo.cod_detalleitem detalleversionadoitem.cod_detalletipoitem = atributo.cod_detalletipoitem detalleversionadoitem.nombre_atributo = detalle.nombre_atributo detalleversionadoitem.tipo_dato = atributo.tipo_dato detalleversionadoitem.valor = None #detalleversionadoitem.archivo = atributo.archivo DBSession.add(detalleversionadoitem) identity = request.environ.get('repoze.who.identity') if identity is not None: user = identity.get('user') idi = user.id_usuario ahora = time.localtime() anho = str(ahora.tm_year) mes = str(ahora.tm_mon) dia = str(ahora.tm_mday) hora = str(ahora.tm_hour) min = str(ahora.tm_min) seg = str(ahora.tm_sec) historial = Historial() historial.cod_recurso = item.cod_item historial.tipo_recurso = "Item" historial.nombre_recurso = item.nombre_item historial.operacion = "Creacion" historial.fecha_operacion = anho+'-'+mes+'-'+dia historial.hora = hora+':'+min+':'+seg historial.nombre_usuario = user.user_name DBSession.add(historial) flash('Item creado') redirect('/desarrollo/item/list/'+str(id_fa))