X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/b15e203d42d3fd0880ca21d6251dca6fa46405c9..69b332800a472211b5da70426171fa429702a273:/src/depot/publishers/legimi.py diff --git a/src/depot/publishers/legimi.py b/src/depot/publishers/legimi.py index a85b46bc..2b535f92 100644 --- a/src/depot/publishers/legimi.py +++ b/src/depot/publishers/legimi.py @@ -6,6 +6,7 @@ from django.utils.safestring import mark_safe from librarian.functions import lang_code_3to2 from librarian.builders import EpubBuilder, MobiBuilder from librarian.covers.marquise import MarquiseCover, LabelMarquiseCover +from catalogue.models import Audience from .base import BasePublisher @@ -135,24 +136,15 @@ class Legimi(BasePublisher): 'warnings': [], 'info': [] } - if meta.thema_main or meta.thema: - if meta.thema_main: - comment = "w kategorii {code}".format( - code=escape(meta.thema_main) + thema = self.get_thema(meta) + if thema: + d['info'].append(mark_safe( + "w kategorii " + ", ".join( + "{code}".format(code=escape(t)) + for t in thema ) - if meta.thema: - comment += " oraz: " + ", ".join( - "{code}".format(code=escape(t)) - for t in meta.thema - ) - d['info'].append(mark_safe(comment)) - elif meta.thema: - d['info'].append(mark_safe( - "w kategorii " + ", ".join( - "{code}".format(code=escape(t)) - for t in meta.thema - ) - )) + )) + if not meta.thema_main: d['warnings'].append('Brak głównej kategorii Thema') else: d['errors'].append('Brak kategorii Thema.') @@ -174,6 +166,18 @@ class Legimi(BasePublisher): "url": model['Url'], } + def get_thema(self, meta): + thema = [] + if meta.thema_main: + thema.append(meta.thema_main) + thema.extend(meta.thema) + + thema.extend( + Audience.objects.filter(code__in=meta.audiences).exclude( + thema=None).values_list('thema', flat=True) + ) + return thema + def send_book(self, shop, book, changes=None): wlbook = book.wldocument(librarian2=True, changes=changes) meta = wlbook.meta @@ -191,18 +195,13 @@ class Legimi(BasePublisher): base_url='file://' + book.gallery_path() + '/' ).build(wlbook).get_file() - thema = [] - if meta.thema_main: - thema.append(meta.thema_main) - thema.extend(meta.thema) - book_data = { "Title": meta.title, "Author": ", ".join(p.readable() for p in meta.authors), "Year": str(date.today().year), 'GenreId': str(self.get_genre(wlbook)), - 'themaCategories': ';'.join(thema), + 'themaCategories': ';'.join(self.get_thema(meta)), 'thema-search': '', 'Isbn': '', 'LanguageLocale': lang_code_3to2(meta.language), @@ -357,7 +356,7 @@ class Legimi(BasePublisher): def edit_sale(self, book): assert book.legimi_id - words = book.wldocument().get_statistics()['total']['words_with_fn'] + words = book.wldocument(librarian2=True).get_statistics()['total']['words_with_fn'] price = settings.LEGIMI_SMALL_PRICE if words > settings.LEGIMI_SMALL_WORDS: