Пример #1
0
    def accionSolicitud(self, idFase, **named):
        identity = request.environ.get('repoze.who.identity')
        user = identity['user']

        lbs = DBSession.query(LineaBase).filter_by(fase_id=idFase).filter_by(
            estado_id=2).all()
        for lb in lbs:
            accion = named.get(str(lb.id), '')
            if (accion != "") and (accion == "Cerrar"):
                lb.estado_id = 1
                DBSession.flush()
                ###Cambia Estado del Item
                items = DBSession.query(ItemUsuario).filter_by(
                    linea_base_id=lb.id).all()
                for item in items:
                    if (item.estado_id == 5):
                        item.estado_id = 3
                        DBSession.flush
                estados = [1, 2, 3, 4, 5, 8]
                itemsEnLB = DBSession.query(ItemUsuario).filter(
                    ItemUsuario.fase_id == idFase).filter(
                        ItemUsuario.estado_id.in_(estados)).order_by(
                            ItemUsuario.id).all()
                faseConLB = 0
                for itemP in itemsEnLB:
                    if itemP.estado_id != 3:
                        faseConLB = 1
                if faseConLB == 0:
                    fase = DBSession.query(Fase).filter_by(id=idFase).one()
                    fase.estado_id = 4
                    DBSession.flush()
        fase = DBSession.query(Fase).filter_by(id=idFase).one()

        redirect('/item/itemList/' + str(fase.id))
    def actualizar_fase(self, id, descripcion_proyecto, nombre_fase, numero_fase, submit):
        fase = DBSession.query(Fase).filter(Fase.id == id).one()
        fase.descripcion = nombre_fase
        fase.numero_fase = numero_fase
#        fase.codigo_fase = codFase
        DBSession.flush()
        redirect('/proyecto/definir_fase/' + str(fase.proyecto_id))
Пример #3
0
 def actualizar_tipoItem(self, id, idProy, idFase, codItem, nombre, submit):
     """Create a new movie record"""
     tipoItem = DBSession.query(TipoItemUsuario).filter_by(id=id).one()
     tipoItem.descripcion = nombre,
     tipoItem.codigo = codItem,
     DBSession.flush()
     redirect('/tipoItems/tipoItemUsuario/' + idFase + '/lista')
Пример #4
0
 def accionSolicitud( self, idFase, **named):
     identity = request.environ.get('repoze.who.identity')
     user = identity['user']
     
     lbs=DBSession.query(LineaBase).filter_by(fase_id=idFase).filter_by(estado_id = 2).all()
     for lb in lbs:
         accion=named.get(str(lb.id),'')
         if (accion!="") and (accion=="Cerrar"):
             lb.estado_id=1
             DBSession.flush()
             ###Cambia Estado del Item
             items=DBSession.query(ItemUsuario).filter_by(linea_base_id=lb.id).all()
             for item in items:
                 if(item.estado_id == 5):
                     item.estado_id=3
                     DBSession.flush
             estados=[1,2,3,4,5,8]
             itemsEnLB=DBSession.query(ItemUsuario).filter(ItemUsuario.fase_id==idFase).filter(ItemUsuario.estado_id.in_(estados)).order_by(ItemUsuario.id).all()
             faseConLB=0
             for itemP in itemsEnLB:
                 if itemP.estado_id!=3:
                     faseConLB=1
             if faseConLB==0:
                 fase=DBSession.query(Fase).filter_by(id=idFase).one()
                 fase.estado_id=4
                 DBSession.flush()
     fase=DBSession.query(Fase).filter_by(id=idFase).one()
               
     redirect( '/item/itemList/'+str(fase.id) )
 def actualizar_tipoItem( self,id,idProy, idFase,codItem,nombre, submit ):
     """Create a new movie record"""
     tipoItem = DBSession.query(TipoItemUsuario).filter_by(id=id).one()
     tipoItem.descripcion=nombre,
     tipoItem.codigo=codItem,
     DBSession.flush()
     redirect( '/tipoItems/tipoItemUsuario/'+ idFase+'/lista')
 def actualizar_atributo( self,tipo_item_id, id, nombre,idTipo, submit ):
     """Create a new movie record"""
     atributo = DBSession.query(TipoItemUsuarioAtributos).filter_by(id=id).one()
     atributo.nombre_atributo=nombre,
     atributo.tipo_item_id=tipo_item_id,
     atributo.tipo_id=idTipo,
     DBSession.flush()
     redirect( './atributosDef/'+ tipo_item_id)
 def actualizar_fase(self, id, descripcion_proyecto, nombre_fase,
                     numero_fase, submit):
     fase = DBSession.query(Fase).filter(Fase.id == id).one()
     fase.descripcion = nombre_fase
     fase.numero_fase = numero_fase
     #        fase.codigo_fase = codFase
     DBSession.flush()
     redirect('/proyecto/definir_fase/' + str(fase.proyecto_id))
    def actualizar(self, id, descripcion, id_user, submit):
        """Create a new movie record"""
        proyecto = DBSession.query(Proyecto).filter_by(id=id).one()
        proyecto.descripcion = descripcion
        proyecto.id_lider = id_user

        DBSession.flush()

        redirect('/proyecto')
 def actualizar(self, id, descripcion, id_user , submit):
     """Create a new movie record"""
     proyecto = DBSession.query(Proyecto).filter_by(id=id).one()
     proyecto.descripcion = descripcion
     proyecto.id_lider = id_user
     
     DBSession.flush()
     
     redirect('/proyecto')
