Пример #1
0
 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)