if lang not in [ln[0] for ln in settings.LANGUAGES]:
lang = None
+ # Delete old fragments, create from scratch if necessary.
+ book.fragments.all().delete()
+
if html_output:
fieldfile.save(None, ContentFile(html_output.get_string()),
save=False)
ancestor_tags.append(p.book_tag())
p = p.parent
- # Delete old fragments and create them from scratch
- book.fragments.all().delete()
# Extract fragments
closed_fragments, open_fragments = html.extract_fragments(fieldfile.path)
for fragment in closed_fragments.values():
new_fragment.save()
new_fragment.tags = set(meta_tags + themes + [book_tag] + ancestor_tags)
+ book.fix_tree_tags()
book.html_built.send(sender=book)
return True
return False
if old_cover:
notify_cover_changed.append(child)
- # delete old fragments when overwriting
- book.fragments.all().delete()
- # Build HTML, fix the tree tags, build cover.
- has_own_text = bool(book.html_file.build())
- tasks.fix_tree_tags.delay(book)
+ # No saves beyond this point.
+
+ # Build cover.
if 'cover' not in dont_build:
book.cover.build_delay()
book.cover_thumb.build_delay()
- # No saves behind this point.
-
- if has_own_text:
+ # Build HTML and ebooks.
+ if not children:
+ book.html_file.build_delay()
for format_ in constants.EBOOK_FORMATS_WITHOUT_CHILDREN:
if format_ not in dont_build:
getattr(book, '%s_file' % format_).build_delay()