Пример #10
0
 def actualizar_atributo(self, tipo_item_id, id, nombre, idTipo, submit):
     """Create a new movie record"""
     atributo = DBSession.query(TipoItemUsuarioAtributos).filter_by(
         id=id).one()
     atributo.nombre_atributo = nombre,
     atributo.tipo_item_id = tipo_item_id,
     atributo.tipo_id = idTipo,
     DBSession.flush()
     redirect('./atributosDef/' + tipo_item_id)
    def usuario_faseList(self, id, **named):
        identity = request.environ.get('repoze.who.identity')
        user = identity['user']
        expresion = named.get('expresion')
        orden = named.get('submit')

        usuarioFaseRols = DBSession.query(UsuarioFaseRol).filter(
            UsuarioFaseRol.fase_id == id).all()

        for ufr in usuarioFaseRols:
            if ufr.usuario == None:
                DBSession.delete(ufr)
                DBSession.flush()
        if (orden == None or orden == 'Listar Todos' or orden == 'Cancelar'):
            usuarioFaseRol = DBSession.query(UsuarioFaseRol).filter(
                UsuarioFaseRol.fase_id == id).all()
            muestraBoton = "false"
        elif (orden == 'Buscar' and expresion != None):
            usuarioxnombre = DBSession.query(UsuarioFaseRol).join(
                (User, UsuarioFaseRol.usuario)).filter(
                    UsuarioFaseRol.fase_id == id).filter(
                        User.user_name.like('%' + expresion + '%')).order_by(
                            User.user_name).all()
            usuarioxrol = DBSession.query(UsuarioFaseRol).join(
                (Rol, UsuarioFaseRol.rol)).filter(
                    UsuarioFaseRol.fase_id == id).filter(
                        Rol.group_name.like('%' + expresion + '%')).all()
            usuarioFaseRol1 = usuarioxnombre + usuarioxrol
            usuarioFaseRol = set(usuarioFaseRol1)
            usuarioFaseRol = list(usuarioFaseRol)
            muestraBoton = "true"
        fase = DBSession.query(Fase).filter(Fase.id == id).one()
        from webhelpers import paginate
        count = usuarioFaseRol.__len__()
        page = int(named.get('page', '1'))
        currentPage = paginate.Page(
            usuarioFaseRol,
            page,
            item_count=count,
            items_per_page=5,
        )
        usuarioFaseRol = currentPage.items
        descripcion = fase.descripcion
        proyecto = DBSession.query(Proyecto).filter(
            Proyecto.id == fase.proyecto_id).one()

        return dict(page='Usuarios de fase ' + descripcion,
                    usuariofaserol=usuarioFaseRol,
                    descripcion=descripcion,
                    fase_id=id,
                    subtitulo='Usuarios de fase',
                    proyecto_id=fase.proyecto_id,
                    user=user,
                    muestraBoton=muestraBoton,
                    proyecto=proyecto,
                    currentPage=currentPage)
 def eliminar_usuario_fase(self, ufr):
     usuarioFaseRol = DBSession.query(UsuarioFaseRol).filter(UsuarioFaseRol.id == ufr).one()
     fase = usuarioFaseRol.fase_id     
     DBSession.delete(usuarioFaseRol)         
     usuarioFaseRolcantidad = DBSession.query(UsuarioFaseRol).filter(UsuarioFaseRol.fase_id == fase).all()
     if usuarioFaseRolcantidad.__len__() == 0:
         faseCambiarEstado = DBSession.query(Fase).filter(Fase.id == fase).one()
         faseCambiarEstado.estado_id = 3
         DBSession.flush()
                                  
     redirect('/proyecto/usuario_faseList/' + str(fase))
