X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/4cab8b0725fd5a88f5a508e584b4acd346a824fc..049c5959e33d29e4c0044c235d291144d49d3c45:/src/documents/models/book.py diff --git a/src/documents/models/book.py b/src/documents/models/book.py index f40af29b..e7803890 100644 --- a/src/documents/models/book.py +++ b/src/documents/models/book.py @@ -23,6 +23,7 @@ from io import BytesIO import os import shutil import re +from urllib.parse import urljoin class Book(models.Model): @@ -56,7 +57,6 @@ class Book(models.Model): related_name='document_books', related_query_name='document_book', ) - legimi_id = models.CharField(max_length=255, blank=True) class NoTextError(BaseException): pass @@ -282,15 +282,12 @@ class Book(models.Model): except IndexError: return None - def last_legimi_publish(self): - return self.legimibookpublish_set.order_by('-created_at').first() - def assert_publishable(self): assert self.chunk_set.exists(), _('No chunks in the book.') try: changes = self.get_current_changes(publishable=True) except self.NoTextError: - raise AssertionError(_('Not all chunks have publishable revisions.')) + raise AssertionError(_('Not all chunks have approved revisions.')) from librarian import NoDublinCore, ParseError, ValidationError @@ -403,7 +400,11 @@ class Book(models.Model): try: xml = self.materialize(publishable=True).encode('utf-8') info = BookInfo.from_bytes(xml) - cover = make_cover(info, width=width, height=height) + kwargs = {} + if chunk.book.project is not None: + if chunk.book.project.logo_mono or chunk.book.project.logo: + kwargs['cover_logo'] = (chunk.book.project.logo_mono or chunk.book.project.logo).path + cover = make_cover(info, width=width, height=height, **kwargs) out = BytesIO() ext = cover.ext() cover.save(out) @@ -468,6 +469,19 @@ class Book(models.Model): if not fake: book_xml = self.materialize(changes=changes) data = {"book_xml": book_xml, "days": days, "hidden": hidden} + if self.project is not None: + if self.project.logo: + data['logo'] = urljoin( + 'https://' + Site.objects.get_current().domain, + self.project.logo.url, + ) + if self.project.logo_mono: + data['logo_mono'] = urljoin( + 'https://' + Site.objects.get_current().domain, + self.project.logo_mono.url, + ) + if self.project.logo_alt: + data['logo_alt'] = self.project.logo_alt if host: data['gallery_url'] = host + self.gallery_url() apiclient.api_call(user, "books/", data, beta=beta)