##// END OF EJS Templates
Added tag 2.2 for changeset 4d998aba79e4
Added tag 2.2 for changeset 4d998aba79e4

File last commit:

r749:f14417a3 default
r861:9b1c982d default
Show More
search.py
40 lines | 1.2 KiB | text/x-python | PythonLexer
neko259
Use own search form and view
r718 from django.shortcuts import render
from django.template import RequestContext
from django.views.generic import View
from haystack.query import SearchQuerySet
from boards.abstracts.paginator import get_paginator
from boards.forms import SearchForm, PlainErrorList
neko259
Small code cleanups
r721 FORM_QUERY = 'query'
CONTEXT_QUERY = 'query'
CONTEXT_FORM = 'form'
CONTEXT_PAGE = 'page'
REQUEST_PAGE = 'page'
neko259
Use own search form and view
r718 __author__ = 'neko259'
TEMPLATE = 'search/search.html'
class BoardSearchView(View):
def get(self, request):
context = RequestContext(request)
form = SearchForm(request.GET, error_class=PlainErrorList)
neko259
Small code cleanups
r721 context[CONTEXT_FORM] = form
neko259
Use own search form and view
r718
if form.is_valid():
neko259
Small code cleanups
r721 query = form.cleaned_data[FORM_QUERY]
neko259
Use own search form and view
r718 if len(query) >= 3:
neko259
Trying to optimize the search
r749 results = SearchQuerySet().auto_query(query).order_by('-id').load_all()
neko259
Use own search form and view
r718 paginator = get_paginator(results, 10)
neko259
Small code cleanups
r721 if REQUEST_PAGE in request.GET:
page = int(request.GET[REQUEST_PAGE])
neko259
Use own search form and view
r718 else:
page = 1
neko259
Small code cleanups
r721 context[CONTEXT_PAGE] = paginator.page(page)
context[CONTEXT_QUERY] = query
neko259
Use own search form and view
r718
neko259
Trying to optimize the search
r749 return render(request, TEMPLATE, context)