@staticmethod
def transform(wldoc, book):
+ MediaInsertSet = apps.get_model('annoy', 'MediaInsertSet')
return wldoc.as_pdf(
morefloats=settings.LIBRARIAN_PDF_MOREFLOATS,
cover=get_make_cover(book),
- base_url=absolute_url(gallery_url(wldoc.book_info.url.slug)), customizations=['notoc'])
+ base_url=absolute_url(gallery_url(wldoc.book_info.url.slug)), customizations=['notoc'],
+ fundraising=MediaInsertSet.get_texts_for('pdf'),
+ )
def build(self, fieldfile):
super().build(fieldfile)
book = fieldfile.instance
- html_output = self.transform(book.wldocument(parse_dublincore=False))
+ html_output = self.transform(book.wldocument(parse_dublincore=False), book)
# Delete old fragments, create from scratch if necessary.
book.fragments.all().delete()
tag.name = theme_name
setattr(tag, "name_%s" % lang, theme_name)
tag.sort_key = sortify(theme_name.lower())
- tag.for_books = True
tag.save()
themes.append(tag)
elif lang is not None:
new_fragment.save()
new_fragment.tags = set(meta_tags + themes)
- for theme in themes:
- if not theme.for_books:
- theme.for_books = True
- theme.save()
book.html_built.send(sender=type(self), instance=book)
return True
return False
return wldoc.as_html(gallery_path=gal_path, gallery_url=gal_url, base_url=absolute_url(gal_url))
+class HtmlNonotesField(EbookField):
+ ext = 'html'
+ for_parents = False
+ directory = 'html_nonotes'
+
+ @staticmethod
+ def transform(wldoc, book):
+ # ugly, but we can't use wldoc.book_info here
+ from librarian import DCNS
+ url_elem = wldoc.edoc.getroot().find('.//' + DCNS('identifier.url'))
+ if url_elem is None:
+ gal_url = ''
+ gal_path = ''
+ else:
+ slug = url_elem.text.rstrip('/').rsplit('/', 1)[1]
+ gal_url = gallery_url(slug=slug)
+ gal_path = gallery_path(slug=slug)
+ return wldoc.as_html(gallery_path=gal_path, gallery_url=gal_url, base_url=absolute_url(gal_url), flags=['nonotes'])
+
+
class CoverField(EbookField):
ext = 'jpg'
directory = 'cover'