X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..141f3bea77fdb337069c198ffeee870696f4554e:/src/catalogue/signals.py diff --git a/src/catalogue/signals.py b/src/catalogue/signals.py index 660d26493..28d84bece 100644 --- a/src/catalogue/signals.py +++ b/src/catalogue/signals.py @@ -4,6 +4,7 @@ # from django.conf import settings from django.core.cache import caches +from django.core.exceptions import ImproperlyConfigured from django.db.models.signals import post_save, post_delete from django.dispatch import receiver from ssify import flush_ssi_includes @@ -19,6 +20,7 @@ from .models import BookMedia, Book, Collection, Fragment, Tag @receiver([post_save, post_delete], sender=BookMedia) def bookmedia_save(sender, instance, **kwargs): + instance.book.set_audio_length() instance.book.save() @@ -50,6 +52,11 @@ def collection_delete(sender, instance, **kwargs): def book_save(sender, instance, **kwargs): # Books come out anywhere. caches[settings.CACHE_MIDDLEWARE_ALIAS].clear() + # deleting selectively is too much work + try: + caches['template_fragments'].clear() + except ImproperlyConfigured: + pass instance.flush_includes() @@ -92,8 +99,7 @@ def tag_after_change(sender, instance, languages, **kwargs): @receiver(tags_updated) def receive_tags_updated(sender, instance, affected_tags, **kwargs): - categories = set(tag.category for tag in affected_tags - if tag.category not in ('set', 'book')) + categories = set(tag.category for tag in affected_tags if tag.category not in ('set', 'book')) if not categories: return