X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/add48c78bc4b08dfda50b0c0ccb6be188c7d56f4..f1c6ff102206aa2b0903d61eb648691d5e2e028c:/apps/catalogue/tasks.py diff --git a/apps/catalogue/tasks.py b/apps/catalogue/tasks.py index 3e230379..9186705a 100644 --- a/apps/catalogue/tasks.py +++ b/apps/catalogue/tasks.py @@ -1,20 +1,26 @@ +# -*- coding: utf-8 -*- +# +# This file is part of MIL/PEER, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# from celery.task import task +from django.utils import translation -@task -def refresh_by_pk(cls, pk): - cls._default_manager.get(pk=pk).refresh() +@task(ignore_result=True) +def _refresh_by_pk(cls, pk, language=None): + prev_language = translation.get_language() + language and translation.activate(language) + try: + cls._default_manager.get(pk=pk).refresh() + finally: + translation.activate(prev_language) def refresh_instance(instance): - refresh_by_pk.delay(type(instance), instance.pk) + _refresh_by_pk.delay(type(instance), instance.pk, translation.get_language()) -@task -def publishable_error(book): - try: - book.assert_publishable() - except AssertionError, e: - return e - else: - return None +@task(ignore_result=True) +def book_content_updated(book): + book.refresh_dc_cache()