X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/670ae4304fb7dc4b5f28abdff659bd5dba10cf33..e086b48a37bcbcc7d19890b5954ec93213440b32:/apps/catalogue/fields.py?ds=inline diff --git a/apps/catalogue/fields.py b/apps/catalogue/fields.py index ebf71c222..d5cec2e62 100644 --- a/apps/catalogue/fields.py +++ b/apps/catalogue/fields.py @@ -33,6 +33,11 @@ class EbookField(models.FileField): super(EbookField, self).__init__(*args, **kwargs) self.format_name = format_name + def deconstruct(self): + name, path, args, kwargs = super(EbookField, self).deconstruct() + args.insert(0, self.format_name) + return name, path, args, kwargs + @property def builder(self): """Finds a celery task suitable for the format of the field.""" @@ -44,7 +49,7 @@ class EbookField(models.FileField): def has(model_instance): return bool(getattr(model_instance, self.attname, None)) has.__doc__ = None - has.__name__ = "has_%s" % self.attname + has.__name__ = str("has_%s" % self.attname) has.short_description = self.name has.boolean = True setattr(cls, 'has_%s' % self.attname, has) @@ -134,35 +139,28 @@ class BuildHtml(BuildEbook): book = fieldfile.instance - meta_tags = list(book.tags.filter( - category__in=('author', 'epoch', 'genre', 'kind'))) - book_tag = book.book_tag() - html_output = self.transform( book.wldocument(parse_dublincore=False), fieldfile) - lang = book.language - lang = LANGUAGES_3TO2.get(lang, lang) - 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: + meta_tags = list(book.tags.filter( + category__in=('author', 'epoch', 'genre', 'kind'))) + + lang = book.language + lang = LANGUAGES_3TO2.get(lang, lang) + if lang not in [ln[0] for ln in settings.LANGUAGES]: + lang = None + fieldfile.save(None, ContentFile(html_output.get_string()), save=False) type(book).objects.filter(pk=book.pk).update(**{ fieldfile.field.attname: fieldfile }) - # get ancestor l-tags for adding to new fragments - ancestor_tags = [] - p = book.parent - while p: - ancestor_tags.append(p.book_tag()) - p = p.parent - # Extract fragments closed_fragments, open_fragments = html.extract_fragments(fieldfile.path) for fragment in closed_fragments.values(): @@ -205,8 +203,7 @@ class BuildHtml(BuildEbook): book=book, text=text, short_text=short_text) new_fragment.save() - new_fragment.tags = set(meta_tags + themes + [book_tag] + ancestor_tags) - book.fix_tree_tags() + new_fragment.tags = set(meta_tags + themes) book.html_built.send(sender=book) return True return False