Merge branch 'master' into rwd
[wolnelektury.git] / apps / catalogue / templatetags / catalogue_tags.py
index 8cf3acf..e80a5ff 100644 (file)
@@ -14,9 +14,9 @@ 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
+from catalogue.constants import LICENSES, LANGUAGES_3TO2
 
 register = template.Library()
 
@@ -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()
@@ -330,6 +335,7 @@ def book_wide(context, book):
         'hide_about': hide_about,
         'themes': book_themes,
         'request': context.get('request'),
+        'show_lang': book.language_code() != settings.LANGUAGE_CODE,
     }
 
 
@@ -340,22 +346,28 @@ def book_short(context, book):
         'main_link': book.get_absolute_url(),
         'related': book.related_info(),
         'request': context.get('request'),
+        'show_lang': book.language_code() != settings.LANGUAGE_CODE,
     }
 
 
 @register.inclusion_tag('catalogue/book_mini_box.html')
-def book_mini(book):
+def book_mini(book, with_link=True):
+    author_str = ", ".join(related_tag_name(tag)
+        for tag in book.related_info()['tags'].get('author', ()))
     return {
         'book': book,
-        'related': book.related_info(),
+        'author_str': author_str,
+        'with_link': with_link,
+        'show_lang': book.language_code() != settings.LANGUAGE_CODE,
     }
 
 
 @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()
 
 
@@ -456,3 +468,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__
+