Пример #13
0
    def actualizar_permiso(self, id, name, descripcion, submit):
        """Create a new movie record"""

        permiso = DBSession.query(Permission).filter_by(permission_id=id).one()

        permiso.permission_name = name
        permiso.description = descripcion

        DBSession.flush()

        redirect('./permiso')
Пример #14
0
 def actualizar_permiso( self, id, name,descripcion, submit ):
     """Create a new movie record"""
    
     permiso = DBSession.query(Permission).filter_by(permission_id=id).one()
    
     permiso.permission_name = name
     permiso.description = descripcion
     
     DBSession.flush()
    
     redirect( './permiso' )
Пример #15
0
 def setUp(self):
     """Prepare model test fixture."""
     try:
         new_attrs = {}
         new_attrs.update(self.attrs)
         new_attrs.update(self.do_get_dependencies())
         self.obj = self.klass(**new_attrs)
         DBSession.add(self.obj)
         DBSession.flush()
         return self.obj
     except:
         DBSession.rollback()
         raise
    def eliminar_usuario_fase(self, ufr):
        usuarioFaseRol = DBSession.query(UsuarioFaseRol).filter(
            UsuarioFaseRol.id == ufr).one()
        fase = usuarioFaseRol.fase_id
        DBSession.delete(usuarioFaseRol)
        usuarioFaseRolcantidad = DBSession.query(UsuarioFaseRol).filter(
            UsuarioFaseRol.fase_id == fase).all()
        if usuarioFaseRolcantidad.__len__() == 0:
            faseCambiarEstado = DBSession.query(Fase).filter(
                Fase.id == fase).one()
            faseCambiarEstado.estado_id = 3
            DBSession.flush()

        redirect('/proyecto/usuario_faseList/' + str(fase))
    def eliminar_fase(self, id):
        fase = DBSession.query(Fase).filter(Fase.id == id).one()
        id_proyecto = fase.proyecto_id
        ufrs = DBSession.query(UsuarioFaseRol).filter(UsuarioFaseRol.fase_id == id).all()
        for ufr in ufrs:
            DBSession.delete(ufr)
        DBSession.flush()
