X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/66c3143bfd9b7676b3490c9fa73660fa4fff9fc3..032889045439986dc8506267cbb68643473970ff:/apps/catalogue/templatetags/catalogue_tags.py diff --git a/apps/catalogue/templatetags/catalogue_tags.py b/apps/catalogue/templatetags/catalogue_tags.py index 90cbec3b6..504ee69d7 100644 --- a/apps/catalogue/templatetags/catalogue_tags.py +++ b/apps/catalogue/templatetags/catalogue_tags.py @@ -1,10 +1,17 @@ # -*- 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.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 register = template.Library() @@ -41,17 +48,17 @@ def capfirst(text): def simple_title(tags): mapping = { 'author': u'Autor', - 'theme': u'Motyw', - 'epoch': u'Epoka', - 'genre': u'Gatunek', - 'kind': u'Rodzaj', - 'set': u'Półka', + 'theme': u'motyw', + 'epoch': u'epoka', + 'genre': u'gatunek', + 'kind': u'rodzaj', + 'set': u'półka', } title = [] for tag in tags: - title.append("%s: %s." % (mapping[tag.category], tag.name)) - return ' '.join(title) + title.append("%s: %s" % (mapping[tag.category], tag.name)) + return capfirst(', '.join(title)) @register.simple_tag @@ -132,7 +139,11 @@ def authentication_form(): def breadcrumbs(tags, search_form=True): from catalogue.forms import SearchForm context = {'tag_list': tags} - if search_form and len(tags) < 6: + try: + max_tag_list = settings.MAX_TAG_LIST + except AttributeError: + max_tag_list = -1 + if search_form and (max_tag_list == -1 or len(tags) < max_tag_list): context['search_form'] = SearchForm(tags=tags) return context @@ -176,10 +187,10 @@ class CatalogueURLNode(Node): else: tags_to_remove.append(tag) - tag_slugs = [tag.slug for tag in tags_to_add] + tag_slugs = [tag.url_chunk for tag in tags_to_add] for tag in tags_to_remove: try: - tag_slugs.remove(tag.slug) + tag_slugs.remove(tag.url_chunk) except KeyError: pass @@ -190,22 +201,22 @@ class CatalogueURLNode(Node): @register.inclusion_tag('catalogue/latest_blog_posts.html') -def latest_blog_posts(feed_url, posts_to_show=5): - import feedparser - import datetime - - feed = feedparser.parse(feed_url) - posts = [] - for i in range(posts_to_show): - pub_date = feed['entries'][i].updated_parsed - published = datetime.date(pub_date[0], pub_date[1], pub_date[2] ) - posts.append({ - 'title': feed['entries'][i].title, - 'summary': feed['entries'][i].summary, - 'link': feed['entries'][i].link, - 'date': published, - }) - return {'posts': posts} +def latest_blog_posts(feed_url, posts_to_show=5): + try: + feed = feedparser.parse(str(feed_url)) + posts = [] + for i in range(posts_to_show): + pub_date = feed['entries'][i].updated_parsed + published = datetime.date(pub_date[0], pub_date[1], pub_date[2] ) + posts.append({ + 'title': feed['entries'][i].title, + 'summary': feed['entries'][i].summary, + 'link': feed['entries'][i].link, + 'date': published, + }) + return {'posts': posts} + except: + return {'posts': []} @register.inclusion_tag('catalogue/tag_list.html')