refactoring
[mygpo.git] / mygpo / search / views.py
blobd496faaefebe76a2c0ea74aa85d7f38b8b8719f9
1 from django.shortcuts import render_to_response
2 from django.core.paginator import Paginator, InvalidPage, EmptyPage
3 from django.template import RequestContext
4 from mygpo.search.models import SearchEntry
6 def search(request):
8 page_size = 20
10 if 'q' in request.GET:
11 q = request.GET.get('q', '').encode('utf-8')
12 entries = SearchEntry.objects.search(q)
13 paginator = Paginator(entries, page_size)
15 try:
16 page = int(request.GET.get('page', 1))
17 except ValueError:
18 page = 1
20 try:
21 results = paginator.page(page)
22 except (EmptyPage, InvalidPage):
23 results = paginator.page(paginator.num_pages)
25 else:
26 results = None
27 q = None
29 return render_to_response('search.html', {
30 'q': q,
31 'results': results,
32 }, context_instance=RequestContext(request))