##// END OF EJS Templates
Version bump
Version bump

File last commit:

r1729:11a6ca3a default
r1730:757b4ada 3.5.0 default
Show More
search.py
44 lines | 1.1 KiB | text/x-python | PythonLexer
neko259
Use own search form and view
r718 from django.shortcuts import render
from django.views.generic import View
neko259
Refactoring
r917
neko259
Use own search form and view
r718 from boards.abstracts.paginator import get_paginator
from boards.forms import SearchForm, PlainErrorList
neko259
Remove dependency on haystack, use only built-in full text search
r1729 from boards.models import Post
neko259
Use own search form and view
r718
neko259
Refactoring
r917
MIN_QUERY_LENGTH = 3
RESULTS_PER_PAGE = 10
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):
neko259
Refactoring
r917 params = dict()
neko259
Use own search form and view
r718 form = SearchForm(request.GET, error_class=PlainErrorList)
neko259
Refactoring
r917 params[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
Refactoring
r917 if len(query) >= MIN_QUERY_LENGTH:
neko259
Remove dependency on haystack, use only built-in full text search
r1729 results = Post.objects.filter(text__icontains=query)\
.order_by('-id')
neko259
Refactoring
r917 paginator = get_paginator(results, RESULTS_PER_PAGE)
neko259
Use own search form and view
r718
neko259
Refactoring
r917 page = int(request.GET.get(REQUEST_PAGE, '1'))
neko259
Use own search form and view
r718
neko259
Refactoring
r917 params[CONTEXT_PAGE] = paginator.page(page)
params[CONTEXT_QUERY] = query
return render(request, TEMPLATE, params)