X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/0854610e6f1a717ce100c96f7ebf36cbb3478a5c..8fefd8bdaca07a3f5607de79c081dc0f7876fbc7:/apps/catalogue/templatetags/catalogue_tags.py diff --git a/apps/catalogue/templatetags/catalogue_tags.py b/apps/catalogue/templatetags/catalogue_tags.py index c2d7dd6d5..cf80bebb5 100644 --- a/apps/catalogue/templatetags/catalogue_tags.py +++ b/apps/catalogue/templatetags/catalogue_tags.py @@ -4,17 +4,11 @@ # import datetime import feedparser -import re from django import template -from django.template import Node, Variable -from django.utils.encoding import smart_str -from django.core.cache import get_cache +from django.template import Node, Variable, Template, Context 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.template.defaultfilters import stringfilter from django.utils.translation import ugettext as _ from catalogue import forms @@ -51,6 +45,15 @@ def capfirst(text): return '' +@register.simple_tag +def html_title_from_tags(tags): + if len(tags) < 2: + return title_from_tags(tags) + template = Template("{{ category }}: {{ tag.name }}") + return capfirst(",
".join( + template.render(Context({'tag': tag, 'category': _(tag.category)})) for tag in tags)) + + def simple_title(tags): title = [] @@ -358,23 +361,17 @@ def related_books(book, limit=6): } +@register.inclusion_tag('catalogue/menu.html') +def catalogue_menu(): + tags = Tag.objects.filter( + category__in=('author', 'epoch', 'genre', 'kind', 'theme') + ).exclude(book_count=0) + return split_tags(tags) + + + @register.simple_tag def tag_url(category, slug): return reverse('catalogue.views.tagged_object_list', args=[ '/'.join((Tag.categories_dict[category], slug)) ]) - - -@register.filter -@stringfilter -def removewholetags(value, tags): - """Removes a space separated list of [X]HTML tags from the output. - - FIXME: It makes the assumption the removed tags aren't nested. - - """ - tags = [re.escape(tag) for tag in tags.split()] - tags_re = u'(%s)' % u'|'.join(tags) - tag_re = re.compile(ur'<%s[^>]*>.*?' % tags_re, re.U) - value = tag_re.sub(u'', value) - return value