X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..031b8be3bf03baa724dd7e225b0555726d089341:/src/lesmianator/views.py diff --git a/src/lesmianator/views.py b/src/lesmianator/views.py index 1ef4397b3..b4cbf69b3 100644 --- a/src/lesmianator/views.py +++ b/src/lesmianator/views.py @@ -1,9 +1,8 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # -from django.shortcuts import render_to_response, get_object_or_404 -from django.template import RequestContext +import json +from django.shortcuts import render, get_object_or_404 from django.views.decorators import cache from catalogue.utils import get_random_hash @@ -15,64 +14,68 @@ def main_page(request): last = Poem.objects.all().order_by('-created_at')[:10] shelves = Tag.objects.filter(user__username='lesmianator') - return render_to_response('lesmianator/lesmianator.html', - {"last": last, "shelves": shelves}, - context_instance=RequestContext(request)) - + return render( + request, + 'lesmianator/2022/lesmianator.html' if request.EXPERIMENTS['layout'].value else 'lesmianator/lesmianator.html', + {"last": last, "shelves": shelves}) @cache.never_cache def new_poem(request): - user = request.user if request.user.is_authenticated() else None + user = request.user if request.user.is_authenticated else None text = Poem.write() p = Poem(slug=get_random_hash(text), text=text, created_by=user) p.save() - return render_to_response('lesmianator/poem.html', - {"poem": p}, - context_instance=RequestContext(request)) + return render( + request, + 'lesmianator/poem.html', + {"poem": p}) @cache.never_cache def poem_from_book(request, slug): book = get_object_or_404(Book, slug=slug) - user = request.user if request.user.is_authenticated() else None + user = request.user if request.user.is_authenticated else None text = Poem.write(Continuations.get(book)) p = Poem(slug=get_random_hash(text), text=text, created_by=user) - p.created_from = [book.id] + p.created_from = json.dumps([book.id]) p.save() - return render_to_response('lesmianator/poem.html', - {"poem": p, "books": [book], "book": book}, - context_instance=RequestContext(request)) + return render( + request, + 'lesmianator/poem.html', + {"poem": p, "books": [book], "book": book}) @cache.never_cache def poem_from_set(request, shelf): - user = request.user if request.user.is_authenticated() else None + user = request.user if request.user.is_authenticated else None tag = get_object_or_404(Tag, category='set', slug=shelf) text = Poem.write(Continuations.get(tag)) p = Poem(slug=get_random_hash(text), text=text, created_by=user) books = Book.tagged.with_any((tag,)) - p.created_from = [b.id for b in books] + p.created_from = json.dumps([b.id for b in books]) p.save() book = books[0] if len(books) == 1 else None - return render_to_response('lesmianator/poem.html', - {"poem": p, "shelf": tag, "books": books, "book": book}, - context_instance=RequestContext(request)) + return render( + request, + 'lesmianator/poem.html', + {"poem": p, "shelf": tag, "books": books, "book": book}) + def get_poem(request, poem): p = get_object_or_404(Poem, slug=poem) p.visit() - if p.created_from: - books = Book.objects.filter(id__in=p.created_from) + created_from = json.loads(p.created_from or '[]') + if created_from: + books = Book.objects.filter(id__in=created_from) book = books[0] if len(books) == 1 else None else: books = book = None - return render_to_response('lesmianator/poem.html', - {"poem": p, "books": books, "book": book}, - context_instance=RequestContext(request)) - - + return render( + request, + 'lesmianator/poem.html', + {"poem": p, "books": books, "book": book})