Minor upgrades and test fixes.
[wolnelektury.git] / src / catalogue / signals.py
index 81c0b9c..8bbc0bf 100644 (file)
@@ -1,5 +1,5 @@
-# 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
@@ -7,7 +7,6 @@ from django.core.exceptions import ImproperlyConfigured
 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
 
 
@@ -63,14 +62,8 @@ def book_delete(sender, instance, **kwargs):
 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)
@@ -80,4 +73,5 @@ def receive_tags_updated(sender, instance, affected_tags, **kwargs):
         return
 
     caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
-    instance.clear_cache()
+    if sender in (Book,):
+        instance.clear_cache()