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