##// END OF EJS Templates
Small fixes to the websocket notifications. Make post creation atomic, not the entire view
Small fixes to the websocket notifications. Make post creation atomic, not the entire view

File last commit:

r872:752c0b44 default
r915:05c77e2a default
Show More
search.py
41 lines | 1.2 KiB | text/x-python | PythonLexer
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
FORM_QUERY = 'query'
CONTEXT_QUERY = 'query'
CONTEXT_FORM = 'form'
CONTEXT_PAGE = 'page'
REQUEST_PAGE = 'page'
__author__ = 'neko259'
TEMPLATE = 'search/search.html'
class BoardSearchView(View):
def get(self, request):
context = RequestContext(request)
form = SearchForm(request.GET, error_class=PlainErrorList)
context[CONTEXT_FORM] = form
if form.is_valid():
query = form.cleaned_data[FORM_QUERY]
if len(query) >= 3:
results = SearchQuerySet().auto_query(query).order_by('-id')
paginator = get_paginator(results, 10)
if REQUEST_PAGE in request.GET:
page = int(request.GET[REQUEST_PAGE])
else:
page = 1
context[CONTEXT_PAGE] = paginator.page(page)
context[CONTEXT_QUERY] = query
# TODO Use dict here
return render(request, TEMPLATE, context_instance=context)