def catalogue(request, as_json=False):
- books = models.Book.objects.filter(parent=None)
- pictures = Picture.objects.all()
+ books = models.Book.objects.filter(parent=None).order_by('sort_key_author', 'sort_key')
+ pictures = Picture.objects.order_by('sort_key_author', 'sort_key')
collections = models.Collection.objects.all()
return render(request, 'catalogue/catalogue.html', locals())
raise Http404
else:
if tags:
- objects = Picture.tagged.with_all(tags).order_by(
- 'sort_key_author', 'title')
+ objects = Picture.tagged.with_all(tags).order_by('sort_key_author', 'sort_key')
else:
- objects = Picture.objects.all().order_by(
- 'sort_key_author', 'title')
+ objects = Picture.objects.all().order_by('sort_key_author', 'sort_key')
areas = PictureArea.objects.filter(picture__in=objects)
categories = split_tags(
models.Tag.objects.usage_for_queryset(
else:
all_books = models.Book.objects.filter(parent=None)
if shelf_is_set:
- objects = all_books.order_by('sort_key_author', 'title')
+ objects = all_books.order_by('sort_key_author', 'sort_key')
related_book_tags = models.Tag.objects.usage_for_queryset(
objects, counts=True).exclude(
category='set').exclude(pk__in=tags_pks)
else:
if tags:
- objects = models.Book.tagged_top_level(tags).order_by(
- 'sort_key_author', 'title')
+ objects = models.Book.tagged_top_level(tags).order_by('sort_key_author', 'sort_key')
else:
- objects = all_books.order_by('sort_key_author', 'title')
- related_book_tags = get_top_level_related_tags(tags)
+ objects = all_books.order_by('sort_key_author', 'sort_key')
+ # WTF: was outside if, overwriting value assigned if shelf_is_set
+ related_book_tags = get_top_level_related_tags(tags)
fragments = models.Fragment.objects.filter(book__in=all_books)
else:
tags = list(get_top_level_related_tags((), categories=(category,)))
- if len(tags) > 3:
- best = random.sample(tags, 3)
+ described_tags = [tag for tag in tags if tag.description]
+
+ if len(described_tags) > 4:
+ best = random.sample(described_tags, 4)
else:
- best = tags
+ best = described_tags
return render(request, 'catalogue/tag_catalogue.html', {
'tags': tags,