X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/ce8d791a5298e0cb2569034aec4c8b57afac97b2..b61e4fa32bc8fb7c64910520eb9008e73ac47edf:/apps/catalogue/tasks.py

diff --git a/apps/catalogue/tasks.py b/apps/catalogue/tasks.py
index e9b8cf9b..547f36b4 100644
--- a/apps/catalogue/tasks.py
+++ b/apps/catalogue/tasks.py
@@ -1,11 +1,39 @@
 from celery.task import task
+from django.utils import translation
+from django.conf import settings
 
 
 @task
-def refresh_by_pk(cls, pk):
-    cls._default_manager.get(pk=pk).refresh()
-
+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, language=None):
+    prev_language = translation.get_language()
+    language and translation.activate(language)
+    try:
+        return book.assert_publishable()
+    except AssertionError, e:
+        return e
+    else:
+       return None
+    finally:
+        translation.activate(prev_language)
 
+def publishable_error(book):
+    return _publishable_error.delay(book, 
+        translation.get_language()).wait()
+
+
+@task
+def book_content_updated(book):
+    book.refresh_dc_cache()