fnp
/
redakcja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix for bad documents.
[redakcja.git]
/
src
/
documents
/
views.py
diff --git
a/src/documents/views.py
b/src/documents/views.py
index
ea22236
..
ecc9219
100644
(file)
--- 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 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
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'])
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": '/',
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)
@never_cache
def logout_then_redirect(request):
auth.logout(request)
- return http.HttpResponseRedirect(
url
quote_plus(request.GET.get('next', '/'), safe='/?='))
+ return http.HttpResponseRedirect(quote_plus(request.GET.get('next', '/'), safe='/?='))
@permission_required('documents.add_book')
@permission_required('documents.add_book')
@@
-262,6
+270,7
@@
def book_html(request, slug):
return render(request, 'documents/book_text.html', locals())
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)
@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')
book.slug + '.pdf', 'application/pdf')
+@login_required
@never_cache
def book_epub(request, slug):
book = get_object_or_404(Book, slug=slug)
@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
return HttpResponseForbidden("Not authorized.")
# TODO: move to celery
- doc = book.wldocument()
+ doc = book.wldocument(
librarian2=True
)
# TODO: error handling
# 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
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)
@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
return HttpResponseForbidden("Not authorized.")
# TODO: move to celery
- doc = book.wldocument()
+ doc = book.wldocument(
librarian2=True
)
# TODO: error handling
# 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)
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
publish_error = book.publishable_error()
publishable = publish_error is None
+ stats = None
try:
try:
- doc = book.wldocument()
+ doc = book.wldocument(
librarian2=True
)
except:
doc = None
except:
doc = None
-
+ else:
+ try:
+ stats = doc.get_statistics()
+ except:
+ pass
+
return render(request, "documents/book_detail.html", {
"book": book,
"doc": doc,
return render(request, "documents/book_detail.html", {
"book": book,
"doc": doc,
+ "stats": stats,
"publishable": publishable,
"publishable_error": publish_error,
"form": form,
"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:
form.save()
go_next = request.GET.get('next', None)
if go_next:
- go_next =
url
quote_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)
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:])
if referer:
parts = urlsplit(referer)
parts = ['', ''] + list(parts[2:])
- go_next =
url
quote_plus(urlunsplit(parts))
+ go_next = quote_plus(urlunsplit(parts))
else:
go_next = ''
else:
go_next = ''