#        itemusuarios = DBSession.query(TipoItemUsuario).filter(TipoItemUsuario.fase_id == id).all()
                    
        DBSession.delete(fase)
        fases = DBSession.query(Fase).filter(Fase.proyecto_id == id_proyecto).order_by(Fase.id).all()
        for i, fase in enumerate(fases):
            fase.numero_fase = i + 1
            DBSession.flush()
        
        
        redirect('/proyecto/definir_fase/' + str(id_proyecto))    
 def usuario_faseList(self, id, **named):
     identity = request.environ.get('repoze.who.identity')
     user = identity['user']
     expresion = named.get('expresion')
     orden = named.get('submit')
     
     usuarioFaseRols = DBSession.query(UsuarioFaseRol).filter(UsuarioFaseRol.fase_id == id).all()
     
     for ufr in usuarioFaseRols:
         if ufr.usuario == None:
             DBSession.delete(ufr)
             DBSession.flush()
     if(orden == None or orden == 'Listar Todos' or orden == 'Cancelar'):
         usuarioFaseRol = DBSession.query(UsuarioFaseRol).filter(UsuarioFaseRol.fase_id == id).all()
         muestraBoton = "false"
     elif(orden == 'Buscar' and expresion != None):
         usuarioxnombre = DBSession.query(UsuarioFaseRol).join((User, UsuarioFaseRol.usuario)).filter(UsuarioFaseRol.fase_id == id).filter(User.user_name.like('%' + expresion + '%')).order_by(User.user_name).all()
         usuarioxrol = DBSession.query(UsuarioFaseRol).join((Rol, UsuarioFaseRol.rol)).filter(UsuarioFaseRol.fase_id == id).filter(Rol.group_name.like('%' + expresion + '%')).all()
         usuarioFaseRol1 = usuarioxnombre + usuarioxrol
         usuarioFaseRol = set(usuarioFaseRol1)
         usuarioFaseRol = list(usuarioFaseRol)
         muestraBoton = "true"
     fase = DBSession.query(Fase).filter(Fase.id == id).one() 
     from webhelpers import paginate
     count = usuarioFaseRol.__len__()
     page = int(named.get('page', '1'))
     currentPage = paginate.Page(
         usuarioFaseRol, page, item_count=count,
         items_per_page=5,
     )
     usuarioFaseRol = currentPage.items
     descripcion = fase.descripcion
     proyecto = DBSession.query(Proyecto).filter(Proyecto.id==fase.proyecto_id).one()
     
     return dict(page='Usuarios de fase ' + descripcion,
                 usuariofaserol=usuarioFaseRol,
                 descripcion=descripcion,
                 fase_id=id,
                 subtitulo='Usuarios de fase',
                 proyecto_id=fase.proyecto_id,
                 user=user,
                 muestraBoton=muestraBoton,
                 proyecto=proyecto,
                 currentPage=currentPage
                 ) 
    def eliminar_fase(self, id):
        fase = DBSession.query(Fase).filter(Fase.id == id).one()
        id_proyecto = fase.proyecto_id
        ufrs = DBSession.query(UsuarioFaseRol).filter(
            UsuarioFaseRol.fase_id == id).all()
        for ufr in ufrs:
            DBSession.delete(ufr)
        DBSession.flush()
        #        itemusuarios = DBSession.query(TipoItemUsuario).filter(TipoItemUsuario.fase_id == id).all()

        DBSession.delete(fase)
        fases = DBSession.query(Fase).filter(
            Fase.proyecto_id == id_proyecto).order_by(Fase.id).all()
        for i, fase in enumerate(fases):
            fase.numero_fase = i + 1
            DBSession.flush()

        redirect('/proyecto/definir_fase/' + str(id_proyecto))
