X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/7f521b01d4366d1c9157a99766d1471d9b370a8d..5913c54d19b8f6775633176032161d49f9b2f1aa:/apps/catalogue/models/listeners.py diff --git a/apps/catalogue/models/listeners.py b/apps/catalogue/models/listeners.py deleted file mode 100755 index f8120a07..00000000 --- a/apps/catalogue/models/listeners.py +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- -# -# This file is part of FNP-Redakcja, licensed under GNU Affero GPLv3 or later. -# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. -# -from django.contrib.auth.models import User -from django.db import models -from catalogue.models import (Book, Chunk, Image, BookPublishRecord, - ImagePublishRecord) -from catalogue.signals import post_publish -from dvcs.signals import post_publishable - - -def book_changed(sender, instance, created, **kwargs): - instance.touch() - for c in instance: - c.touch() -models.signals.post_save.connect(book_changed, sender=Book) - - -def chunk_changed(sender, instance, created, **kwargs): - instance.book.touch() - instance.touch() -models.signals.post_save.connect(chunk_changed, sender=Chunk) - - -def image_changed(sender, instance, created, **kwargs): - instance.touch() -models.signals.post_save.connect(image_changed, sender=Image) - - -def user_changed(sender, instance, *args, **kwargs): - if 'last_login' in kwargs.get('update_fields', []): - # Quick hack - this change seems to result from logging user in so just ignore it. - return - books = set() - for c in instance.chunk_set.all(): - books.add(c.book) - c.touch() - for b in books: - b.touch() -models.signals.post_save.connect(user_changed, sender=User) - - -def publish_listener(sender, *args, **kwargs): - if isinstance(sender, BookPublishRecord): - sender.book.touch() - for c in sender.book: - c.touch() - elif isinstance(sender, ImagePublishRecord): - sender.image.touch() -post_publish.connect(publish_listener) - - -def chunk_publishable_listener(sender, *args, **kwargs): - sender.tree.touch() - if isinstance(sender.tree, Chunk): - sender.tree.book.touch() -post_publishable.connect(chunk_publishable_listener) - -def publishable_listener(sender, *args, **kwargs): - sender.tree.touch() -post_publishable.connect(publishable_listener, sender=Image) - - -def listener_create(sender, instance, created, **kwargs): - if created: - instance.chunk_set.create(number=1, slug='1') -models.signals.post_save.connect(listener_create, sender=Book) -