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):
 
  36                   result.snippets[idx] is not None,
 
  37                   enumerate(result.hits))
 
  38     # print "[tmpl: from %d hits selected %d]" % (len(result.hits), len(hits))
 
  40     for (idx, hit) in hits:
 
  41         # currently we generate one snipper per hit though.
 
  42         if len(result.snippets) <= idx:
 
  44         if result.snippets[idx] is None:
 
  46         snip = result.snippets[idx]
 
  47         # fix some formattting
 
  48         snip = re.subn(r"(^[ \t\n]+|[ \t\n]+$)", u"",
 
  49                        re.subn(r"[ \t\n]*\n[ \t\n]*", u"\n", snip)[0])[0]
 
  51         snip = snip.replace("\n", "<br />").replace('---', '—')
 
  55         'request': context['request'],
 
  57         'hits':  hits and zip(*hits)[1] or []