예제 #1
0
def private_datasets(request):
    user = auth.get_user_from_request(request)
    organization_name = request.urlvars.get('name')
    page = parse_page(request)
    context = contexts.Ctx(request)

    query = queries.organizations_and_counters()
    query = query.filter(Group.name == organization_name)
    if not query.count():
        return wsgihelpers.not_found(context)

    organization, nb_datasets, nb_members = query.first()

    if not user or not (user.sysadmin or user.is_in_group(organization.id)):
        return wsgihelpers.forbidden(context)

    private_datasets = queries.datasets(private=True)
    private_datasets = private_datasets.filter(Package.owner_org == organization.id)

    count = private_datasets.count()
    end = page * SEARCH_PAGE_SIZE
    start = end - SEARCH_PAGE_SIZE

    return templates.render_site('search-datasets.html', request,
        title = organization.title,
        url_pattern=get_page_url_pattern(request),
        datasets={
            'total': count,
            'page': page,
            'page_size': SEARCH_PAGE_SIZE,
            'total_pages': count / SEARCH_PAGE_SIZE,
            'results': dataset.serialize(private_datasets[start:end])
            }
        )
예제 #2
0
def recent_datasets(request):
    organization_name = request.urlvars.get('name')
    page = parse_page(request)
    context = contexts.Ctx(request)

    query = queries.organizations_and_counters()
    query = query.filter(Group.name == organization_name)

    if not query.count():
        return wsgihelpers.not_found(context)

    organization, nb_datasets, nb_members = query.first()

    last_datasets = queries.last_datasets()
    last_datasets = last_datasets.filter(Package.owner_org == organization.id)

    count = last_datasets.count()
    end = page * SEARCH_PAGE_SIZE
    start = end - SEARCH_PAGE_SIZE

    return templates.render_site('search-datasets.html', request,
        title = organization.title,
        url_pattern=get_page_url_pattern(request),
        datasets={
            'total': count,
            'page': page,
            'page_size': SEARCH_PAGE_SIZE,
            'total_pages': count / SEARCH_PAGE_SIZE,
            'results': dataset.serialize(last_datasets[start:end])
            }
        )
예제 #3
0
def popular_datasets(request):
    organization_name = request.urlvars.get('name')
    page = parse_page(request)
    context = contexts.Ctx(request)

    query = queries.organizations_and_counters()
    query = query.filter(Group.name == organization_name)

    if not query.count():
        return wsgihelpers.not_found(context)

    organization, nb_datasets, nb_members = query.first()

    fake, results = dataset.search(None,
                                   request,
                                   page=page,
                                   page_size=SEARCH_PAGE_SIZE,
                                   organization=organization)
    return templates.render_site(
        'search-datasets.html',
        request,
        title=organization.title,
        url_pattern=get_page_url_pattern(request),
        datasets=results,
    )
예제 #4
0
def search_more(request):
    query = request.params.get('q', '')
    page = parse_page(request)
    _, results = search(query, page, SEARCH_PAGE_SIZE)
    return templates.render_site('search-organizations.html', request,
        search_query=query,
        url_pattern=get_page_url_pattern(request),
        organizations=results
    )
예제 #5
0
def search_more(request):
    query = request.params.get('q', '')
    page = parse_page(request)
    _, results = search(query, request, page, SEARCH_PAGE_SIZE)
    return templates.render_site('search-datasets.html', request,
        search_query=query,
        url_pattern=get_page_url_pattern(request),
        datasets=results
    )
예제 #6
0
def popular_datasets(request):
    ctx = contexts.Ctx(request)
    page = parse_page(request)

    ident, results = search(None, request, page, SEARCH_PAGE_SIZE)

    return templates.render_site('search-datasets.html', request,
        title=ctx._('Popular datasets'),
        url_pattern=get_page_url_pattern(request),
        datasets=results
        )
예제 #7
0
파일: group.py 프로젝트: etalab/weckan
def display(request):
    context = contexts.Ctx(request)
    group_name = request.urlvars.get('name')
    group = Group.by_name(group_name)
    if not group:
        return wsgihelpers.not_found(context)
    page = parse_page(request)
    _, results = dataset.search('', request, page, SEARCH_PAGE_SIZE, group)
    main_groups = [t['name'] for t in templates.main_topics()]
    return templates.render_site('group.html', request,
        group=group,
        url_pattern=get_page_url_pattern(request),
        datasets=results,
        group_class='topic-{0}'.format(main_groups.index(group_name) + 1) if group_name in main_groups else None,
    )
