picture tags, areas overhaul #1
[wolnelektury.git] / apps / catalogue / templatetags / catalogue_tags.py
index af9bfae..2020d90 100644 (file)
@@ -14,7 +14,7 @@ from django.core.urlresolvers import reverse
 from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
 from django.utils.translation import ugettext as _
 
-from catalogue.utils import split_tags
+from catalogue.utils import split_tags, related_tag_name as _related_tag_name
 from catalogue.models import Book, BookMedia, Fragment, Tag
 from catalogue.constants import LICENSES
 
@@ -311,6 +311,11 @@ def inline_tag_list(tags, choices=None):
     return tag_list(tags, choices)
 
 
+@register.inclusion_tag('catalogue/collection_list.html')
+def collection_list(collections):
+    return locals()
+
+
 @register.inclusion_tag('catalogue/book_info.html')
 def book_info(book):
     return locals()
@@ -345,8 +350,8 @@ def book_short(context, book):
 
 @register.inclusion_tag('catalogue/book_mini_box.html')
 def book_mini(book):
-    author_str = ", ".join(name
-        for name, url in book.related_info()['tags']['author'])
+    author_str = ", ".join(related_tag_name(tag)
+        for tag in book.related_info()['tags'].get('author', ()))
     return {
         'book': book,
         'author_str': author_str,
@@ -356,8 +361,9 @@ def book_mini(book):
 @register.inclusion_tag('catalogue/work-list.html', takes_context=True)
 def work_list(context, object_list):
     request = context.get('request')
-    if object_list:
-        object_type = type(object_list[0]).__name__
+    for obj in object_list:
+        obj.object_type = type(object_list[0]).__name__
+
     return locals()
 
 
@@ -458,3 +464,14 @@ def license_icon(license_url):
         "icon": "img/licenses/%s.png" % known['icon'],
         "license_description": known['description'],
     }
+
+
+@register.simple_tag
+def related_tag_name(tag, lang=None):
+    return _related_tag_name(tag, lang)
+
+
+@register.simple_tag
+def class_name(obj):
+    return obj.__class__.__name__
+