from datetime import datetime, date, timedelta
import logging
import os
-from urllib.parse import unquote, urlsplit, urlunsplit
+from urllib.parse import quote_plus, unquote, urlsplit, urlunsplit
from django.conf import settings
from django.contrib import auth
from django.http.response import HttpResponseRedirect
from django.shortcuts import get_object_or_404, render
from django.utils.encoding import iri_to_uri
-from django.utils.http import urlquote_plus
-from django.utils.translation import ugettext_lazy as _
+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
doc = book.wldocument()
# TODO: error handling
customizations = ['26pt', 'nothemes', 'nomargins', 'notoc'] if mobile else None
- pdf_file = doc.as_pdf(cover=True, ilustr_path=book.gallery_path(), customizations=customizations)
+ pdf_file = doc.as_pdf(cover=True, base_url=request.build_absolute_uri(book.gallery_path()), customizations=customizations)
from .ebook_utils import serve_file
return serve_file(pdf_file.get_filename(),
book.slug + '.pdf', 'application/pdf')
# TODO: move to celery
doc = book.wldocument()
# TODO: error handling
- epub = doc.as_epub(ilustr_path=book.gallery_path()).get_bytes()
+
+ #### Problemas: images in children.
+ epub = doc.as_epub(base_url='file://' + book.gallery_path() + '/').get_bytes()
response = HttpResponse(content_type='application/epub+zip')
response['Content-Disposition'] = 'attachment; filename=%s' % book.slug + '.epub'
response.write(epub)
# TODO: move to celery
doc = book.wldocument()
# TODO: error handling
- mobi = doc.as_mobi(ilustr_path=book.gallery_path()).get_bytes()
+ mobi = doc.as_mobi(base_url='file://' + book.gallery_path() + '/').get_bytes()
response = HttpResponse(content_type='application/x-mobipocket-ebook')
response['Content-Disposition'] = 'attachment; filename=%s' % book.slug + '.mobi'
response.write(mobi)
publish_error = book.publishable_error()
publishable = publish_error is None
+ try:
+ doc = book.wldocument()
+ except:
+ doc = None
+
return render(request, "documents/book_detail.html", {
"book": book,
+ "doc": doc,
"publishable": publishable,
"publishable_error": publish_error,
"form": form,
if form.is_valid():
days = form.cleaned_data['days']
beta = form.cleaned_data['beta']
+ hidden = form.cleaned_data['hidden']
else:
days = 0
beta = False
+ hidden = False
book = get_object_or_404(Book, slug=slug)
if not book.accessible(request):
return HttpResponseForbidden("Not authorized.")
try:
protocol = 'https://' if request.is_secure() else 'http://'
- book.publish(request.user, host=protocol + request.get_host(), days=days, beta=beta)
+ book.publish(request.user, host=protocol + request.get_host(), days=days, beta=beta, hidden=hidden)
except NotAuthorizedError:
return http.HttpResponseRedirect(reverse('apiclient_oauth' if not beta else 'apiclient_beta_oauth'))
except BaseException as e: