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)
def user_changed(sender, instance, *args, **kwargs): 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): sender.book.touch() for c in sender.book: c.touch() post_publish.connect(publish_listener) def publishable_listener(sender, *args, **kwargs): sender.tree.touch() sender.tree.book.touch() post_publishable.connect(publishable_listener) 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)