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)
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)
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)])
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 })
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)])
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 })