- 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}
+ 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')
+def tag_list(tags, choices=None):
+ if choices is None:
+ choices = []
+ if len(tags) == 1:
+ one_tag = tags[0]
+ return locals()
+
+
+@register.inclusion_tag('catalogue/folded_tag_list.html')
+def folded_tag_list(tags, choices=None):
+ tags = [tag for tag in tags if tag.count]
+ if choices is None:
+ choices = []
+ some_tags_hidden = False
+ tag_count = len(tags)
+
+ if tag_count == 1:
+ one_tag = tags[0]
+ else:
+ shown_tags = [tag for tag in tags if tag.main_page]
+ if tag_count > len(shown_tags):
+ some_tags_hidden = True
+ return locals()