Пример #20
0
 def guardar_items_importados(self,idfaseDestino,**named):
     
   
      
     itemselect = named.get('itemselect')
         
     try:
         itemselect=int(itemselect)
         itemselect=[itemselect]
         tipoItemSeleccionado = DBSession.query(TipoItemUsuario).filter(TipoItemUsuario.id.in_(itemselect)).all()
      
         tipoItemExiste = DBSession.query(TipoItemUsuario).filter(TipoItemUsuario.codigo == tipoItemSeleccionado.codigo).filter(TipoItemUsuario.fase_id == idfaseDestino).all()
             
         if tipoItemExiste.__len__() == 0:                
             listaIds=DBSession.query(TipoItemUsuario).order_by(TipoItemUsuario.id)
             if (listaIds.count()>0):
                 list=listaIds[-1]
                 id=list.id + 1
             else: 
                 id=1    
         
             ti = TipoItemUsuario(id = int(id),
                                  descripcion = tipoItemSeleccionado.descripcion,
                                  codigo = tipoItemSeleccionado.codigo,
                                  fase_id = idfaseDestino)#el parametro pasado aca debe ir.
             DBSession.add(ti)
             DBSession.flush()
             
             for atributo in tipoItemSeleccionado.atributos:
                 
                 at = TipoItemUsuarioAtributos(nombre_atributo = atributo.nombre_atributo,
                                               tipo_item_id= int(id),
                                               tipo_id=atributo.tipo_id
                                               )
                            
                 DBSession.add(at)
                 DBSession.flush()
         
     except:
         
         itemseleccionados = DBSession.query(TipoItemUsuario).filter(TipoItemUsuario.id.in_(itemselect)).all()
         
         for tipoItemSelect in  itemseleccionados:
             
             tipoItemExiste = DBSession.query(TipoItemUsuario).filter(TipoItemUsuario.codigo == tipoItemSelect.codigo).filter(TipoItemUsuario.fase_id == idfaseDestino).all()
             
             if tipoItemExiste.__len__() == 0:
             
                 listaIds=DBSession.query(TipoItemUsuario).order_by(TipoItemUsuario.id)
                 if (listaIds.count()>0):
                     list=listaIds[-1]
                     id=list.id + 1
                 else: 
                     id=1    
             
                 ti = TipoItemUsuario(id = int(id),
                                      descripcion = tipoItemSelect.descripcion,
                                      codigo = tipoItemSelect.codigo,
                                      fase_id = idfaseDestino)#el parametro pasado aca debe ir.
                 DBSession.add(ti)
                 DBSession.flush()
                 
                 
                 
                 for atributo in tipoItemSelect.atributos:
                     
                     at = TipoItemUsuarioAtributos(nombre_atributo = atributo.nombre_atributo,
                                                   tipo_item_id= int(id),
                                                   tipo_id=atributo.tipo_id
                                                   )
                                
                     DBSession.add(at)
                     DBSession.flush()
     
     redirect("/tipoItems/tipoItemUsuario/" + idfaseDestino + "/lista")
