+
+####
+# Includes
+####
+
+
+@ssi_included
+def book_mini(request, pk, with_link=True):
+ book = get_object_or_404(models.Book, pk=pk)
+ author_str = ", ".join(tag.name
+ for tag in book.tags.filter(category='author'))
+ return render(request, 'catalogue/book_mini_box.html', {
+ 'book': book,
+ 'author_str': author_str,
+ 'with_link': with_link,
+ 'show_lang': book.language_code() != settings.LANGUAGE_CODE,
+ })
+
+
+@ssi_included(get_ssi_vars=lambda pk: (lambda ipk: (
+ ('ssify.get_csrf_token',),
+ ('social_tags.likes_book', (ipk,)),
+ ('social_tags.book_shelf_tags', (ipk,)),
+ ))(ssi_expect(pk, int)))
+def book_short(request, pk):
+ book = get_object_or_404(models.Book, pk=pk)
+ stage_note, stage_note_url = book.stage_note()
+
+ return render(request, 'catalogue/book_short.html', {
+ 'book': book,
+ 'has_audio': book.has_media('mp3'),
+ 'main_link': book.get_absolute_url(),
+ 'parents': book.parents(),
+ 'tags': split_tags(book.tags.exclude(category__in=('set', 'theme'))),
+ 'show_lang': book.language_code() != settings.LANGUAGE_CODE,
+ 'stage_note': stage_note,
+ 'stage_note_url': stage_note_url,
+ })
+
+
+@ssi_included(get_ssi_vars=lambda pk: book_short.get_ssi_vars(pk) +
+ (lambda ipk: (
+ ('social_tags.choose_cite', [ipk]),
+ ('catalogue_tags.choose_fragment', [ipk], {
+ 'unless': V('social_tags.choose_cite', [ipk])}),
+ ))(ssi_expect(pk, int)))
+def book_wide(request, pk):
+ book = get_object_or_404(models.Book, pk=pk)
+ stage_note, stage_note_url = book.stage_note()
+ extra_info = book.extra_info
+
+ return render(request, 'catalogue/book_wide.html', {
+ 'book': book,
+ 'has_audio': book.has_media('mp3'),
+ 'parents': book.parents(),
+ 'tags': split_tags(book.tags.exclude(category__in=('set', 'theme'))),
+ 'show_lang': book.language_code() != settings.LANGUAGE_CODE,
+ 'stage_note': stage_note,
+ 'stage_note_url': stage_note_url,
+
+ 'main_link': reverse('book_text', args=[book.slug]) if book.html_file else None,
+ 'extra_info': extra_info,
+ 'hide_about': extra_info.get('about', '').startswith('http://wiki.wolnepodreczniki.pl'),
+ 'themes': book.related_themes(),
+ })
+
+
+@ssi_included
+def fragment_short(request, pk):
+ fragment = get_object_or_404(models.Fragment, pk=pk)
+ return render(request, 'catalogue/fragment_short.html',
+ {'fragment': fragment})
+
+
+@ssi_included
+def fragment_promo(request, pk):
+ fragment = get_object_or_404(models.Fragment, pk=pk)
+ return render(request, 'catalogue/fragment_promo.html', {
+ 'fragment': fragment
+ })