X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/63f861861578b33416a0b2d801252b27443fabde..ddf2102eff7ea420a4ea5144c43409587fc1156e:/src/search/templatetags/search_tags.py?ds=sidebyside diff --git a/src/search/templatetags/search_tags.py b/src/search/templatetags/search_tags.py index ea8d4ed0a..8d0b74be8 100644 --- a/src/search/templatetags/search_tags.py +++ b/src/search/templatetags/search_tags.py @@ -1,33 +1,19 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # -# import feedparser -# import datetime - -from django import template -# from django.contrib.auth.forms import UserCreationForm, AuthenticationForm -# from django.db.models import Q -# from django.utils.translation import ugettext as _ -from catalogue.models import Book import re -# from catalogue.forms import SearchForm -# from catalogue.utils import split_tags - +from django import template register = template.Library() @register.inclusion_tag('catalogue/book_searched.html', takes_context=True) def book_searched(context, result): - book = Book.objects.get(pk=result.book_id) - # We don't need hits which lead to sections but do not have # snippets. - hits = filter(lambda (idx, h): - result.snippets[idx] is not None, - enumerate(result.hits)) - # print "[tmpl: from %d hits selected %d]" % (len(result.hits), len(hits)) + hits = [(idx, h) + for (idx, h) in enumerate(result.hits) + if result.snippets[idx] is not None or ('fragment' in h and h['themes_hit'])] for (idx, hit) in hits: # currently we generate one snipper per hit though. @@ -37,14 +23,14 @@ def book_searched(context, result): continue snip = result.snippets[idx] # fix some formattting - snip = re.sub(r"[ \t\n]*\n[ \t\n]*", u"\n", snip) - snip = re.sub(r"(^[ \t\n]+|[ \t\n]+$)", u"", snip) + snip = re.sub(r"[ \t\n]*\n[ \t\n]*", "\n", snip) + snip = re.sub(r"(^[ \t\n]+|[ \t\n]+$)", "", snip) snip = snip.replace("\n", "
").replace('---', '—') hit['snippet'] = snip return { 'request': context['request'], - 'book': book, - 'hits': zip(*hits)[1] if hits else [] + 'book': result.book, + 'hits': list(zip(*hits))[1] if hits else [] }