from catalogue.constants import LANGUAGES_3TO2
from catalogue.utils import remove_zip, truncate_html_words
from celery.task import Task, task
+from celery.utils.log import get_task_logger
from waiter.utils import clear_cache
+task_logger = get_task_logger(__name__)
+
class EbookFieldFile(FieldFile):
"""Represents contents of an ebook file field."""
def run(self, obj, field_name):
"""Just run `build` on FieldFile, can't pass it directly to Celery."""
- return self.build(getattr(obj, field_name))
+ task_logger.info("%s -> %s" % (obj.slug, field_name))
+ ret = self.build(getattr(obj, field_name))
+ obj.flush_includes()
+ return ret
def build(self, fieldfile):
book = fieldfile.instance
new_fragment.save()
new_fragment.tags = set(meta_tags + themes)
- book.html_built.send(sender=book)
+ book.html_built.send(sender=type(self), instance=book)
return True
return False
class OverwritingFileField(models.FileField):
attr_class = OverwritingFieldFile
-
-
-try:
- # check for south
- from south.modelsinspector import add_introspection_rules
-except ImportError:
- pass
-else:
- add_introspection_rules([
- (
- [EbookField],
- [],
- {'format_name': ('format_name', {})}
- )
- ], ["^catalogue\.fields\.EbookField"])
- add_introspection_rules([], ["^catalogue\.fields\.OverwritingFileField"])