Merge branch 'master' of git@github.com:fnp/wolnelektury
[wolnelektury.git] / apps / catalogue / templatetags / catalogue_tags.py
index 25376f8..c1d318a 100644 (file)
@@ -61,9 +61,16 @@ def simple_title(tags):
     return capfirst(', '.join(title))
 
 
+def book_stub_title(book):
+    return ', '.join((book.author, book.title))
+
+
 @register.simple_tag
 def book_title(book, html_links=False):
-    names = list(book.tags.filter(category='author'))
+    try:
+        names = list(book.tags.filter(category='author'))
+    except AttributeError:
+        return book_stub_title(book)
 
     books = []
     while book:
@@ -148,6 +155,18 @@ def title_from_tags(tags):
     return capfirst(title)
 
 
+@register.simple_tag
+def book_tree(book_list, books_by_parent):
+    text = "".join("<li><a href='%s'>%s</a>%s</li>" % (
+        book.get_absolute_url(), book.title, book_tree(books_by_parent.get(book, ()), books_by_parent)
+        ) for book in book_list)
+
+    if text:
+        return "<ol>%s</ol>" % text
+    else:
+        return ''
+
+
 @register.simple_tag
 def user_creation_form():
     return RegistrationForm(prefix='registration').as_ul()