fnp
/
wolnelektury.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
To get from Yokohama to San Francisco, keep going east.
[wolnelektury.git]
/
src
/
catalogue
/
signals.py
diff --git
a/src/catalogue/signals.py
b/src/catalogue/signals.py
index
660d264
..
72f8a89
100644
(file)
--- a/
src/catalogue/signals.py
+++ b/
src/catalogue/signals.py
@@
-1,12
+1,11
@@
-# -*- 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
# 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 django.db.models.signals import post_save, post_delete
from django.dispatch import receiver
-from ssify import flush_ssi_includes
from newtagging.models import tags_updated
from picture.models import Picture, PictureArea
from .models import BookMedia, Book, Collection, Fragment, Tag
from newtagging.models import tags_updated
from picture.models import Picture, PictureArea
from .models import BookMedia, Book, Collection, Fragment, Tag
@@
-19,6
+18,7
@@
from .models import BookMedia, Book, Collection, Fragment, Tag
@receiver([post_save, post_delete], sender=BookMedia)
def bookmedia_save(sender, instance, **kwargs):
@receiver([post_save, post_delete], sender=BookMedia)
def bookmedia_save(sender, instance, **kwargs):
+ instance.book.set_audio_length()
instance.book.save()
instance.book.save()
@@
-30,17
+30,8
@@
def bookmedia_save(sender, instance, **kwargs):
@receiver(post_save, sender=Collection)
def collection_save(sender, instance, **kwargs):
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
@receiver(post_save, sender=Collection)
def collection_save(sender, instance, **kwargs):
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
- flush_ssi_includes([
- '/katalog/%s.json' % lang
- for lang in [lc for (lc, _ln) in settings.LANGUAGES]])
-@receiver(post_delete, sender=Collection)
-def collection_delete(sender, instance, **kwargs):
- flush_ssi_includes([
- '/katalog/%s.json' % lang
- for lang in [lc for (lc, _ln) in settings.LANGUAGES]])
-
####
# Book
####
####
# Book
####
@@
-50,15
+41,17
@@
def collection_delete(sender, instance, **kwargs):
def book_save(sender, instance, **kwargs):
# Books come out anywhere.
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
def book_save(sender, instance, **kwargs):
# Books come out anywhere.
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
- instance.flush_includes()
+ # deleting selectively is too much work
+ try:
+ caches['template_fragments'].clear()
+ except ImproperlyConfigured:
+ pass
+ instance.clear_cache()
@receiver(post_delete, sender=Book)
def book_delete(sender, instance, **kwargs):
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
@receiver(post_delete, sender=Book)
def book_delete(sender, instance, **kwargs):
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
- flush_ssi_includes([
- '/katalog/%s.json' % lang
- for lang in [lc for (lc, _ln) in settings.LANGUAGES]])
if not settings.NO_SEARCH_INDEX:
# remove the book from search index, when it is deleted.
if not settings.NO_SEARCH_INDEX:
# remove the book from search index, when it is deleted.
@@
-74,31
+67,24
@@
def book_delete(sender, instance, **kwargs):
@receiver(Tag.after_change)
@receiver(Tag.after_change)
-def tag_after_change(sender, instance,
languages,
**kwargs):
+def tag_after_change(sender, instance, **kwargs):
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
- flush_ssi_includes([
- '/katalog/%s.json' % lang
- for lang in [lc for (lc, _ln) in settings.LANGUAGES]])
for model in Book, Picture:
for model_instance in model.tagged.with_all([instance]).only('pk'):
for model in Book, Picture:
for model_instance in model.tagged.with_all([instance]).only('pk'):
- model_instance.
flush_includes
()
+ model_instance.
clear_cache
()
if instance.category == 'author':
for model in Fragment, PictureArea:
for model_instance in model.tagged.with_all([instance]).only('pk'):
if instance.category == 'author':
for model in Fragment, PictureArea:
for model_instance in model.tagged.with_all([instance]).only('pk'):
- model_instance.
flush_includes
()
+ model_instance.
clear_cache
()
@receiver(tags_updated)
def receive_tags_updated(sender, instance, affected_tags, **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
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
if not categories:
return
caches[settings.CACHE_MIDDLEWARE_ALIAS].clear()
- instance.flush_includes()
- flush_ssi_includes([
- '/katalog/%s.json' % lang
- for lang in [lc for (lc, _ln) in settings.LANGUAGES]])
+ instance.clear_cache()