fnp
/
redakcja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
librarian update
[redakcja.git]
/
apps
/
catalogue
/
tasks.py
diff --git
a/apps/catalogue/tasks.py
b/apps/catalogue/tasks.py
index
3e23037
..
547f36b
100644
(file)
--- a/
apps/catalogue/tasks.py
+++ b/
apps/catalogue/tasks.py
@@
-1,20
+1,39
@@
from celery.task import task
from celery.task import task
+from django.utils import translation
+from django.conf import settings
@task
@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):
def refresh_instance(instance):
-
refresh_by_pk.delay(type(instance), instance.pk
)
+
_refresh_by_pk.delay(type(instance), instance.pk, translation.get_language()
)
@task
@task
-def publishable_error(book):
+def _publishable_error(book, language=None):
+ prev_language = translation.get_language()
+ language and translation.activate(language)
try:
try:
- book.assert_publishable()
+
return
book.assert_publishable()
except AssertionError, e:
return e
else:
return None
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()