Пример #1
0
def create_proyectos(request):
    """
    @summary: Maneja las solicitudes para crear los proyectos. El proyecto nuevo se crea
            con una fase por defecto, a la cual se le asocia un tipo de item por defecto
    @param request: Solicitud de creacion.
    @return: Retorna el proyecto creado.
    """
    u = Unpickler()
    entidad = u.restore(request.json_body)
    dao = ProyectoDAO(request)
    rol_dao = RolFinalDAO(request)
    rol = rol_dao.get_query().filter(
        RolFinal._id == entidad["_autor_id"]).first()
    lider = rol_dao.get_query().filter(
        RolFinal._id == entidad["_lider_id"]).first()
    nuevo_proyecto = Proyecto(entidad["_nombre"], rol, entidad["_prioridad"],
                              entidad["_estado"], lider, entidad["_nota"],
                              entidad["_fecha_creacion"],
                              entidad["_fecha_modificacion"])
    dao.crear(nuevo_proyecto)

    #le creamos una fase por defecto
    nombre_fase = "Fase por defecto de " + entidad["_nombre"]
    orden = 1
    comentario = "Fase creada por defecto"
    estado = "PENDIENTE"
    color = "0"
    nueva_fase = Fase(nombre_fase, nuevo_proyecto, orden, comentario, estado,
                      color)
    dao_fase = FaseDAO(request)
    dao_fase.crear(nueva_fase)

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

    #Le asociamos un tipo de item por defecto a esa fase por defecto
    #    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()
    a = ProyectoDTO(nuevo_proyecto)
    lista.append(p.flatten(a))
    j_string = p.flatten(lista)
    a_ret = json.dumps({'sucess': 'true', 'proyectos': j_string})

    return Response(a_ret)
Пример #2
0
def obtener_crear_tipofase(request):
    """
    @summary: Maneja las solicitudes para obtener y asociar tipos de items a una fase en particular.
    @param request: Get para recuperar y Post para crear.
    @return: En caso de recibir un Get retorna todos los tipos de items que soporta una fase en especifico.
        En caso de recibir un Post asocia un tipo de item a una fase.                
    """
    if (request.method == 'GET'):
        id = request.GET.get('id')
        rd = TipoFaseDAO(request)
        entidades = rd.get_query().filter(TipoFase._fase_id == id).all()
        lista = [];
        p = Pickler()
        for entidad in entidades:
            a = TipoFaseLindos(entidad._id, entidad._fase._id, entidad._tipo._id, entidad._tipo._nombre)
            lista.append(p.flatten(a))    
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'tipofase':j_string})

        return Response(a_ret)
    elif (request.method == 'POST'):
        u = Unpickler()
        entidad = u.restore(request.json_body);
        
        dao = FaseDAO(request)
        fase = dao.get_by_id(entidad["_fase"])
        dao = TipoItemDAO(request)
        tipo = dao.get_by_id(entidad["_tipo"])
    
        dao = TipoFaseDAO(request)
        nuevo_tipo_fase = TipoFase(fase, tipo)
        dao.crear(nuevo_tipo_fase)
        
        lista = []
        p = Pickler()
        a = TipoFaseLindos(nuevo_tipo_fase._id, nuevo_tipo_fase._fase._id, nuevo_tipo_fase._tipo._id, nuevo_tipo_fase._tipo._nombre)
        lista.append(p.flatten(a))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'tipofase' : j_string})
    
        return Response(a_ret)
Пример #3
0
def obtener_crear_atributofase(request):
    """
    @summary: Maneja las solicitudes para obtener y crear atributos particulares de una fase.
    @param request: Get para recuperar y Post para crear.
    @return: En caso de recibir un Get retorna todos los atributos particulares de una fase en especifico.
        En caso de recibir un Post retorna el atributo particular creado.                 
    """
    if (request.method == 'GET'):
        id = request.GET.get('id')
        rd = AtributoFaseDAO(request)
        entidades = rd.get_query().filter(AtributoFase._fase_id == id).all()
        lista = [];
        p = Pickler()
        for entidad in entidades:
            lista.append(p.flatten(entidad))    
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'atributofase':j_string})

        return Response(a_ret)
    else:    
        #recibio un Post
        u = Unpickler()
        entidad = u.restore(request.json_body);
        
        dao = FaseDAO(request)
        fase = dao.get_by_id(entidad["_fase_id"])
    
        dao = AtributoFaseDAO(request)
        nuevo_atributo = AtributoFase(entidad["_nombre"], fase, entidad["_descripcion"], entidad["_valor"])
        dao.crear(nuevo_atributo)
        
        lista = []
        p = Pickler()
        lista.append(p.flatten(nuevo_atributo))
        j_string = p.flatten(lista)
        a_ret = json.dumps({'sucess': 'true', 'atributofase':j_string})
    
        return Response(a_ret)