X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/71209be8f9c399340bddb819f71e99ecf116187b..e22bc1d420f3fa0caea45f7e065c5b376756ee01:/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 0e20913d5..a167f024d 100644
--- a/apps/search/templatetags/search_tags.py
+++ b/apps/search/templatetags/search_tags.py
@@ -6,15 +6,11 @@
# import datetime
from django import template
-from django.template import Node, Variable
-from django.utils.encoding import smart_str
-from django.core.urlresolvers import reverse
# from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
# from django.db.models import Q
-from django.conf import settings
# from django.utils.translation import ugettext as _
-from catalogue.templatetags.catalogue_tags import book_wide
from catalogue.models import Book
+import re
# from catalogue.forms import SearchForm
# from catalogue.utils import split_tags
@@ -35,17 +31,28 @@ def book_searched(context, result):
# We don't need hits which lead to sections but do not have
# snippets.
- hits = filter(lambda h: 'fragment' in h or
- h['snippets'], result.hits)
-
- for hit in hits:
- hit['snippets'] = map(lambda s: s.replace("\n", "
").replace('---', '—'), hit['snippets'])
+ 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 = re.subn(r"(^[ \t\n]+|[ \t\n]+$)", u"",
+ re.subn(r"[ \t\n]*\n[ \t\n]*", u"\n", snip)[0])[0]
+
+ 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': hits,
+ 'hits': hits and zip(*hits)[1] or [],
'main_link': book.get_absolute_url(),
}