Пример #21
0
    def guardar_linea_base(self, faseid,**named):
        
        itemselect = named.get('itemselect')
            
        try:
            itemselect=int(itemselect)
            itemselect=[itemselect]
            itemseleccionados = DBSession.query(ItemUsuario).filter(ItemUsuario.id.in_(itemselect)).all()
        
            listaIds=DBSession.query(LineaBase).order_by(LineaBase.id)
            if (listaIds.count()>0):
                list=listaIds[-1]
                id=list.id + 1
            else: 
                id=1    
        
            lb = LineaBase(id = int(id),
                           version = 1,
                           estado_id = 1,
                           fase_id = int(faseid)) 
            DBSession.add(lb)
            DBSession.flush()
        
            for item in itemseleccionados:
                lbAnterior=item.linea_base_ant
                itemsEnLbAnterior= DBSession.query(ItemUsuario).filter(ItemUsuario.linea_base_ant==lbAnterior).all()
                for itemLbAnt in itemsEnLbAnterior:
                    if itemLbAnt.estado_id==5:
                        itemLbAnt.estado_id=3
                        itemLbAnt.linea_base_id= id
                        itemLbAnt.linea_base_ant = id
                item.estado_id = 3
                item.linea_base_id = id
                item.linea_base_ant = id
                DBSession.flush()
        except :
            itemseleccionados = DBSession.query(ItemUsuario).filter(ItemUsuario.id.in_(itemselect)).all()
            listaIds=DBSession.query(LineaBase).order_by(LineaBase.id)
            if (listaIds.count()>0):
                list=listaIds[-1]
                id=list.id + 1
            else: 
                id=1    
        
            lb = LineaBase(id = int(id),
                           version = 1,
                           estado_id = 1,
                           fase_id = int(faseid)) 
            DBSession.add(lb)
            DBSession.flush()
        
            for item in itemseleccionados:
                lbAnterior=item.linea_base_ant
                itemsEnLbAnterior= DBSession.query(ItemUsuario).filter(ItemUsuario.linea_base_ant==lbAnterior).all()
                for itemLbAnt in itemsEnLbAnterior:
                    if itemLbAnt.estado_id==5:
                        itemLbAnt.estado_id=3
                        itemLbAnt.linea_base_id= id
                        itemLbAnt.linea_base_ant = id
                item.estado_id = 3
                item.linea_base_id = id
                item.linea_base_ant = id
                DBSession.flush()

        estados=[1,2,3,4,5,8]
        itemsEnLB=DBSession.query(ItemUsuario).filter(ItemUsuario.fase_id==faseid).filter(ItemUsuario.estado_id.in_(estados)).order_by(ItemUsuario.id).all()
        faseConLB=0
        for itemP in itemsEnLB:
            if itemP.estado_id!=3:
                faseConLB=1
        if faseConLB==0:
            fase=DBSession.query(Fase).filter_by(id=faseid).one()
            fase.estado_id=4
            DBSession.flush()
       
        redirect('/item/itemList/'+faseid)
 def cambiarEstado(self, id, estado, **named):
     proyecto = DBSession.query(Proyecto).filter_by(id=id).one()
     proyecto.estado = estado
     DBSession.flush()
     redirect('/proyecto')
 def cambiarEstado(self, id, estado, **named):
     proyecto = DBSession.query(Proyecto).filter_by(id=id).one()
     proyecto.estado = estado
     DBSession.flush()
     redirect('/proyecto')
Пример #24
0
    def guardar_linea_base(self, faseid, **named):

        itemselect = named.get('itemselect')

        try:
            itemselect = int(itemselect)
            itemselect = [itemselect]
            itemseleccionados = DBSession.query(ItemUsuario).filter(
                ItemUsuario.id.in_(itemselect)).all()

            listaIds = DBSession.query(LineaBase).order_by(LineaBase.id)
            if (listaIds.count() > 0):
                list = listaIds[-1]
                id = list.id + 1
            else:
                id = 1

            lb = LineaBase(id=int(id),
                           version=1,
                           estado_id=1,
                           fase_id=int(faseid))
            DBSession.add(lb)
            DBSession.flush()

            for item in itemseleccionados:
                lbAnterior = item.linea_base_ant
                itemsEnLbAnterior = DBSession.query(ItemUsuario).filter(
                    ItemUsuario.linea_base_ant == lbAnterior).all()
                for itemLbAnt in itemsEnLbAnterior:
                    if itemLbAnt.estado_id == 5:
                        itemLbAnt.estado_id = 3
                        itemLbAnt.linea_base_id = id
                        itemLbAnt.linea_base_ant = id
                item.estado_id = 3
                item.linea_base_id = id
                item.linea_base_ant = id
                DBSession.flush()
        except:
            itemseleccionados = DBSession.query(ItemUsuario).filter(
                ItemUsuario.id.in_(itemselect)).all()
            listaIds = DBSession.query(LineaBase).order_by(LineaBase.id)
            if (listaIds.count() > 0):
                list = listaIds[-1]
                id = list.id + 1
            else:
                id = 1

            lb = LineaBase(id=int(id),
                           version=1,
                           estado_id=1,
                           fase_id=int(faseid))
            DBSession.add(lb)
            DBSession.flush()

            for item in itemseleccionados:
                lbAnterior = item.linea_base_ant
                itemsEnLbAnterior = DBSession.query(ItemUsuario).filter(
                    ItemUsuario.linea_base_ant == lbAnterior).all()
                for itemLbAnt in itemsEnLbAnterior:
                    if itemLbAnt.estado_id == 5:
                        itemLbAnt.estado_id = 3
                        itemLbAnt.linea_base_id = id
                        itemLbAnt.linea_base_ant = id
                item.estado_id = 3
                item.linea_base_id = id
                item.linea_base_ant = id
                DBSession.flush()

        estados = [1, 2, 3, 4, 5, 8]
        itemsEnLB = DBSession.query(ItemUsuario).filter(
            ItemUsuario.fase_id == faseid).filter(
                ItemUsuario.estado_id.in_(estados)).order_by(
                    ItemUsuario.id).all()
        faseConLB = 0
        for itemP in itemsEnLB:
            if itemP.estado_id != 3:
                faseConLB = 1
        if faseConLB == 0:
            fase = DBSession.query(Fase).filter_by(id=faseid).one()
            fase.estado_id = 4
            DBSession.flush()

        redirect('/item/itemList/' + faseid)
