Rearrange source to src dir.
[redakcja.git] / src / catalogue / tasks.py
diff --git a/src/catalogue/tasks.py b/src/catalogue/tasks.py
new file mode 100644 (file)
index 0000000..9507c41
--- /dev/null
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+from celery.task import task
+from django.utils import translation
+
+
+@task(ignore_result=True)
+def _refresh_by_pk(cls, pk, language=None):
+    prev_language = translation.get_language()
+    if language:
+        translation.activate(language)
+    try:
+        cls._default_manager.get(pk=pk).refresh()
+    except cls.DoesNotExist:
+        pass
+    finally:
+        translation.activate(prev_language)
+
+
+def refresh_instance(instance):
+    _refresh_by_pk.delay(type(instance), instance.pk, translation.get_language())
+
+
+@task(ignore_result=True)
+def book_content_updated(book):
+    book.refresh_dc_cache()