images in epub/mobi
authorJan Szejko <j-sz@o2.pl>
Wed, 16 Mar 2016 09:22:15 +0000 (10:22 +0100)
committerJan Szejko <j-sz@o2.pl>
Wed, 16 Mar 2016 09:22:45 +0000 (10:22 +0100)
apps/catalogue/locale/pl/LC_MESSAGES/django.mo
apps/catalogue/locale/pl/LC_MESSAGES/django.po
apps/catalogue/templates/catalogue/book_detail.html
apps/catalogue/urls.py
apps/catalogue/views.py
lib/librarian

index 17689b8..8c88b6b 100644 (file)
Binary files a/apps/catalogue/locale/pl/LC_MESSAGES/django.mo and b/apps/catalogue/locale/pl/LC_MESSAGES/django.mo differ
index 64ddd9f..67f10ef 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Platforma Redakcyjna\n"
 "Report-Msgid-Bugs-To: \n"
 msgstr ""
 "Project-Id-Version: Platforma Redakcyjna\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-03-27 13:16+0100\n"
+"POT-Creation-Date: 2016-03-15 18:38+0100\n"
 "PO-Revision-Date: 2014-03-27 13:17+0100\n"
 "Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
 "Language-Team: Fundacja Nowoczesna Polska <fundacja@nowoczesnapolska.org."
 "PO-Revision-Date: 2014-03-27 13:17+0100\n"
 "Last-Translator: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>\n"
 "Language-Team: Fundacja Nowoczesna Polska <fundacja@nowoczesnapolska.org."
@@ -48,24 +48,24 @@ msgstr "Część z tym slugiem już istnieje"
 msgid "Append to"
 msgstr "Dołącz do"
 
 msgid "Append to"
 msgstr "Dołącz do"
 
-#: views.py:166
+#: views.py:168
 #, python-format
 msgid "Slug already used for %s"
 msgstr "Slug taki sam jak dla pliku %s"
 
 #, python-format
 msgid "Slug already used for %s"
 msgstr "Slug taki sam jak dla pliku %s"
 
-#: views.py:168
+#: views.py:170
 msgid "Slug already used in repository."
 msgstr "Dokument o tym slugu już istnieje w repozytorium."
 
 msgid "Slug already used in repository."
 msgstr "Dokument o tym slugu już istnieje w repozytorium."
 
-#: views.py:174
+#: views.py:176
 msgid "File should be UTF-8 encoded."
 msgstr "Plik powinien mieć kodowanie UTF-8."
 
 msgid "File should be UTF-8 encoded."
 msgstr "Plik powinien mieć kodowanie UTF-8."
 
-#: views.py:576 models/book.py:56
+#: views.py:595 models/book.py:56
 msgid "books"
 msgstr "książki"
 
 msgid "books"
 msgstr "książki"
 
-#: views.py:578
+#: views.py:597
 msgid "scan gallery"
 msgstr "galeria skanów"
 
 msgid "scan gallery"
 msgstr "galeria skanów"
 
@@ -97,27 +97,27 @@ msgstr "numeracja rodzica"
 msgid "book"
 msgstr "książka"
 
 msgid "book"
 msgstr "książka"
 
-#: models/book.py:255
+#: models/book.py:261
 msgid "No chunks in the book."
 msgstr "Książka nie ma części."
 
 msgid "No chunks in the book."
 msgstr "Książka nie ma części."
 
-#: models/book.py:259
+#: models/book.py:265
 msgid "Not all chunks have publishable revisions."
 msgstr "Niektóre części nie są gotowe do publikacji."
 
 msgid "Not all chunks have publishable revisions."
 msgstr "Niektóre części nie są gotowe do publikacji."
 
-#: models/book.py:266 models/image.py:82
+#: models/book.py:272 models/image.py:82
 msgid "Invalid XML"
 msgstr "Nieprawidłowy XML"
 
 msgid "Invalid XML"
 msgstr "Nieprawidłowy XML"
 
-#: models/book.py:268 models/image.py:84
+#: models/book.py:274 models/image.py:84
 msgid "No Dublin Core found."
 msgstr "Brak sekcji Dublin Core."
 
 msgid "No Dublin Core found."
 msgstr "Brak sekcji Dublin Core."
 