예제 #8
0
파일: group.py 프로젝트: etalab/weckan
def display(request):
    context = contexts.Ctx(request)
    group_name = request.urlvars.get('name')
    group = Group.by_name(group_name)
    if not group:
        return wsgihelpers.not_found(context)
    page = parse_page(request)
    _, results = dataset.search('', request, page, SEARCH_PAGE_SIZE, group)
    main_groups = [t['name'] for t in templates.main_topics()]
    return templates.render_site(
        'group.html',
        request,
        group=group,
        url_pattern=get_page_url_pattern(request),
        datasets=results,
        group_class='topic-{0}'.format(main_groups.index(group_name) + 1)
        if group_name in main_groups else None,
    )
예제 #9
0
def popular_datasets(request):
    organization_name = request.urlvars.get('name')
    page = parse_page(request)
    context = contexts.Ctx(request)

    query = queries.organizations_and_counters()
    query = query.filter(Group.name == organization_name)

    if not query.count():
        return wsgihelpers.not_found(context)

    organization, nb_datasets, nb_members = query.first()

    fake, results = dataset.search(None, request, page=page, page_size=SEARCH_PAGE_SIZE, organization=organization)
    return templates.render_site('search-datasets.html', request,
        title = organization.title,
        url_pattern=get_page_url_pattern(request),
        datasets=results,
        )
예제 #10
0
def recent_datasets(request):
    ctx = contexts.Ctx(request)
    page = parse_page(request)

    last_datasets = queries.last_datasets(False)
    count = last_datasets.count()
    end = (page * NB_DATASETS) + 1
    start = end - NB_DATASETS

    return templates.render_site('search-datasets.html', request,
        title = ctx._('Recent datasets'),
        url_pattern=get_page_url_pattern(request),
        datasets={
            'total': count,
            'page': page,
            'page_size': NB_DATASETS,
            'total_pages': count / NB_DATASETS,
            'results': serialize(last_datasets[start:end])
            }
        )
예제 #11
0
def private_datasets(request):
    user = auth.get_user_from_request(request)
    organization_name = request.urlvars.get('name')
    page = parse_page(request)
    context = contexts.Ctx(request)

    query = queries.organizations_and_counters()
    query = query.filter(Group.name == organization_name)
    if not query.count():
        return wsgihelpers.not_found(context)

    organization, nb_datasets, nb_members = query.first()

    if not user or not (user.sysadmin or user.is_in_group(organization.id)):
        return wsgihelpers.forbidden(context)

    private_datasets = queries.datasets(private=True)
    private_datasets = private_datasets.filter(
        Package.owner_org == organization.id)

    count = private_datasets.count()
    end = page * SEARCH_PAGE_SIZE
    start = end - SEARCH_PAGE_SIZE

    return templates.render_site('search-datasets.html',
                                 request,
                                 title=organization.title,
                                 url_pattern=get_page_url_pattern(request),
                                 datasets={
                                     'total':
                                     count,
                                     'page':
                                     page,
                                     'page_size':
                                     SEARCH_PAGE_SIZE,
                                     'total_pages':
                                     count / SEARCH_PAGE_SIZE,
                                     'results':
                                     dataset.serialize(
                                         private_datasets[start:end])
                                 })
예제 #12
0
def recent_datasets(request):
    organization_name = request.urlvars.get('name')
    page = parse_page(request)
    context = contexts.Ctx(request)

    query = queries.organizations_and_counters()
    query = query.filter(Group.name == organization_name)

    if not query.count():
        return wsgihelpers.not_found(context)

    organization, nb_datasets, nb_members = query.first()

    last_datasets = queries.last_datasets()
    last_datasets = last_datasets.filter(Package.owner_org == organization.id)

    count = last_datasets.count()
    end = page * SEARCH_PAGE_SIZE
    start = end - SEARCH_PAGE_SIZE

    return templates.render_site('search-datasets.html',
                                 request,
                                 title=organization.title,
                                 url_pattern=get_page_url_pattern(request),
                                 datasets={
                                     'total':
                                     count,
                                     'page':
                                     page,
                                     'page_size':
                                     SEARCH_PAGE_SIZE,
                                     'total_pages':
                                     count / SEARCH_PAGE_SIZE,
                                     'results':
                                     dataset.serialize(
                                         last_datasets[start:end])
                                 })