break
break
- # Choose a collection for main.
- try:
- ctx['collection'] = Collection.objects.order_by('?')[:1][0]
- except IndexError:
- pass
+ # Choose collections for main.
+ ctx['collections'] = Collection.objects.filter(listed=True).order_by('?')[:4]
best = []
best_places = 5
- for recommended in Collection.objects.filter(role='recommend').order_by('?'):
+ recommended_collection = None
+ for recommended in Collection.objects.filter(listed=True, role='recommend').order_by('?'):
+ if recommended_collection is None:
+ recommended_collection = recommended
books = list(recommended.get_books().exclude(id__in=[b.id for b in best]).order_by('?')[:best_places])
best.extend(books)
best_places -= len(books)
if not best_places:
break
+ ctx['recommended_collection'] = recommended_collection
if best_places:
best.extend(
list(