Exemplo n.º 1
0
def ajax_search(request):
    search_results = []
    query = request.GET.get('q', None)

    selected_facet = request.GET.get('type', None)
    try:
        limit = int(request.GET.get('limit', DEFAULT_LIMIT))
    except ValueError:
        limit = DEFAULT_LIMIT

    try:
        offset = int(request.GET.get('offset', 0))
    except ValueError:
        offset = 0

    search_results = Autocomplete.search(query, restrict_type=selected_facet, limit=limit, offset=offset,
                                         restrict_location = request.GET.get('location', None))

    lat, lon = request.GET.get('lat', None), request.GET.get('lng', None)
    orgs_near_me = _get_orgs_near_me(request, query, lat, lon)
    more_results = (search_results.hits - int(offset)) > limit
    related_searches = _get_related_searches(query)

    if 'format' in request.GET and request.GET['format']=='html':
        ret = {'items': render_string(request, 'search/search_items.html', {'search_results' : search_results, 'query': query}),
               'facets': render_string(request, 'search/facets.html', {'search_results': search_results, 'selected_facet': selected_facet, 'query': query}),
               'related': render_string(request, 'search/related_searches.html', {'related_searches': related_searches}),
               'more_results': render_string(request, 'search/more_results.html', {'more_results': more_results})
               }

        if orgs_near_me:
            ret['nearMe'] = render_string(request, 'search/near_me.html', {'orgs_near_me': orgs_near_me})

        return json_response(ret)
Exemplo n.º 2
0
def ajax_search(request):
    search_results = []
    query = request.GET.get('q', None)

    selected_facet = request.GET.get('type', None)
    try:
        limit = int(request.GET.get('limit', DEFAULT_LIMIT))
    except ValueError:
        limit = DEFAULT_LIMIT

    try:
        offset = int(request.GET.get('offset', 0))
    except ValueError:
        offset = 0

    search_results = Autocomplete.search(query,
                                         restrict_type=selected_facet,
                                         limit=limit,
                                         offset=offset,
                                         restrict_location=request.GET.get(
                                             'location', None))

    lat, lon = request.GET.get('lat', None), request.GET.get('lng', None)
    orgs_near_me = _get_orgs_near_me(request, query, lat, lon)
    more_results = (search_results.hits - int(offset)) > limit
    related_searches = _get_related_searches(query)

    if 'format' in request.GET and request.GET['format'] == 'html':
        ret = {
            'items':
            render_string(request, 'search/search_items.html', {
                'search_results': search_results,
                'query': query
            }),
            'facets':
            render_string(
                request, 'search/facets.html', {
                    'search_results': search_results,
                    'selected_facet': selected_facet,
                    'query': query
                }),
            'related':
            render_string(request, 'search/related_searches.html',
                          {'related_searches': related_searches}),
            'more_results':
            render_string(request, 'search/more_results.html',
                          {'more_results': more_results})
        }

        if orgs_near_me:
            ret['nearMe'] = render_string(request, 'search/near_me.html',
                                          {'orgs_near_me': orgs_near_me})

        return json_response(ret)
Exemplo n.º 3
0
def autocomplete(request):
    """Legacy autocomplete, still used in the top search bar around the site"""
    def _format_search_result(res, idx):
        type, id = res.id.split(':')
        image_url = res.image_url
        if image_url and not image_url.startswith('http'):
            image_url=_create_static_url(image_url)

        return {'id' : id, 'index': idx, 'name' : res.name[0], 'type' : type, 'url' : res.url,
                'image_url' : image_url, 'num_followers' : res.popularity}

    results = Autocomplete.search(request.GET['search'])
    return json_response([_format_search_result(t, idx) for idx, t in enumerate(results)])
Exemplo n.º 4
0
def search_page(request):
    search_results = []
    orgs_near_me = []
    query = request.GET.get('q',None)
    search_results = Autocomplete.search(query)
    orgs_near_me = _get_orgs_near_me(request, query)
    more_results = search_results.hits > DEFAULT_LIMIT    
    related_searches = _get_related_searches(query)

    more_results = search_results.hits > DEFAULT_LIMIT

    title = "for %s" % query if query else ''

    return render(request, 'search/base.html', {
            'search_results' : search_results,
            'more_results': more_results,
            'query': query,
            'orgs_near_me': orgs_near_me,
            'related_searches': related_searches,
            'title' : "Search %s" % title
            })
Exemplo n.º 5
0
def autocomplete(request):
    """Legacy autocomplete, still used in the top search bar around the site"""
    def _format_search_result(res, idx):
        type, id = res.id.split(':')
        image_url = res.image_url
        if image_url and not image_url.startswith('http'):
            image_url = _create_static_url(image_url)

        return {
            'id': id,
            'index': idx,
            'name': res.name[0],
            'type': type,
            'url': res.url,
            'image_url': image_url,
            'num_followers': res.popularity
        }

    results = Autocomplete.search(request.GET['search'])
    return json_response(
        [_format_search_result(t, idx) for idx, t in enumerate(results)])
Exemplo n.º 6
0
def search_page(request):
    search_results = []
    orgs_near_me = []
    query = request.GET.get('q', None)
    search_results = Autocomplete.search(query)
    orgs_near_me = _get_orgs_near_me(request, query)
    more_results = search_results.hits > DEFAULT_LIMIT
    related_searches = _get_related_searches(query)

    more_results = search_results.hits > DEFAULT_LIMIT

    title = "for %s" % query if query else ''

    return render(
        request, 'search/base.html', {
            'search_results': search_results,
            'more_results': more_results,
            'query': query,
            'orgs_near_me': orgs_near_me,
            'related_searches': related_searches,
            'title': "Search %s" % title
        })