##// END OF EJS Templates
Made quote button actually button so it is impossible to accidentally quote its text
Made quote button actually button so it is impossible to accidentally quote its text

File last commit:

r1878:7fb52044 default
r1909:004a4ff8 default
Show More
search.py
49 lines | 1.5 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
Search posts by text and title
r1849 from django.db.models import Q
neko259
Simplified pagination templates. Added a list of pages to the search results page
r1878 from django.core.urlresolvers import reverse
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
Simplified pagination templates. Added a list of pages to the search results page
r1878 from boards.views.mixins import PaginatedMixin
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'
neko259
Simplified pagination templates. Added a list of pages to the search results page
r1878 class BoardSearchView(View, PaginatedMixin):
neko259
Use own search form and view
r718 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
Search OPs by the tag name
r1877 results = Post.objects.filter(Q(text__icontains=query)
| Q(title__icontains=query) | Q(opening=True,
thread__tags__aliases__name__icontains=query)).order_by('-id').distinct()
neko259
Refactoring
r917 paginator = get_paginator(results, RESULTS_PER_PAGE)
neko259
Simplified pagination templates. Added a list of pages to the search results page
r1878 paginator.set_url(reverse('search'), request.GET.dict())
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_QUERY] = query
neko259
Simplified pagination templates. Added a list of pages to the search results page
r1878 params.update(self.get_page_context(paginator, page))
neko259
Refactoring
r917
return render(request, TEMPLATE, params)