X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/17d853e607e5db956defac483a76459eb654811c..1ceb9c4f943943f72da281d4fdb7473d70dcdff9:/src/documents/views.py diff --git a/src/documents/views.py b/src/documents/views.py index ea222361..ecc92199 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -23,7 +23,7 @@ from django.utils.translation import gettext_lazy as _ from django.views.decorators.http import require_POST from django_cas_ng.decorators import user_passes_test -from apiclient import NotAuthorizedError +from apiclient import api_call, NotAuthorizedError from . import forms from . import helpers from .helpers import active_tab @@ -65,9 +65,17 @@ def my(request): key=lambda x: x[1]['time'], reverse=True) for k, v in last_books: v['time'] = datetime.fromtimestamp(v['time']) + try: + resp = api_call(request.user, 'username/') + except NotAuthorizedError: + wllogin = None + else: + wllogin = resp['username'] + return render(request, 'documents/my_page.html', { 'last_books': last_books, "logout_to": '/', + "wllogin": wllogin, }) @@ -99,7 +107,7 @@ def activity(request, isodate=None): @never_cache def logout_then_redirect(request): auth.logout(request) - return http.HttpResponseRedirect(urlquote_plus(request.GET.get('next', '/'), safe='/?=')) + return http.HttpResponseRedirect(quote_plus(request.GET.get('next', '/'), safe='/?=')) @permission_required('documents.add_book') @@ -262,6 +270,7 @@ def book_html(request, slug): return render(request, 'documents/book_text.html', locals()) +@login_required @never_cache def book_pdf(request, slug, mobile=False): book = get_object_or_404(Book, slug=slug) @@ -278,6 +287,7 @@ def book_pdf(request, slug, mobile=False): book.slug + '.pdf', 'application/pdf') +@login_required @never_cache def book_epub(request, slug): book = get_object_or_404(Book, slug=slug) @@ -285,17 +295,20 @@ def book_epub(request, slug): return HttpResponseForbidden("Not authorized.") # TODO: move to celery - doc = book.wldocument() + doc = book.wldocument(librarian2=True) # TODO: error handling - #### Problemas: images in children. - epub = doc.as_epub(base_url='file://' + book.gallery_path() + '/').get_bytes() + from librarian.builders import EpubBuilder + epub = EpubBuilder( + base_url='file://' + book.gallery_path() + '/' + ).build(doc).get_bytes() response = HttpResponse(content_type='application/epub+zip') response['Content-Disposition'] = 'attachment; filename=%s' % book.slug + '.epub' response.write(epub) return response +@login_required @never_cache def book_mobi(request, slug): book = get_object_or_404(Book, slug=slug) @@ -303,9 +316,12 @@ def book_mobi(request, slug): return HttpResponseForbidden("Not authorized.") # TODO: move to celery - doc = book.wldocument() + doc = book.wldocument(librarian2=True) # TODO: error handling - mobi = doc.as_mobi(base_url='file://' + book.gallery_path() + '/').get_bytes() + from librarian.builders import MobiBuilder + mobi = MobiBuilder( + base_url='file://' + book.gallery_path() + '/' + ).build(doc).get_bytes() response = HttpResponse(content_type='application/x-mobipocket-ebook') response['Content-Disposition'] = 'attachment; filename=%s' % book.slug + '.mobi' response.write(mobi) @@ -346,14 +362,21 @@ def book(request, slug): publish_error = book.publishable_error() publishable = publish_error is None + stats = None try: - doc = book.wldocument() + doc = book.wldocument(librarian2=True) except: doc = None - + else: + try: + stats = doc.get_statistics() + except: + pass + return render(request, "documents/book_detail.html", { "book": book, "doc": doc, + "stats": stats, "publishable": publishable, "publishable_error": publish_error, "form": form, @@ -444,7 +467,7 @@ def chunk_edit(request, slug, chunk): form.save() go_next = request.GET.get('next', None) if go_next: - go_next = urlquote_plus(unquote(iri_to_uri(go_next)), safe='/?=&') + go_next = quote_plus(unquote(iri_to_uri(go_next)), safe='/?=&') else: go_next = doc.book.get_absolute_url() return http.HttpResponseRedirect(go_next) @@ -455,7 +478,7 @@ def chunk_edit(request, slug, chunk): if referer: parts = urlsplit(referer) parts = ['', ''] + list(parts[2:]) - go_next = urlquote_plus(urlunsplit(parts)) + go_next = quote_plus(urlunsplit(parts)) else: go_next = ''