-# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
-# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
+# This file is part of Wolne Lektury, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
#
from django.conf import settings
from django.core.cache import caches
from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver
from newtagging.models import tags_updated
-from picture.models import Picture, PictureArea
from .models import BookMedia, Book, Collection, Fragment, Tag
def book_delete(sender, instance, **kwargs):
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
- if not settings.NO_SEARCH_INDEX:
- # remove the book from search index, when it is deleted.
- from search.index import Index
- idx = Index()
- idx.remove_book(instance)
- idx.index_tags()
-
####
# Tag
def tag_after_change(sender, instance, **kwargs):
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
- for model in Book, Picture:
- for model_instance in model.tagged.with_all([instance]).only('pk'):
- model_instance.clear_cache()
-
- if instance.category == 'author':
- for model in Fragment, PictureArea:
- for model_instance in model.tagged.with_all([instance]).only('pk'):
- model_instance.clear_cache()
+ for book in Book.tagged.with_all([instance]).only('pk'):
+ book.clear_cache()
@receiver(tags_updated)
return
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
- instance.clear_cache()
+ if sender in (Book,):
+ instance.clear_cache()