Mercurial > public > sg101
annotate potd/signals.py @ 661:15dbe0ccda95
Prevent exceptions when viewing downloads in the admin when the file
doesn't exist on the filesystem. This is usually seen in development
but can also happen in production if the file is missing.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Tue, 14 May 2013 21:02:47 -0500 |
parents | ee87ea74d46b |
children |
rev | line source |
---|---|
bgneal@532 | 1 """ |
bgneal@532 | 2 Signal handlers for the potd application. |
bgneal@532 | 3 |
bgneal@532 | 4 """ |
bgneal@532 | 5 from django.db.models.signals import post_save, post_delete |
bgneal@532 | 6 |
bgneal@532 | 7 from potd.models import Photo, Sequence |
bgneal@532 | 8 |
bgneal@532 | 9 |
bgneal@532 | 10 def on_photo_save(sender, **kwargs): |
bgneal@532 | 11 """ |
bgneal@532 | 12 This function is executed when a Photo is saved. It inserts the photo into |
bgneal@532 | 13 the current sequence. |
bgneal@532 | 14 |
bgneal@532 | 15 """ |
bgneal@532 | 16 photo = kwargs['instance'] |
bgneal@532 | 17 Sequence.objects.insert_photo(photo.pk) |
bgneal@532 | 18 |
bgneal@532 | 19 |
bgneal@532 | 20 def on_photo_delete(sender, **kwargs): |
bgneal@532 | 21 """ |
bgneal@532 | 22 This function is executed when a Photo is deleted. It removes the photo from |
bgneal@532 | 23 the current sequence of photos. |
bgneal@532 | 24 |
bgneal@532 | 25 """ |
bgneal@532 | 26 photo = kwargs['instance'] |
bgneal@532 | 27 Sequence.objects.remove_photo(photo.pk) |
bgneal@532 | 28 |
bgneal@532 | 29 |
bgneal@532 | 30 post_save.connect(on_photo_save, sender=Photo, dispatch_uid='potd.signals') |
bgneal@532 | 31 post_delete.connect(on_photo_delete, sender=Photo, dispatch_uid='potd.signals') |