Пример #25
0
    def guardar_items_importados(self, idfaseDestino, **named):

        itemselect = named.get('itemselect')

        try:
            itemselect = int(itemselect)
            itemselect = [itemselect]
            tipoItemSeleccionado = DBSession.query(TipoItemUsuario).filter(
                TipoItemUsuario.id.in_(itemselect)).all()

            tipoItemExiste = DBSession.query(TipoItemUsuario).filter(
                TipoItemUsuario.codigo == tipoItemSeleccionado.codigo).filter(
                    TipoItemUsuario.fase_id == idfaseDestino).all()

            if tipoItemExiste.__len__() == 0:
                listaIds = DBSession.query(TipoItemUsuario).order_by(
                    TipoItemUsuario.id)
                if (listaIds.count() > 0):
                    list = listaIds[-1]
                    id = list.id + 1
                else:
                    id = 1

                ti = TipoItemUsuario(
                    id=int(id),
                    descripcion=tipoItemSeleccionado.descripcion,
                    codigo=tipoItemSeleccionado.codigo,
                    fase_id=idfaseDestino)  #el parametro pasado aca debe ir.
                DBSession.add(ti)
                DBSession.flush()

                for atributo in tipoItemSeleccionado.atributos:

                    at = TipoItemUsuarioAtributos(
                        nombre_atributo=atributo.nombre_atributo,
                        tipo_item_id=int(id),
                        tipo_id=atributo.tipo_id)

                    DBSession.add(at)
                    DBSession.flush()

        except:

            itemseleccionados = DBSession.query(TipoItemUsuario).filter(
                TipoItemUsuario.id.in_(itemselect)).all()

            for tipoItemSelect in itemseleccionados:

                tipoItemExiste = DBSession.query(TipoItemUsuario).filter(
                    TipoItemUsuario.codigo == tipoItemSelect.codigo).filter(
                        TipoItemUsuario.fase_id == idfaseDestino).all()

                if tipoItemExiste.__len__() == 0:

                    listaIds = DBSession.query(TipoItemUsuario).order_by(
                        TipoItemUsuario.id)
                    if (listaIds.count() > 0):
                        list = listaIds[-1]
                        id = list.id + 1
                    else:
                        id = 1

                    ti = TipoItemUsuario(
                        id=int(id),
                        descripcion=tipoItemSelect.descripcion,
                        codigo=tipoItemSelect.codigo,
                        fase_id=idfaseDestino
                    )  #el parametro pasado aca debe ir.
                    DBSession.add(ti)
                    DBSession.flush()

                    for atributo in tipoItemSelect.atributos:

                        at = TipoItemUsuarioAtributos(
                            nombre_atributo=atributo.nombre_atributo,
                            tipo_item_id=int(id),
                            tipo_id=atributo.tipo_id)

                        DBSession.add(at)
                        DBSession.flush()

        redirect("/tipoItems/tipoItemUsuario/" + idfaseDestino + "/lista")