cleanup
[wolnelektury.git] / src / catalogue / templatetags / catalogue_tags.py
index 6ee1777..7f34c13 100644 (file)
@@ -106,7 +106,7 @@ def nice_title_from_tags(tags, related_tags):
             # No info on genre, but there's only one kind related.
             subpieces = []
             pieces.append([
-                t.collective_noun or t.name for t in self['kind']
+                t.collective_noun or t.name for t in related_tags['kind']
             ])
             plural = False
         else:
@@ -131,9 +131,9 @@ def nice_title_from_tags(tags, related_tags):
     p = []
     for sublist in pieces:
         for item in sublist[:-2]:
-            p.append(item) + ','
+            p.append(item + ',')
         for item in sublist[-2:-1]:
-            p.append(item) + ' i'
+            p.append(item + ' i')
         p.append(sublist[-1])
 
     return ' '.join(p)
@@ -151,19 +151,6 @@ def book_tree(book_list, books_by_parent):
         return ''
 
 
-@register.simple_tag
-def audiobook_tree(book_list, books_by_parent):
-    text = "".join("<li><a class='open-player' href='%s'>%s</a>%s</li>" % (
-        reverse("book_player", args=[book.slug]), book.title,
-        audiobook_tree(books_by_parent.get(book, ()), books_by_parent)
-    ) for book in book_list)
-
-    if text:
-        return mark_safe("<ol>%s</ol>" % text)
-    else:
-        return ''
-
-
 @register.simple_tag
 def book_tree_texml(book_list, books_by_parent, depth=1):
     return mark_safe("".join("""
@@ -340,12 +327,6 @@ def book_info(book):
     }
 
 
-@register.inclusion_tag('catalogue/work-list.html', takes_context=True)
-def work_list(context, object_list):
-    request = context.get('request')
-    return {'object_list': object_list, 'request': request}
-
-
 @register.inclusion_tag('catalogue/plain_list.html', takes_context=True)
 def plain_list(context, object_list, with_initials=True, by_author=False, choice=None, book=None, list_type='books',
                paged=True, initial_blocks=False):
@@ -424,7 +405,18 @@ def related_books_2022(book=None, picture=None, limit=4, taken=0):
     books = Book.tagged.related_to(instance, books_qs)[:max_books]
 
     return books
-    
+
+@register.simple_tag
+def related_pictures_2022(book=None, picture=None, limit=4, taken=0):
+    limit -= taken
+    max_books = limit
+
+    books_qs = Picture.objects.all()
+    instance = book or picture
+    books = Picture.tagged.related_to(instance, books_qs)[:max_books]
+
+    return books
+
 
 @register.simple_tag
 def download_audio(book, daisy=True, mp3=True):
@@ -470,11 +462,6 @@ def license_locative(license_url, default):
     return LICENSES.get(license_url, {}).get('locative', default)
 
 
-@register.filter
-def class_name(obj):
-    return obj.__class__.__name__
-
-
 @register.simple_tag
 def source_name(url):
     url = url.lstrip()
@@ -550,6 +537,8 @@ def content_warning(book):
 @register.inclusion_tag('catalogue/preview_ad.html', takes_context=True)
 def preview_ad(context):
     book = Book.objects.filter(parent=None, preview=True).first()
+    if book is None:
+        return {}
     return {
         'accessible': book.is_accessible_to(context['request'].user),
         'book': book,
@@ -558,6 +547,8 @@ def preview_ad(context):
 @register.inclusion_tag('catalogue/preview_ad_homepage.html', takes_context=True)
 def preview_ad_homepage(context):
     book = Book.objects.filter(parent=None, preview=True).first()
+    if book is None:
+        return {}
     return {
         'accessible': book.is_accessible_to(context['request'].user),
         'book': book,