X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..995ef714e1e7cdfdf77f537132a4ea1e20a90272:/src/catalogue/tasks.py?ds=sidebyside diff --git a/src/catalogue/tasks.py b/src/catalogue/tasks.py index a2b8be088..781dd6e3c 100644 --- a/src/catalogue/tasks.py +++ b/src/catalogue/tasks.py @@ -1,13 +1,13 @@ -# -*- coding: utf-8 -*- # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # -from datetime import datetime from traceback import print_exc from celery.task import task from celery.utils.log import get_task_logger from django.conf import settings -from wolnelektury.utils import localtime_to_utc +from django.utils import timezone + +from catalogue.utils import gallery_path from waiter.models import WaitedFile task_logger = get_task_logger(__name__) @@ -16,7 +16,7 @@ task_logger = get_task_logger(__name__) # TODO: move to model? def touch_tag(tag): update_dict = { - 'changed_at': localtime_to_utc(datetime.now()), + 'changed_at': timezone.now(), } type(tag).objects.filter(pk=tag.pk).update(**update_dict) @@ -27,8 +27,8 @@ def index_book(book_id, book_info=None, **kwargs): from catalogue.models import Book try: return Book.objects.get(id=book_id).search_index(book_info, **kwargs) - except Exception, e: - print "Exception during index: %s" % e + except Exception as e: + print("Exception during index: %s" % e) print_exc() raise e @@ -46,14 +46,22 @@ def build_custom_pdf(book_id, customizations, file_name, waiter_id=None): kwargs = { 'cover': True, } - if 'no-cover' in customizations: + if 'nocover' in customizations: kwargs['cover'] = False - customizations.remove('no-cover') - pdf = Book.objects.get(pk=book_id).wldocument().as_pdf( - customizations=customizations, - morefloats=settings.LIBRARIAN_PDF_MOREFLOATS, - **kwargs) - DefaultStorage().save(file_name, File(open(pdf.get_filename()))) + customizations.remove('nocover') + wldoc = Book.objects.get(pk=book_id).wldocument() + pdf = wldoc.as_pdf( + customizations=customizations, + morefloats=settings.LIBRARIAN_PDF_MOREFLOATS, + ilustr_path=gallery_path(wldoc.book_info.url.slug), + **kwargs) + DefaultStorage().save(file_name, File(open(pdf.get_filename(), 'rb'))) finally: if waiter_id is not None: WaitedFile.objects.filter(pk=waiter_id).delete() + + +@task(ignore_result=True) +def update_counters(): + from .helpers import update_counters + update_counters()