+@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 ''
+
+