comparison gpp/potd/signals.py @ 532:ff67946fd4b0

For #242, move the updating of the POTD sequence into a new signals module. When photos are deleted from the admin changelist in bulk, the individual delete() functions on the photo objects is not called. However, the post_delete signal is called for each object.
author Brian Neal <bgneal@gmail.com>
date Sun, 25 Dec 2011 04:15:32 +0000
parents
children
comparison
equal deleted inserted replaced
531:1f92a53db575 532:ff67946fd4b0
1 """
2 Signal handlers for the potd application.
3
4 """
5 from django.db.models.signals import post_save, post_delete
6
7 from potd.models import Photo, Sequence
8
9
10 def on_photo_save(sender, **kwargs):
11 """
12 This function is executed when a Photo is saved. It inserts the photo into
13 the current sequence.
14
15 """
16 photo = kwargs['instance']
17 Sequence.objects.insert_photo(photo.pk)
18
19
20 def on_photo_delete(sender, **kwargs):
21 """
22 This function is executed when a Photo is deleted. It removes the photo from
23 the current sequence of photos.
24
25 """
26 photo = kwargs['instance']
27 Sequence.objects.remove_photo(photo.pk)
28
29
30 post_save.connect(on_photo_save, sender=Photo, dispatch_uid='potd.signals')
31 post_delete.connect(on_photo_delete, sender=Photo, dispatch_uid='potd.signals')