Mercurial > public > sg101
diff gpp/bio/signals.py @ 400:47f4259ce511
Fixing #197; add a badge for photo of the day.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Sat, 26 Mar 2011 21:29:27 +0000 |
parents | 3a4bbf9c2cce |
children | d83296cac940 |
line wrap: on
line diff
--- a/gpp/bio/signals.py Sat Mar 26 03:08:05 2011 +0000 +++ b/gpp/bio/signals.py Sat Mar 26 21:29:27 2011 +0000 @@ -10,6 +10,7 @@ from weblinks.models import Link from downloads.models import Download from news.models import Story +from potd.models import Photo def on_user_save(sender, **kwargs): @@ -17,6 +18,7 @@ This signal handler ensures that every User has a corresonding UserProfile. It is called after User instance is saved. It creates a UserProfile for the User if the created argument is True. + """ created = kwargs['created'] if created: @@ -27,9 +29,11 @@ def on_donation_save(sender, **kwargs): - """This function is called after a Donation is saved. + """ + This function is called after a Donation is saved. If the Donation was newly created and not anonymous, award the user a contributor pin. + """ if kwargs['created']: donation = kwargs['instance'] @@ -38,8 +42,10 @@ def on_link_save(sender, **kwargs): - """This function is called after a Link is saved. If the Link was newly + """ + This function is called after a Link is saved. If the Link was newly created, award the user a link pin. + """ if kwargs['created']: link = kwargs['instance'] @@ -47,8 +53,10 @@ def on_download_save(sender, **kwargs): - """This function is called after a Download is saved. If the Download was + """ + This function is called after a Download is saved. If the Download was newly created, award the user a download pin. + """ if kwargs['created']: download = kwargs['instance'] @@ -56,16 +64,30 @@ def on_story_save(sender, **kwargs): - """This function is called after a Story is saved. If the Story was + """ + This function is called after a Story is saved. If the Story was newly created, award the user a news pin. + """ if kwargs['created']: story = kwargs['instance'] bio.badges.award_badge(bio.badges.NEWS_PIN, story.submitter) +def on_photo_save(sender, **kwargs): + """ + This function is called after a Photo is saved. If the Photo was + newly created, award the user a POTD pin. + + """ + if kwargs['created']: + photo = kwargs['instance'] + bio.badges.award_badge(bio.badges.POTD_PIN, photo.user) + + post_save.connect(on_user_save, sender=User, dispatch_uid='bio.signals') post_save.connect(on_donation_save, sender=Donation, dispatch_uid='bio.signals') post_save.connect(on_link_save, sender=Link, dispatch_uid='bio.signals') post_save.connect(on_download_save, sender=Download, dispatch_uid='bio.signals') post_save.connect(on_story_save, sender=Story, dispatch_uid='bio.signals') +post_save.connect(on_photo_save, sender=Photo, dispatch_uid='bio.signals')