X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/357027375ff8867f42ca34bcbfb5a78b5b185fc3..25be50678152cb1787f6d9d0f15c0cc4345c3216:/src/catalogue/signals.py diff --git a/src/catalogue/signals.py b/src/catalogue/signals.py index 660d26493..d3d6ec340 100644 --- a/src/catalogue/signals.py +++ b/src/catalogue/signals.py @@ -1,9 +1,9 @@ -# -*- 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.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 +19,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 +51,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 +98,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