Beispiel #1
0
    def test_it(self):
        dao = ProyectoDAO(None)
        rol_dao = RolFinalDAO(None)
        autor = rol_dao.get_by_id(1)
        lider = rol_dao.get_by_id(1)
        nuevo_proyecto = Proyecto("Test", autor, 1, "Prueba", lider, "Prueba",
                                  "hoy", "hoy")
        dao.crear(nuevo_proyecto)

        dao = FaseDAO(None)
        nueva_fase = Fase("Testeando", nuevo_proyecto, 2, "Prueba", "Prueba",
                          "0")
        dao.crear(nueva_fase)

        dao = TipoItemDAO(None)
        tipo = dao.get_by_id(1)

        dao = TipoFaseDAO(None)
        nuevo_tipo_fase = TipoFase(nueva_fase, tipo)
        dao.crear(nuevo_tipo_fase)

        direccion = '/tipofase/' + str(nuevo_tipo_fase.id)
        tipo_fase = {
            "id": nuevo_tipo_fase.id,
            "_tipo": 2,
            "tipo_nombre": "Tipo 1",
            "_fase": 70
        }
        res = self.testapp.delete(direccion, params=json.dumps(tipo_fase))
        print "Testeando eliminar asociacion entre tipo de item y fase"
        self.failUnless('sucess' in res.body)
Beispiel #2
0
def importar(request): 
    u= Unpickler()
    entidad = u.restore(request.json_body);
    id_proyecto = entidad['id_proyecto']
    proyectoDao = ProyectoDAO(request)
    proyecto = proyectoDao.get_by_id(id_proyecto)
    
    tipoItemDao = TipoItemDAO(request);
    for id_tipo in entidad['_tipos']:
        tipoItem = tipoItemDao.get_by_id(id_tipo)
        nueva_entidad = TipoItem(tipoItem._nombre, tipoItem._comentario, tipoItem._color, tipoItem._prefijo,tipoItem._condicionado,proyecto)
        tipoItemDao.crear(nueva_entidad)
        
    a_ret = json.dumps({'sucess': 'true', 'tipos': entidad})
    
    return Response(a_ret)
Beispiel #3
0
def delete_proyectos(request):
    """
    @summary: Maneja las solicitudes para eliminar proyectos.
    @param request: Solicitud de eliminacion.
    @return: Retorna true en caso de exito.
    """
    u = Unpickler()
    entidad = u.restore(request.json_body)
    dao = ProyectoDAO(request)
    proyecto = dao.get_by_id(entidad["id"])
    fase_dao = FaseDAO(request)
    fases = fase_dao.get_query().filter(
        Fase._proyecto_id == proyecto._id).all()
    for fase in fases:
        fase_dao.borrar(fase)

    dao.borrar(proyecto)
    return Response(json.dumps({'sucess': 'true'}))
Beispiel #4
0
    def actualizarEstadosFaseyProyecto(self, item):
        fase_dao = FaseDAO(self._request)
        proyecto_dao = ProyectoDAO(self._request)
        fase = fase_dao.get_by_id(item._fase_id)
        proyecto = proyecto_dao.get_by_id(fase._proyecto_id)

        if item._estado == 'ACTIVO':
            items_fase = self.get_items_fase(fase._id)
            cambiar = True
            for item_fase in items_fase:
                if item_fase._estado == 'REVISION' or item_fase._estado == 'COMPROMETIDO':
                    cambiar = False
            if (cambiar == True):
                if fase._estado != 'ACTIVA':
                    fase_dao.update_estado_entidad(fase._id, 'ACTIVA')
                if proyecto._estado != 'ACTIVO':
                    proyecto_dao.update_estado_entidad(proyecto._id, 'ACTIVO')
        elif item._estado == 'REVISION' or item._estado == 'COMPROMETIDO':
            if fase._estado != 'COMPROMETIDA':
                fase_dao.update_estado_entidad(fase._id, 'COMPROMETIDA')
            if proyecto._estado != 'COMPROMETIDO':
                proyecto_dao.update_estado_entidad(proyecto._id,
                                                   'COMPROMETIDO')
        elif item._estado == 'BLOQUEADO' or item._estado == 'APROBADO':
            items_fase = self.get_items_fase(fase._id)
            cambiarFinalizado = 0
            cambiarActivo = 0
            for item_fase in items_fase:
                if item_fase._estado == 'BLOQUEADO' or item_fase._estado == 'APROBADO':
                    cambiarFinalizado += 1
                if item_fase._estado == 'ACTIVO' or item_fase._estado == 'APROBADO':
                    cambiarActivo += 1
            if (cambiarFinalizado == len(items_fase)):
                if fase._estado != 'FINALIZADA':
                    fase_dao.update_estado_entidad(fase._id, 'FINALIZADA')
                if proyecto._estado != 'FINALIZADO':
                    proyecto_dao.update_estado_entidad(proyecto._id,
                                                       'FINALIZADO')
                return
            if (cambiarActivo == len(items_fase)):
                if fase._estado != 'ACTIVA':
                    fase_dao.update_estado_entidad(fase._id, 'ACTIVA')
                if proyecto._estado != 'ACTIVO':
                    proyecto_dao.update_estado_entidad(proyecto._id, 'ACTIVO')
