X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/6bbfe08e5d5ea8c966355d3545505dcd76353426..00301c82ff5c8d7c2c53eec0bc279f348fcf99d6:/apps/catalogue/views.py diff --git a/apps/catalogue/views.py b/apps/catalogue/views.py index 0055f522d..556bae1fe 100644 --- a/apps/catalogue/views.py +++ b/apps/catalogue/views.py @@ -529,13 +529,15 @@ def download_shelf(request, slug): temp = tempfile.TemporaryFile() archive = zipfile.ZipFile(temp, 'w') + already = set() for book in collect_books(models.Book.tagged.with_all(shelf)): if 'pdf' in formats and book.pdf_file: filename = book.pdf_file.path archive.write(filename, str('%s.pdf' % book.slug)) - if 'epub' in formats and book.epub_file: - filename = book.epub_file.path - archive.write(filename, str('%s.epub' % book.slug)) + if book.root_ancestor not in already and 'epub' in formats and book.root_ancestor.epub_file: + filename = book.root_ancestor.epub_file.path + archive.write(filename, str('%s.epub' % book.root_ancestor.slug)) + already.add(book.root_ancestor) if 'odt' in formats and book.odt_file: filename = book.odt_file.path archive.write(filename, str('%s.odt' % book.slug)) @@ -571,7 +573,7 @@ def shelf_book_formats(request, shelf): for book in collect_books(models.Book.tagged.with_all(shelf)): if book.pdf_file: formats['pdf'] = True - if book.epub_file: + if book.root_ancestor.epub_file: formats['epub'] = True if book.odt_file: formats['odt'] = True