#
from django.contrib.auth.models import User
from django.db import models
-from catalogue.models import Book, Chunk, Image
+from catalogue.models import (Book, Chunk, Image, BookPublishRecord,
+ ImagePublishRecord)
from catalogue.signals import post_publish
from dvcs.signals import post_publishable
def user_changed(sender, instance, *args, **kwargs):
+ if 'last_login' in (kwargs.get('update_fields') or {}):
+ # 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)
def publish_listener(sender, *args, **kwargs):
- sender.touch()
- for c in sender:
- c.touch()
-post_publish.connect(publish_listener, sender=Book)
-
-def publish_listener(sender, *args, **kwargs):
- sender.touch()
-post_publish.connect(publish_listener, sender=Image)
+ 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):