fix #2036, fix #2078: more audiobook links
[wolnelektury.git] / apps / catalogue / templatetags / catalogue_tags.py
index e5e4d4f..fdd0a73 100644 (file)
@@ -14,7 +14,7 @@ from django.utils.translation import ugettext as _
 
 from catalogue import forms
 from catalogue.utils import split_tags
-from catalogue.models import Book, Fragment, Tag
+from catalogue.models import Book, BookMedia, Fragment, Tag
 
 register = template.Library()
 
@@ -206,7 +206,6 @@ def authentication_form():
 @register.tag
 def catalogue_url(parser, token):
     bits = token.split_contents()
-    tag_name = bits[0]
 
     tags_to_add = []
     tags_to_remove = []
@@ -296,14 +295,14 @@ def book_info(book):
 @register.inclusion_tag('catalogue/book_wide.html', takes_context=True)
 def book_wide(context, book):
     book_themes = book.related_themes()
-    extra_info = book.get_extra_info_value()
+    extra_info = book.extra_info
     hide_about = extra_info.get('about', '').startswith('http://wiki.wolnepodreczniki.pl')
 
     return {
         'book': book,
         'main_link': reverse('book_text', args=[book.slug]) if book.html_file else None,
         'related': book.related_info(),
-        'extra_info': book.get_extra_info_value(),
+        'extra_info': extra_info,
         'hide_about': hide_about,
         'themes': book_themes,
         'request': context.get('request'),
@@ -388,3 +387,22 @@ def tag_url(category, slug):
     return reverse('catalogue.views.tagged_object_list', args=[
         '/'.join((Tag.categories_dict[category], slug))
     ])
+
+
+@register.simple_tag
+def download_audio(book, daisy=True):
+    related = book.related_info()
+    links = []
+    if related['media'].get('mp3'):
+        links.append("<a href='%s'>%s</a>" %
+            (reverse('download_zip_mp3', args=[book.slug]),
+                BookMedia.formats['mp3'].name))
+    if related['media'].get('ogg'):
+        links.append("<a href='%s'>%s</a>" %
+            (reverse('download_zip_ogg', args=[book.slug]),
+                BookMedia.formats['ogg'].name))
+    if daisy and related['media'].get('daisy'):
+        for dsy in book.get_media('daisy'):
+            links.append("<a href='%s'>%s</a>" %
+                (dsy.file.url, BookMedia.formats['daisy'].name))
+    return ", ".join(links)