X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/9a938c8b406ce05e3bca4a5a483d473ece9e17b0..67552e19bc548b78c18967e97f0c0328074a3576:/src/catalogue/fields.py diff --git a/src/catalogue/fields.py b/src/catalogue/fields.py index b1242e7e1..911f857c3 100644 --- a/src/catalogue/fields.py +++ b/src/catalogue/fields.py @@ -4,6 +4,7 @@ # from django.conf import settings from django.core.files import File +from django.core.files.storage import FileSystemStorage from django.db import models from django.db.models.fields.files import FieldFile from catalogue import app_settings @@ -192,6 +193,7 @@ class BuildHtml(BuildEbook): 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: @@ -213,6 +215,10 @@ class BuildHtml(BuildEbook): 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 @@ -238,6 +244,25 @@ class BuildCoverThumb(BuildEbook): return WLCover(wldoc.book_info, height=193).output_file() +@BuildEbook.register('cover_api_thumb') +@task(ignore_result=True) +class BuildCoverApiThumb(BuildEbook): + @classmethod + def transform(cls, wldoc, fieldfile): + from librarian.cover import WLNoBoxCover + return WLNoBoxCover(wldoc.book_info, height=500).output_file() + + +@BuildEbook.register('simple_cover') +@task(ignore_result=True) +class BuildSimpleCover(BuildEbook): + @classmethod + def transform(cls, wldoc, fieldfile): + from librarian.cover import WLNoBoxCover + return WLNoBoxCover(wldoc.book_info, height=1000).output_file() + + +# not used, but needed for migrations class OverwritingFieldFile(FieldFile): """ Deletes the old file before saving the new one. @@ -253,3 +278,10 @@ class OverwritingFieldFile(FieldFile): class OverwritingFileField(models.FileField): attr_class = OverwritingFieldFile + + +class OverwriteStorage(FileSystemStorage): + + def get_available_name(self, name, max_length=None): + self.delete(name) + return name