-#: models/book.py:270 models/image.py:86
+#: models/book.py:276 models/image.py:86
 msgid "Invalid Dublin Core"
 msgstr "Nieprawidłowy Dublin Core"
 
 msgid "Invalid Dublin Core"
 msgstr "Nieprawidłowy Dublin Core"
 
-#: models/book.py:273 models/image.py:90
+#: models/book.py:279 models/image.py:90
 msgid "rdf:about is not"
 msgstr "rdf:about jest różny od"
 
 msgid "rdf:about is not"
 msgstr "rdf:about jest różny od"
 
@@ -267,22 +267,26 @@ msgstr "Wersja PDF"
 msgid "EPUB version"
 msgstr "Wersja EPUB"
 
 msgid "EPUB version"
 msgstr "Wersja EPUB"
 
-#: templates/catalogue/book_detail.html:85
+#: templates/catalogue/book_detail.html:73
+msgid "MOBI version"
+msgstr "Wersja MOBI"
+
+#: templates/catalogue/book_detail.html:86
 #: templates/catalogue/image_detail.html:57
 msgid "Publish"
 msgstr "Opublikuj"
 
 #: templates/catalogue/image_detail.html:57
 msgid "Publish"
 msgstr "Opublikuj"
 
-#: templates/catalogue/book_detail.html:89
+#: templates/catalogue/book_detail.html:90
 #: templates/catalogue/image_detail.html:61
 msgid "Log in to publish."
 msgstr "Zaloguj się, aby opublikować."
 
 #: templates/catalogue/image_detail.html:61
 msgid "Log in to publish."
 msgstr "Zaloguj się, aby opublikować."
 
-#: templates/catalogue/book_detail.html:92
+#: templates/catalogue/book_detail.html:93
 #: templates/catalogue/image_detail.html:64
 msgid "This book can't be published yet, because:"
 msgstr "Ta książka nie może jeszcze zostać opublikowana. Powód:"
 
 #: templates/catalogue/image_detail.html:64
 msgid "This book can't be published yet, because:"
 msgstr "Ta książka nie może jeszcze zostać opublikowana. Powód:"
 
-#: templates/catalogue/book_detail.html:102
+#: templates/catalogue/book_detail.html:103
 #: templates/catalogue/image_detail.html:72
 msgid "Comments"
 msgstr "Komentarze"
 #: templates/catalogue/image_detail.html:72
 msgid "Comments"
 msgstr "Komentarze"
@@ -291,15 +295,15 @@ msgstr "Komentarze"
 msgid "Edit book"
 msgstr "Edytuj książkę"
 
 msgid "Edit book"
 msgstr "Edytuj książkę"
 
-#: templates/catalogue/book_html.html:13 templates/catalogue/book_text.html:15
+#: templates/catalogue/book_html.html:12 templates/catalogue/book_text.html:15
 msgid "Table of contents"
 msgstr "Spis treści"
 
 msgid "Table of contents"
 msgstr "Spis treści"
 
-#: templates/catalogue/book_html.html:14 templates/catalogue/book_text.html:17
+#: templates/catalogue/book_html.html:13 templates/catalogue/book_text.html:17
 msgid "Edit. note"
 msgstr "Nota red."
 
 msgid "Edit. note"
 msgstr "Nota red."
 
-#: templates/catalogue/book_html.html:15
+#: templates/catalogue/book_html.html:14
 msgid "Infobox"
 msgstr "Informacje"
 
 msgid "Infobox"
 msgstr "Informacje"
 
@@ -478,7 +482,7 @@ msgstr "Moja strona"
 msgid "Your last edited documents"
 msgstr "Twoje ostatnie edycje"
 
 msgid "Your last edited documents"
 msgstr "Twoje ostatnie edycje"
 
-#: templates/catalogue/my_page.html:33 templates/catalogue/user_page.html:16
+#: templates/catalogue/my_page.html:39 templates/catalogue/user_page.html:16
 msgid "Recent activity for"
 msgstr "Ostatnia aktywność dla:"
 
 msgid "Recent activity for"
 msgstr "Ostatnia aktywność dla:"
 
@@ -647,9 +651,6 @@ msgstr "Komentarz"
 #~ msgid "Revision marked"
 #~ msgstr "Wersja oznaczona"
 
 #~ msgid "Revision marked"
 #~ msgstr "Wersja oznaczona"
 
