1 # -*- coding: utf-8 -*-
2 # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
3 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
8 from django import template
9 # from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
10 # from django.db.models import Q
11 # from django.utils.translation import ugettext as _
12 from catalogue.models import Book
14 # from catalogue.forms import SearchForm
15 # from catalogue.utils import split_tags
18 register = template.Library()
21 @register.inclusion_tag('catalogue/book_searched.html', takes_context=True)
22 def book_searched(context, result):
23 book = Book.objects.get(pk=result.book_id)
26 # for hit in result.hits:
28 # snippets.append(hit['snippets'])
29 # elif hit['fragment']:
30 # snippets.append(hit['fragment'].short_text)
32 # We don't need hits which lead to sections but do not have
34 hits = filter(lambda (idx, h):
35 result.snippets[idx] is not None
36 or 'fragment' in h, enumerate(result.hits))
37 # print "[tmpl: from %d hits selected %d]" % (len(result.hits), len(hits))
39 for (idx, hit) in hits:
40 # currently we generate one snipper per hit though.
41 if result.snippets[idx] is None:
43 snip = result.snippets[idx]
44 # fix some formattting
45 snip = re.subn(r"(^[ \t\n]+|[ \t\n]+$)", u"",
46 re.subn(r"[ \t\n]*\n[ \t\n]*", u"\n", snip)[0])[0]
48 snip = snip.replace("\n", "<br />").replace('---', '—')
52 'related': book.related_info(),
54 'main_link': book.get_absolute_url(),
55 'request': context.get('request'),
56 'hits': hits and zip(*hits)[1] or [],
57 'main_link': book.get_absolute_url(),