Exemplo n.º 1
0
def search(request):
    """
    Performs sitewide search on units.
    """
    search_form = SearchForm(request.GET)
    context = {"search_form": search_form}

    if search_form.is_valid():
        units = Unit.objects.search(search_form.cleaned_data).select_related("translation")

        limit = request.GET.get("limit", 50)
        page = request.GET.get("page", 1)

        paginator = Paginator(units, limit)

        try:
            units = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            units = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of
            # results.
            units = paginator.page(paginator.num_pages)

        context["units"] = units
        context["title"] = _("Search for %s") % (search_form.cleaned_data["q"])
        context["query_string"] = search_form.urlencode()
        context["search_query"] = search_form.cleaned_data["q"]
    else:
        messages.error(request, _("Invalid search query!"))

    return render_to_response("search.html", RequestContext(request, context))
Exemplo n.º 2
0
def search(request):
    '''
    Performs sitewide search on units.
    '''
    search_form = SearchForm(request.GET)
    context = {
        'search_form': search_form,
    }

    if search_form.is_valid():
        units = Unit.objects.search(
            search_form.cleaned_data,
        ).select_related(
            'translation',
        )

        limit = request.GET.get('limit', 50)
        page = request.GET.get('page', 1)

        paginator = Paginator(units, limit)

        try:
            units = paginator.page(page)
        except PageNotAnInteger:
            # If page is not an integer, deliver first page.
            units = paginator.page(1)
        except EmptyPage:
            # If page is out of range (e.g. 9999), deliver last page of
            # results.
            units = paginator.page(paginator.num_pages)

        context['units'] = units
        context['title'] = _('Search for %s') % (
            search_form.cleaned_data['q']
        )
        context['query_string'] = search_form.urlencode()
        context['search_query'] = search_form.cleaned_data['q']
    else:
        messages.error(request, _('Invalid search query!'))

    return render_to_response(
        'search.html',
        RequestContext(request, context)
    )