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')