Beispiel #5
0
def update_proyectos(request):
    """
    @summary: Maneja las solicitudes para actualizacion de proyectos.
    @param request: Solicitud de modificacion.
    @return: Retorna el proyecto modificado.
    """
    u = Unpickler()
    dao = ProyectoDAO(request)
    entidad = u.restore(request.json_body)
    vieja = dao.get_by_id(entidad["id"])
    vieja._nombre = entidad["_nombre"]
    rol_dao = RolFinalDAO(request)
    #    if (isinstance(entidad["_autor"], dict)):
    #    rol = rol_dao.get_query().filter(RolFinal._id == entidad["_autor"]["_id"]).first()
    #    else:
    rol = rol_dao.get_query().filter(
        RolFinal._id == entidad["_autor_id"]).first()
    vieja._autor = rol
    vieja._prioridad = entidad["_prioridad"]
    vieja._estado = entidad["_estado"]

    lider_dao = RolFinalDAO(request)
    #    if (isinstance(entidad["_lider"], dict)):
    #        lider = lider_dao.get_query().filter(RolFinal._id == entidad["_lider"]["_id"]).first()
    #    else:
    lider = lider_dao.get_query().filter(
        RolFinal._id == entidad["_lider_id"]).first()

    vieja._lider = lider
    vieja._nota = entidad["_nota"]
    vieja._fecha_creacion = entidad["_fecha_creacion"]
    vieja._fecha_modificacion = entidad["_fecha_modificacion"]

    asignar_permiso_rol_proyecto(request, vieja._autor, vieja)
    asignar_permiso_rol_proyecto(request, vieja._lider, vieja)

    dao.update(vieja)
    lista = []
    p = Pickler()
    a = ProyectoDTO(vieja)
    lista.append(p.flatten(a))
    j_string = p.flatten(lista)
    return Response(json.dumps({'sucess': 'true', 'proyectos': j_string}))
Beispiel #6
0
def create_tipo(request):
    if (request.method == 'POST'):
        u = Unpickler()
        entidad = u.restore(request.json_body);
        tipoItemDao = TipoItemDAO(request);
        proyectoDao = ProyectoDAO(request)
        proyecto = proyectoDao.get_by_id(entidad["_proyecto_id"])
        topos_tipos = tipoItemDao.get_query().filter(TipoItem._proyecto_id == entidad["_proyecto_id"]).all()
        for tipo in topos_tipos:
            if tipo._prefijo == entidad["_prefijo"]:
                return Response(json.dumps({'sucess': 'false' , 'lista':'Prefijo ya Asignado'}))
        nueva_entidad = TipoItem(entidad["_nombre"], entidad["_comentario"], entidad["_color"], entidad["_prefijo"], entidad["_condicionado"],proyecto)
        tipoItemDao.crear(nueva_entidad);
        lista = []
        p = Pickler()
        a = TipoItemDTO(nueva_entidad)
        lista.append(p.flatten(a))
        j_string = p.flatten(lista)
        return Response(json.dumps({'sucess': 'true' , 'lista':j_string}))
Beispiel #7
0
def obtener_crear_fases(request):
    """
    @summary: Maneja las solicitudes para obtener y crear fases.
              Las fases nuevas soportan por defecto un tipo de item.
    @param request: Get para recuperar y Post para crear.
    @return: En caso de recibir un Get retorna todas las fases de un proyecto en especifico.
        En caso de recibir un Post retorna la fase creada.
    """
    

    if (request.method == 'GET'):
        proyecto_id = request.GET.get('id')
        fase_id = request.GET.get('fase_id')
        
        rd = FaseDAO(request)
        lista = [];
        p = Pickler(False, None)
        #Codigo de fede
        if (fase_id != None and fase_id != ""):
            fase_actual = rd.get_by_id(fase_id)
            entidad = rd.get_query().filter(Fase._proyecto_id == proyecto_id, Fase._orden < fase_actual._orden).order_by(Fase._orden.desc()).first()
            if (entidad != None):
                entidadLinda = FaseLinda(entidad._id, entidad._nombre, entidad._proyecto_id, entidad._orden, entidad._comentario, entidad._estado, entidad._color)
                lista.append(p.flatten(entidadLinda))    
        elif (proyecto_id != None and proyecto_id != ""):
            #Codigo de leo
            #recuperamos todas las fases del proyecto
            entidades = rd.get_query().filter(Fase._proyecto_id == proyecto_id).all()
            for entidad in entidades:
                entidadLinda = FaseLinda(entidad._id, entidad._nombre, entidad._proyecto_id, entidad._orden, entidad._comentario, entidad._estado, entidad._color)
                lista.append(p.flatten(entidadLinda)) 
       
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'fases':j_string})    
        
        return Response(a_ret)
    else:
        #Recibimos un POST
        u = Unpickler()
        entidad = u.restore(request.json_body);
        
        dao = ProyectoDAO(request)
        proyecto = dao.get_by_id(entidad["_proyecto_id"])
    
        dao = FaseDAO(request)
        nueva_fase = Fase(entidad["_nombre"], proyecto, entidad["_orden"], entidad["_comentario"], entidad["_estado"], entidad["_color"])
        dao.crear(nueva_fase)
        
        #le asociamos el tipo de item
#        dao_tipo_item = TipoItemDAO(request)
#        tipo_item = dao_tipo_item.get_by_id(1)
#        nuevo_tipo_fase = TipoFase(nueva_fase,tipo_item)
#        dao_tipo_fase = TipoFaseDAO(request)
#        dao_tipo_fase.crear(nuevo_tipo_fase)
        
        lista = []
        p = Pickler()
        lista.append(p.flatten(nueva_fase))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'fases':j_string})
    
        return Response(a_ret)