X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/55bc643c16dc56cf2377bd5c4d6e924d5fc62698..fa9ab52217a8e6912fa4677fc7bb1da21044b470:/apps/search/templatetags/search_tags.py?ds=sidebyside
diff --git a/apps/search/templatetags/search_tags.py b/apps/search/templatetags/search_tags.py
index 03e33c8d2..6a2ccad44 100644
--- a/apps/search/templatetags/search_tags.py
+++ b/apps/search/templatetags/search_tags.py
@@ -22,10 +22,9 @@ from catalogue.models import Book
register = template.Library()
-@register.inclusion_tag('catalogue/book_searched.html')
-def book_searched(result):
+@register.inclusion_tag('catalogue/book_searched.html', takes_context=True)
+def book_searched(context, result):
book = Book.objects.get(pk=result.book_id)
- vals = book_wide(book)
# snippets = []
# for hit in result.hits:
@@ -36,10 +35,25 @@ def book_searched(result):
# We don't need hits which lead to sections but do not have
# snippets.
- vals['hits'] = filter(lambda h: 'fragment' in h or
- h['snippets'], result.hits)
-
- for hit in vals['hits']:
- hit['snippets'] = map(lambda s: s.replace("\n", "
").replace('---', '—'), hit['snippets'])
-
- return vals
+ hits = filter(lambda (idx, h):
+ result.snippets[idx] is not None
+ or 'fragment' in h, enumerate(result.hits))
+ print "[tmpl: from %d hits selected %d]" % (len(result.hits), len(hits))
+
+ for (idx, hit) in hits:
+ # currently we generate one snipper per hit though.
+ if result.snippets[idx] is None:
+ continue
+ snip = result.snippets[idx]
+ # fix some formattting
+ snip = snip.replace("\n", "
").replace('---', '—')
+ hit['snippet'] = snip
+
+ return {
+ 'related': book.related_info(),
+ 'book': book,
+ 'main_link': book.get_absolute_url(),
+ 'request': context.get('request'),
+ 'hits': zip(*hits)[1],
+ 'main_link': book.get_absolute_url(),
+ }