def post_delete(self, *args, **kw): '''Metodo que elimina un item''' try: item, navegacion = self.getNavegacionFromIdItem(args[0]) except: flash(('Direccion no valida.'), 'error') raise redirect("/index") if not(Secure().FiltrarByFase(item.id_fase, 'modificacion_item')): flash(('USTED NO CUENTA CON PERMISOS SUFICIENTES.'), 'error') raise redirect("/index") pm = ItemManager() if item.estado != 'finalizado': item.estado = 'eliminado' item.actual = 'false' item.id_linea_base = None id_fase = item.id_fase pm.update(item) transaction.begin() rm = RelacionManager() lbm = LineaBaseManager() relaciones = rm.getByItem(args) '''Marcar para Revision''' for relacion in relaciones: transaction.begin() if relacion.id_item1 == args: item_revision = pm.getById(relacion.id_item2) else: item_revision = pm.getById(relacion.id_item1) item_revision.estado = 'revision' if item_revision.id_linea_base != None: linea_base = lbm.getById(item_revision.id_linea_base) linea_base.estado = 'no valido' lbm.update(linea_base) transaction.commit() '''Eliminar Relaciones''' for relacion in relaciones: rm.delete(relacion) transaction.commit() raise redirect('/item/items',id_fase=id_fase, navegacion=navegacion)