X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/2d538a50605add2666172861744229599487f1b2..16e6aeef587784cb0c4ff42277657fd34eee7ba6:/src/depot/publishers/legimi.py?ds=inline diff --git a/src/depot/publishers/legimi.py b/src/depot/publishers/legimi.py index c7fa26df..dbfd71ea 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 @@ -133,25 +134,17 @@ class Legimi(BasePublisher): d = { 'errors': [], 'warnings': [], + 'info': [] } - if meta.thema_main or meta.thema: - if meta.thema_main: - comment = "w kategorii {code}".format( - code=escape(meta.thema_main) - ) - if meta.thema: - comment += " oraz: " + ", ".join( - "{code}".format(code=escape(t)) - for t in meta.thema - ) - d['comment'] = mark_safe(comment) - elif meta.thema: - d['comment'] = mark_safe( - "w kategorii " + ", ".join( - "{code}".format(code=escape(t)) - for t in meta.thema - ) + 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 not meta.thema_main: d['warnings'].append('Brak głównej kategorii Thema') else: d['errors'].append('Brak kategorii Thema.') @@ -173,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 @@ -190,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),