]> git.parisson.com Git - telemeta.git/commitdiff
fix epub title
authorGuillaume Pellerin <yomguy@parisson.com>
Wed, 6 May 2015 23:11:18 +0000 (01:11 +0200)
committerGuillaume Pellerin <yomguy@parisson.com>
Wed, 6 May 2015 23:11:18 +0000 (01:11 +0200)
telemeta/views/collection.py
telemeta/views/core.py

index 643b1a1d8d6ae10045b90caf93c9193ff75f8596..fd8b55aba072155f1bbff5d47aee7c7dd0feab19 100644 (file)
@@ -383,7 +383,8 @@ class CollectionEpubView(BaseEpubMixin, View):
     def get(self, request, *args, **kwargs):
         collection = self.get_object()
         corpus = collection.corpus.all()[0]
-        self.write_book(corpus, collection=collection)
+        name = corpus.title + ' - ' + collection.title
+        self.write_book(corpus, collection=collection, name=name)
         epub_file = open(self.path, 'rb')
         response = HttpResponse(epub_file.read(), content_type='application/epub+zip')
         response['Content-Disposition'] = "attachment; filename=%s" % self.name
index 26486c2d8fc371dc4443c4b8144d7fb0976cb332..ac94d9ce67682ba2b91ae0377324528f4834f5cb 100644 (file)
@@ -313,7 +313,7 @@ class BaseEpubMixin(TelemetaBaseMixin):
     css = os.sep.join([local_path, '..', 'static', 'telemeta', 'css', 'telemeta_epub.css'])
     template = os.sep.join([local_path, '..', 'templates', 'telemeta', 'inc', 'collection_epub.html'])
 
-    def write_book(self, corpus, collection=None, path=None):
+    def write_book(self, corpus, collection=None, path=None, name=None):
         from collections import OrderedDict
         from ebooklib import epub
         from django.template.loader import render_to_string
@@ -322,12 +322,17 @@ class BaseEpubMixin(TelemetaBaseMixin):
         self.corpus = corpus
         site = Site.objects.get_current()
         self.chapters = []
-        self.name = self.corpus.code + '.epub'
+
+        if not name:
+            self.name = self.corpus.title + '.epub'
+        else:
+            self.name = name + '.epub'
+
         self.path = self.cache_data.dir + os.sep + self.name
 
         # add metadata
         self.book.set_identifier(self.corpus.public_id)
-        self.book.set_title(self.corpus.title)
+        self.book.set_title(self.name)
         self.book.set_language('fr')
         self.book.add_author(self.corpus.descriptions)