X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/f59e7c3de6bd0f85a61a4d9481db60cd7369ae92..dd6284e01f00296294a527ded7e840ac14c5fbb8:/apps/catalogue/models.py?ds=sidebyside diff --git a/apps/catalogue/models.py b/apps/catalogue/models.py index 8fb210935..e69d23168 100644 --- a/apps/catalogue/models.py +++ b/apps/catalogue/models.py @@ -24,7 +24,7 @@ from newtagging.models import TagBase, tags_updated from newtagging import managers from catalogue.fields import JSONField, OverwritingFileField from catalogue.utils import create_zip, split_tags -from catalogue.tasks import touch_tag +from catalogue.tasks import touch_tag, index_book from shutil import copy from glob import glob import re @@ -492,7 +492,7 @@ class Book(models.Model): cache_key = "Book.short_html/%d/%s" for lang, langname in settings.LANGUAGES: cache.delete(cache_key % (self.id, lang)) - cache.delete(cache_key = "Book.mini_box/%d" % (self.id, )) + cache.delete("Book.mini_box/%d" % (self.id, )) # Fragment.short_html relies on book's tags, so reset it here too for fragm in self.fragments.all(): fragm.reset_short_html() @@ -731,18 +731,16 @@ class Book(models.Model): result = create_zip.delay(paths, self.fileid()) return result.wait() - def search_index(self): - if settings.SEARCH_INDEX_PARALLEL: - if instance(settings.SEARCH_INDEX_PARALLEL, int): - idx = search.ReusableIndex(threads=4) - else: - idx = search.ReusableIndex() + def search_index(self, book_info=None): + if settings.CELERY_ALWAYS_EAGER: + idx = search.ReusableIndex() else: idx = search.Index() idx.open() try: - idx.index_book(self) + idx.index_book(self, book_info) + idx.index_tags() finally: idx.close() @@ -834,7 +832,7 @@ class Book(models.Model): book.build_mobi() if not settings.NO_SEARCH_INDEX and search_index: - book.search_index() + index_book.delay(book.id, book_info) book_descendants = list(book.children.all()) descendants_tags = set()