Mercurial > public > sg101
annotate gpp/forums/signals.py @ 75:374b24dd2f9a
First checkin of forums. Have noticed cascading delete behavior. Will try to prevent this next.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sun, 05 Jul 2009 00:03:40 +0000 |
parents | |
children | 500e5875a306 |
rev | line source |
---|---|
bgneal@75 | 1 """ |
bgneal@75 | 2 Signal handlers for the forums application. |
bgneal@75 | 3 """ |
bgneal@75 | 4 from django.db.models.signals import post_save |
bgneal@75 | 5 from django.db.models.signals import post_delete |
bgneal@75 | 6 from models import Topic |
bgneal@75 | 7 from models import Post |
bgneal@75 | 8 |
bgneal@75 | 9 |
bgneal@75 | 10 def on_topic_save(sender, **kwargs): |
bgneal@75 | 11 if kwargs['created']: |
bgneal@75 | 12 topic = kwargs['instance'] |
bgneal@75 | 13 topic.forum.topic_count_update() |
bgneal@75 | 14 topic.forum.save() |
bgneal@75 | 15 |
bgneal@75 | 16 |
bgneal@75 | 17 def on_topic_delete(sender, **kwargs): |
bgneal@75 | 18 topic = kwargs['instance'] |
bgneal@75 | 19 topic.forum.topic_count_update() |
bgneal@75 | 20 topic.forum.save() |
bgneal@75 | 21 |
bgneal@75 | 22 |
bgneal@75 | 23 def on_post_save(sender, **kwargs): |
bgneal@75 | 24 if kwargs['created']: |
bgneal@75 | 25 post = kwargs['instance'] |
bgneal@75 | 26 |
bgneal@75 | 27 # update the topic |
bgneal@75 | 28 post.topic.post_count_update() |
bgneal@75 | 29 post.topic.save() |
bgneal@75 | 30 |
bgneal@75 | 31 # update the forum |
bgneal@75 | 32 post.topic.forum.post_count_update() |
bgneal@75 | 33 post.topic.forum.save() |
bgneal@75 | 34 |
bgneal@75 | 35 |
bgneal@75 | 36 def on_post_delete(sender, **kwargs): |
bgneal@75 | 37 post = kwargs['instance'] |
bgneal@75 | 38 |
bgneal@75 | 39 # update the topic |
bgneal@75 | 40 post.topic.post_count_update() |
bgneal@75 | 41 post.topic.save() |
bgneal@75 | 42 |
bgneal@75 | 43 # update the forum |
bgneal@75 | 44 post.topic.forum.post_count_update() |
bgneal@75 | 45 post.topic.forum.save() |
bgneal@75 | 46 |
bgneal@75 | 47 |
bgneal@75 | 48 post_save.connect(on_topic_save, sender=Topic) |
bgneal@75 | 49 post_delete.connect(on_topic_delete, sender=Topic) |
bgneal@75 | 50 |
bgneal@75 | 51 post_save.connect(on_post_save, sender=Post) |
bgneal@75 | 52 post_delete.connect(on_post_delete, sender=Post) |