1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
def search(request):
import SwishE
from django.conf import settings
from django.core.paginator import ObjectPaginator, InvalidPage
from django.http import HttpResponse
from django.template import RequestContext, loader
if request.has_key('q'):
terms = request['q']
handle = SwishE.new(settings.SEARCH_INDEX_FILE)
results = handle.query(request.GET['q'])
numhits = results.hits()
ids = [int(x.getproperty('swishdocpath')) for x in results]
photo_found = Photo.objects.filter(id__in=ids)
paginator = ObjectPaginator(photo_found,20)
if request.has_key('page'):
page = int(request.GET['page'])
else:
page = 0
photos = paginator.get_page(page)
c = RequestContext(request,{
'search':photos,
'is_paginated': True,
'results_per_page': 20,
'has_next': paginator.has_next_page(page),
'has_previous': paginator.has_previous_page(page),
'page': page+1,
'next': page + 1,
'previous' : page - 1,
'pages' : paginator.pages,
'hits' : numhits,
'q' : request.GET['q']
})
t = loader.get_template('gallery/search_results.html')
return HttpResponse(t.render(c))
|