From 3e60c84451a6cf2a4ad803c3e05bd97a233e91ad Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Tue, 2 Nov 2010 14:59:04 +0100 Subject: [PATCH] added NO_BUILD_EPUB option, fixed child republish --- .gitignore | 1 + apps/catalogue/models.py | 12 ++++++------ wolnelektury/settings.py | 2 ++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index a3f95c013..1befb6370 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ localsettings.py dev.sqlite *.db +*.db-journal *~ *.orig diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index b1ffdb63d..28db00d03 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -13,6 +13,8 @@ from django.utils.translation import get_language from django.core.urlresolvers import reverse from datetime import datetime +from django.conf import settings + from newtagging.models import TagBase, tags_updated from newtagging import managers from catalogue.fields import JSONField @@ -360,7 +362,7 @@ class Book(models.Model): try: epub.transform(BookImportDocProvider(self), self.slug, epub_file) self.epub_file.save('%s.epub' % self.slug, ContentFile(epub_file.getvalue()), save=False) - self.save() + self.save(refresh_mp3=False) FileRecord(slug=self.slug, type='epub', sha1=sha1(epub_file.getvalue()).hexdigest()).save() except NoDublinCore: pass @@ -371,7 +373,7 @@ class Book(models.Model): if remove_descendants and child_book.has_epub_file(): child_book.epub_file.delete() # save anyway, to refresh short_html - child_book.save() + child_book.save(refresh_mp3=False) book_descendants += list(child_book.children.all()) @@ -498,8 +500,8 @@ class Book(models.Model): new_fragment.save() new_fragment.tags = set(book_tags + themes + [book_tag] + ancestor_tags) - if not book.parent: - book.build_epub(remove_descendants=False) + if not settings.NO_BUILD_EPUB: + book.root_ancestor().build_epub() book_descendants = list(book.children.all()) # add l-tag to descendants and their fragments @@ -507,8 +509,6 @@ class Book(models.Model): while len(book_descendants) > 0: child_book = book_descendants.pop(0) child_book.tags = list(child_book.tags) + [book_tag] - if child_book.has_epub_file(): - child_book.epub_file.delete() child_book.save() for fragment in child_book.fragments.all(): fragment.tags = set(list(fragment.tags) + [book_tag]) diff --git a/wolnelektury/settings.py b/wolnelektury/settings.py index 95c9bf319..be86f16c3 100644 --- a/wolnelektury/settings.py +++ b/wolnelektury/settings.py @@ -197,6 +197,8 @@ TRANSLATION_REGISTRY = "wolnelektury.translation" # limit number of filtering tags MAX_TAG_LIST = 6 +NO_BUILD_EPUB = False + # Load localsettings, if they exist try: from localsettings import * -- 2.20.1