vary template cache on language
[wolnelektury.git] / src / catalogue / templatetags / catalogue_tags.py
index afb2e7e..6906f60 100644 (file)
@@ -18,6 +18,7 @@ from ssify import ssi_variable
 from catalogue.helpers import get_audiobook_tags
 from catalogue.models import Book, BookMedia, Fragment, Tag, Source
 from catalogue.constants import LICENSES
+from catalogue.utils import is_subscribed
 from picture.models import Picture
 
 register = template.Library()
@@ -354,6 +355,8 @@ def plain_list(context, object_list, with_initials=True, by_author=False, choice
                 last_initial = initial
                 names.append((obj.author_unicode() if by_author else initial, []))
         names[-1][1].append(obj)
+    if names[0] == ('', []):
+        del names[0]
     return {
         'paged': paged,
         'names': names,
@@ -401,9 +404,9 @@ def related_books(context, instance, limit=6, random=1, taken=0):
 
 
 @register.simple_tag
-def download_audio(book, daisy=True):
+def download_audio(book, daisy=True, mp3=True):
     links = []
-    if book.has_media('mp3'):
+    if mp3 and book.has_media('mp3'):
         links.append("<a href='%s'>%s</a>" % (
             reverse('download_zip_mp3', args=[book.slug]), BookMedia.formats['mp3'].name))
     if book.has_media('ogg'):
@@ -489,3 +492,13 @@ def strip_tag(html, tag_name):
     # docelowo może być warto zainstalować BeautifulSoup do takich rzeczy
     import re
     return re.sub(r"<.?%s\b[^>]*>" % tag_name, "", html)
+
+
+@register.filter
+def status(book, user):
+    if not book.preview:
+        return 'open'
+    elif is_subscribed(user):
+        return 'preview'
+    else:
+        return 'closed'