X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6e3e08e5354baaf82f7d46cbd88883e4c7426dce..b0b9c1f0f9f4cc0f5c4d00d913735ab6a81bf214:/src/catalogue/views.py diff --git a/src/catalogue/views.py b/src/catalogue/views.py index c545cdf79..1f2db19c6 100644 --- a/src/catalogue/views.py +++ b/src/catalogue/views.py @@ -7,9 +7,8 @@ import random from django.conf import settings from django.http.response import HttpResponseForbidden -from django.template import RequestContext from django.template.loader import render_to_string -from django.shortcuts import render_to_response, get_object_or_404, render, redirect +from django.shortcuts import get_object_or_404, render, redirect from django.http import HttpResponse, HttpResponseRedirect, Http404, HttpResponsePermanentRedirect from django.core.urlresolvers import reverse from django.db.models import Q, QuerySet @@ -20,13 +19,14 @@ from django.utils.translation import ugettext as _, ugettext_lazy from ajaxable.utils import AjaxableFormView from pdcounter import views as pdcounter_views +from paypal.rest import user_is_subscribed from picture.models import Picture, PictureArea from ssify import ssi_included, ssi_expect, SsiVariable as Var from catalogue import constants from catalogue import forms from catalogue.helpers import get_top_level_related_tags from catalogue.models import Book, Collection, Tag, Fragment -from catalogue.utils import split_tags, is_subscribed +from catalogue.utils import split_tags from catalogue.models.tag import prefetch_relations from wolnelektury.utils import is_crawler @@ -51,15 +51,14 @@ def book_list(request, filters=None, template_name='catalogue/book_list.html', for tag in books_by_author: if books_by_author[tag]: books_nav.setdefault(tag.sort_key[0], []).append(tag) - # WTF: dlaczego nie include? - return render_to_response(template_name, { + return render(request, template_name, { 'rendered_nav': render_to_string(nav_template_name, {'books_nav': books_nav}), 'rendered_book_list': render_to_string(list_template_name, { 'books_by_author': books_by_author, 'orphans': orphans, 'books_by_parent': books_by_parent, }) - }, context_instance=RequestContext(request)) + }) def daisy_list(request): @@ -80,9 +79,9 @@ def differentiate_tags(request, tags, ambiguous_slugs): 'url_args': '/'.join((beginning, tag.url_chunk, unparsed)).strip('/'), 'tags': [tag] }) - return render_to_response( - 'catalogue/differentiate_tags.html', {'tags': tags, 'options': options, 'unparsed': ambiguous_slugs[1:]}, - context_instance=RequestContext(request)) + return render( + request, + 'catalogue/differentiate_tags.html', {'tags': tags, 'options': options, 'unparsed': ambiguous_slugs[1:]}) def object_list(request, objects, fragments=None, related_tags=None, tags=None, list_type='books', extra=None): @@ -133,22 +132,15 @@ def object_list(request, objects, fragments=None, related_tags=None, tags=None, } if extra: result.update(extra) - return render_to_response( + return render( + request, 'catalogue/tagged_object_list.html', result, - context_instance=RequestContext(request)) + ) def literature(request): books = Book.objects.filter(parent=None) - - # last_published = Book.objects.exclude(cover_thumb='').filter(parent=None).order_by('-created_at')[:20] - # most_popular = Book.objects.exclude(cover_thumb='')\ - # .order_by('-popularity__count', 'sort_key_author', 'sort_key')[:20] return object_list(request, books, related_tags=get_top_level_related_tags([])) - # extra={ - # 'last_published': last_published, - # 'most_popular': most_popular, - # }) def gallery(request): @@ -266,12 +258,15 @@ def book_fragments(request, slug, theme_slug): fragments = Fragment.tagged.with_all([theme]).filter( Q(book=book) | Q(book__ancestor=book)) - return render_to_response('catalogue/book_fragments.html', { - 'book': book, - 'theme': theme, - 'fragments': fragments, - 'active_menu_item': 'books', - }, context_instance=RequestContext(request)) + return render( + request, + 'catalogue/book_fragments.html', + { + 'book': book, + 'theme': theme, + 'fragments': fragments, + 'active_menu_item': 'books', + }) def book_detail(request, slug): @@ -280,12 +275,14 @@ def book_detail(request, slug): except Book.DoesNotExist: return pdcounter_views.book_stub_detail(request, slug) - return render_to_response('catalogue/book_detail.html', { - 'book': book, - 'tags': book.tags.exclude(category__in=('set', 'theme')), - 'book_children': book.children.all().order_by('parent_number', 'sort_key'), - 'active_menu_item': 'books', - }, context_instance=RequestContext(request)) + return render( + request, + 'catalogue/book_detail.html', + { + 'book': book, + 'book_children': book.children.all().order_by('parent_number', 'sort_key'), + 'active_menu_item': 'books', + }) # używane w publicznym interfejsie @@ -296,23 +293,26 @@ def player(request, slug): audiobooks, projects = book.get_audiobooks() - return render_to_response('catalogue/player.html', { - 'book': book, - 'audiobook': '', - 'audiobooks': audiobooks, - 'projects': projects, - }, context_instance=RequestContext(request)) + return render( + request, + 'catalogue/player.html', + { + 'book': book, + 'audiobook': '', + 'audiobooks': audiobooks, + 'projects': projects, + }) def book_text(request, slug): book = get_object_or_404(Book, slug=slug) - if book.preview and not is_subscribed(request.user): + if book.preview and not user_is_subscribed(request.user): return HttpResponseRedirect(book.get_absolute_url()) if not book.has_html_file(): raise Http404 - return render_to_response('catalogue/book_text.html', {'book': book}, context_instance=RequestContext(request)) + return render(request, 'catalogue/book_text.html', {'book': book}) # ========= @@ -347,7 +347,7 @@ def book_info(request, book_id, lang='pl'): book = get_object_or_404(Book, id=book_id) # set language by hand translation.activate(lang) - return render_to_response('catalogue/book_info.html', {'book': book}, context_instance=RequestContext(request)) + return render(request, 'catalogue/book_info.html', {'book': book}) def tag_info(request, tag_id): @@ -362,7 +362,7 @@ def embargo_link(request, format_, slug): media_file = book.get_media(format_) if not book.preview: return HttpResponseRedirect(media_file.url) - if not is_subscribed(request.user): + if not user_is_subscribed(request.user): return HttpResponseRedirect(book.get_absolute_url()) return HttpResponse(media_file, content_type=constants.EBOOK_CONTENT_TYPES[format_]) @@ -396,7 +396,7 @@ class CustomPDFFormView(AjaxableFormView): def validate_object(self, obj, request): book = obj - if book.preview and not is_subscribed(request.user): + if book.preview and not user_is_subscribed(request.user): return HttpResponseRedirect(book.get_absolute_url()) return super(CustomPDFFormView, self).validate_object(obj, request)