X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/c6d5dd71ad0d9bae811cc9002248d9399c7fdff7..d69fc5f16ed739c02685e7d695abf6de59c2bf5e:/apps/catalogue/models/listeners.py diff --git a/apps/catalogue/models/listeners.py b/apps/catalogue/models/listeners.py deleted file mode 100644 index d414eb27f..000000000 --- a/apps/catalogue/models/listeners.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- coding: utf-8 -*- -# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. -# -from django.conf import settings -from django.core.cache import caches -from django.db.models.signals import post_save, pre_delete, post_delete -import django.dispatch -from catalogue.models import BookMedia, Book, Collection -from catalogue.utils import delete_from_cache_by_language - - -permanent_cache = caches['permanent'] - - -def _pre_delete_handler(sender, instance, **kwargs): - """ refresh Book on BookMedia delete """ - if sender == BookMedia: - instance.book.save() -pre_delete.connect(_pre_delete_handler) - - -def _post_delete_handler(sender, instance, **kwargs): - """ refresh Book on BookMedia delete """ - if sender == Collection: - delete_from_cache_by_language(permanent_cache, 'catalogue.collection:%s/%%s' % instance.slug) - delete_from_cache_by_language(permanent_cache, 'catalogue.catalogue/%s') -post_delete.connect(_post_delete_handler) - - -def _post_save_handler(sender, instance, **kwargs): - """ refresh all the short_html stuff on BookMedia update """ - if sender == BookMedia: - instance.book.save() - delete_from_cache_by_language(permanent_cache, 'catalogue.audiobook_list/%s') - delete_from_cache_by_language(permanent_cache, 'catalogue.daisy_list/%s') - elif sender == Collection: - delete_from_cache_by_language(permanent_cache, 'catalogue.collection:%s/%%s' % instance.slug) - delete_from_cache_by_language(permanent_cache, 'catalogue.catalogue/%s') -post_save.connect(_post_save_handler) - - -def post_publish(sender, **kwargs): - delete_from_cache_by_language(permanent_cache, 'catalogue.book_list/%s') - delete_from_cache_by_language(permanent_cache, 'catalogue.catalogue/%s') -Book.published.connect(post_publish) - - -if not settings.NO_SEARCH_INDEX: - @django.dispatch.receiver(post_delete, sender=Book) - def _remove_book_from_index_handler(sender, instance, **kwargs): - """ remove the book from search index, when it is deleted.""" - from search.index import Index - idx = Index() - idx.remove_book(instance) - idx.index_tags()