From: Guillaume Pellerin Date: Wed, 6 May 2015 23:11:18 +0000 (+0200) Subject: fix epub title X-Git-Tag: 1.6a~4^2~85 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=5a13c0a85e0273c4ae4ccae446ef8b327d78fcc4;p=telemeta.git fix epub title --- diff --git a/telemeta/views/collection.py b/telemeta/views/collection.py index 643b1a1d..fd8b55ab 100644 --- a/telemeta/views/collection.py +++ b/telemeta/views/collection.py @@ -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 diff --git a/telemeta/views/core.py b/telemeta/views/core.py index 26486c2d..ac94d9ce 100644 --- a/telemeta/views/core.py +++ b/telemeta/views/core.py @@ -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)