From 5a13c0a85e0273c4ae4ccae446ef8b327d78fcc4 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Thu, 7 May 2015 01:11:18 +0200 Subject: [PATCH] fix epub title --- telemeta/views/collection.py | 3 ++- telemeta/views/core.py | 11 ++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) 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) -- 2.39.5