fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixes #815: books arrangement
[wolnelektury.git]
/
apps
/
catalogue
/
views.py
diff --git
a/apps/catalogue/views.py
b/apps/catalogue/views.py
index
556bae1
..
79faca7
100644
(file)
--- a/
apps/catalogue/views.py
+++ b/
apps/catalogue/views.py
@@
-81,8
+81,13
@@
def book_list(request):
orphans = []
books_by_author = SortedDict()
orphans = []
books_by_author = SortedDict()
+ books_nav = SortedDict()
for tag in models.Tag.objects.filter(category='author'):
books_by_author[tag] = []
for tag in models.Tag.objects.filter(category='author'):
books_by_author[tag] = []
+ if books_nav.has_key(tag.sort_key[0]):
+ books_nav[tag.sort_key[0]].append(tag)
+ else:
+ books_nav[tag.sort_key[0]] = [tag]
for book in books_by_parent[None]:
authors = list(book.tags.filter(category='author'))
for book in books_by_parent[None]:
authors = list(book.tags.filter(category='author'))
@@
-159,7
+164,7
@@
def tagged_object_list(request, tags=''):
objects = fragments
else:
# get relevant books and their tags
objects = fragments
else:
# get relevant books and their tags
- objects = models.Book.tagged.with_all(tags)
.order_by()
+ objects = models.Book.tagged.with_all(tags)
if not shelf_is_set:
# eliminate descendants
l_tags = models.Tag.objects.filter(category='book', slug__in=[book.book_tag_slug() for book in objects])
if not shelf_is_set:
# eliminate descendants
l_tags = models.Tag.objects.filter(category='book', slug__in=[book.book_tag_slug() for book in objects])
@@
-257,6
+262,8
@@
def book_stub_detail(request, slug):
def book_text(request, slug):
book = get_object_or_404(models.Book, slug=slug)
def book_text(request, slug):
book = get_object_or_404(models.Book, slug=slug)
+ if not book.has_html_file():
+ raise Http404
book_themes = {}
for fragment in book.fragments.all():
for theme in fragment.tags.filter(category='theme'):
book_themes = {}
for fragment in book.fragments.all():
for theme in fragment.tags.filter(category='theme'):