-#~ msgid "Old version"
-#~ msgstr "Stara wersja"
-
 #~ msgid "New version"
 #~ msgstr "Nowa wersja"
 
 #~ msgid "New version"
 #~ msgstr "Nowa wersja"
 
index 4db8a9b..836fce1 100755 (executable)
@@ -70,6 +70,7 @@
     <a href="{% url 'catalogue_book_txt' book.slug %}" rel="nofollow">{% trans "TXT version" %}</a><br/>
     <a href="{% url 'catalogue_book_pdf' book.slug %}" rel="nofollow">{% trans "PDF version" %}</a><br/>
     <a href="{% url 'catalogue_book_epub' book.slug %}" rel="nofollow">{% trans "EPUB version" %}</a><br/>
     <a href="{% url 'catalogue_book_txt' book.slug %}" rel="nofollow">{% trans "TXT version" %}</a><br/>
     <a href="{% url 'catalogue_book_pdf' book.slug %}" rel="nofollow">{% trans "PDF version" %}</a><br/>
     <a href="{% url 'catalogue_book_epub' book.slug %}" rel="nofollow">{% trans "EPUB version" %}</a><br/>
+    <a href="{% url 'catalogue_book_mobi' book.slug %}" rel="nofollow">{% trans "MOBI version" %}</a><br/>
     </p>
 
     {% if user.is_authenticated %}
     </p>
 
     {% if user.is_authenticated %}
index 908144f..a09dd12 100644 (file)
@@ -40,6 +40,7 @@ urlpatterns = patterns('catalogue.views',
     url(r'^book/(?P<slug>[^/]+)/txt$', 'book_txt', name="catalogue_book_txt"),
     url(r'^book/(?P<slug>[^/]+)/html$', 'book_html', name="catalogue_book_html"),
     url(r'^book/(?P<slug>[^/]+)/epub$', 'book_epub', name="catalogue_book_epub"),
     url(r'^book/(?P<slug>[^/]+)/txt$', 'book_txt', name="catalogue_book_txt"),
     url(r'^book/(?P<slug>[^/]+)/html$', 'book_html', name="catalogue_book_html"),
     url(r'^book/(?P<slug>[^/]+)/epub$', 'book_epub', name="catalogue_book_epub"),
+    url(r'^book/(?P<slug>[^/]+)/mobi$', 'book_mobi', name="catalogue_book_mobi"),
     url(r'^book/(?P<slug>[^/]+)/pdf$', 'book_pdf', name="catalogue_book_pdf"),
 
     url(r'^chunk_add/(?P<slug>[^/]+)/(?P<chunk>[^/]+)/$',
     url(r'^book/(?P<slug>[^/]+)/pdf$', 'book_pdf', name="catalogue_book_pdf"),
 
     url(r'^chunk_add/(?P<slug>[^/]+)/(?P<chunk>[^/]+)/$',
index 0eac8de..84cc097 100644 (file)
@@ -274,13 +274,29 @@ def book_epub(request, slug):
     # TODO: move to celery
     doc = book.wldocument()
     # TODO: error handling
     # TODO: move to celery
     doc = book.wldocument()
     # TODO: error handling
-    epub = doc.as_epub().get_string()
+    epub = doc.as_epub(ilustr_path=book.gallery_path()).get_string()
     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
 
 
+@never_cache
+def book_mobi(request, slug):
+    book = get_object_or_404(Book, slug=slug)
+    if not book.accessible(request):
+        return HttpResponseForbidden("Not authorized.")
+
+    # TODO: move to celery
+    doc = book.wldocument()
+    # TODO: error handling
+    mobi = doc.as_mobi(ilustr_path=book.gallery_path()).get_string()
+    response = HttpResponse(content_type='application/x-mobipocket-ebook')
+    response['Content-Disposition'] = 'attachment; filename=%s' % book.slug + '.mobi'
+    response.write(mobi)
+    return response
+
+
 @never_cache
 def revision(request, slug, chunk=None):
     try:
 @never_cache
 def revision(request, slug, chunk=None):
     try:
index 3acdb97..3f61643 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 3acdb97ed96bb54a04c031e017c2059f86db57e4
+Subproject commit 3f6164384bfd12f173e5f38835ce8a5cfb8b282a