Mercurial > public > sg101
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') |