def abrir(self, *args, **kw): """ Abre una LB """ lb = LB.por_id(int(args[0])) user = Usuario.by_user_name(request.credentials["repoze.what.userid"]) op = u"Desbloqueo" for iplb in lb.items: p_item = iplb.propiedad_item if p_item.estado == u"Bloqueado": p_item.estado = u"Aprobado" elif p_item.estado == u"Revisión-Bloq": p_item.estado = u"Revisión-Desbloq" HistorialItems.registrar(user, p_item, op) HistorialLB.registrar(user, lb, 0)# u"Apertura" id_fase = UrlParser.parse_id(request.url, "fases") url = '../' fase = Fase.por_id(id_fase) lb.estado = u"Abierta" fase.cambiar_estado() flash("Se ha abierto la LB") redirect(url)
def post_cerrar(self, *args, **kw): """ Cierra una LB. En caso de no poder cerrar, despliega la página de cerrar. """ id = int(args[0]) lb = LB.por_id(id) habilitados = [] inhabilitados = [] for ilb in lb.items: p_item = ilb.propiedad_item item = Item.por_id(p_item.id_item_actual) if (item.id_propiedad_item == p_item.id_propiedad_item and p_item.estado == u"Aprobado"):#no cambio o se aprobo habilitados.append(p_item) else: inhabilitados.append(p_item) user = Usuario.by_user_name(request.credentials["repoze.what.userid"]) if (inhabilitados == []): lb.estado = u"Cerrada" #registrar en el historial for p_item in habilitados: p_item.estado = u"Bloqueado" HistorialItems.registrar(user, p_item, u"Bloqueo") HistorialLB.registrar(user, lb, 1)# u"Cierre" id_fase = UrlParser.parse_id(request.url, "fases") fase = Fase.por_id(id_fase) fase.cambiar_estado() flash("Linea base cerrada correctamente") redirect('../') #Romper la LB. lb.estado = u"Rota" HistorialLB.registrar(user, lb, 2)# u"Ruptura" page = u"Generar LB parcial a partir de : {codigo}".format(codigo=lb.codigo) tmpl_context.tabla_items_habilitados = ItemGenerarTable(DBSession) tmpl_context.tabla_items = ItemInhabilitadosTable(DBSession) inhabilitados = ItemInhabilitadosTableFiller(DBSession).get_value(items=inhabilitados) lista = [] for i in habilitados: lista.append(Item.por_id(i.id_item_actual)) habilitados = item_generar_table_filler.get_value(items=lista, **kw) atras = "../" existen_habilitados = False if habilitados: existen_habilitados = True return dict(page=page, id=id, atras=atras, habilitados=habilitados, inhabilitados=inhabilitados, existen_habilitados=existen_habilitados )