X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=influences%2Fnotify.py;h=ddcf37cea7b06c5770e98ee5f8be0eec2e03fe07;hb=89667723f59df28360a5e12dd969a8b190caa8d9;hp=7b47e8cdab927b6b0761ddacd9ea1ee1bab156cb;hpb=f1833394374f434a61ab1ab9a551f2bded207182;p=matthijs%2Fprojects%2Fxerxes.git diff --git a/influences/notify.py b/influences/notify.py index 7b47e8c..ddcf37c 100644 --- a/influences/notify.py +++ b/influences/notify.py @@ -1,17 +1,53 @@ from django.db.models import signals from django.dispatch import dispatcher -from ee.influences.models import Character,Influence -from ee.tools.notify import notify +from django.conf import settings +from xerxes.influences.models import Character,Influence +from xerxes.tools.notify import notify from django.contrib.auth.models import Group +from threadedcomments.models import ThreadedComment -def character_saved(instance, created): - notify([instance.player, 'lextalionis@evolution-events.nl'], 'influences/email/character_changed.html', {'character' : instance, 'created' : created}) +def character_saved(**kwargs): + instance = kwargs['instance'] + created = kwargs['created'] + if (not settings.DEBUG): + notify([instance.player, 'lextalionis@evolution-events.nl'], 'influences/email/character_changed.html', {'character' : instance, 'created' : created}) -dispatcher.connect(character_saved, signals.post_save, Character) +signals.post_save.connect(character_saved, sender=Character) -def influence_saved(instance, created): - # TODO: Perhaps only notify when the status is / becomes Done? - notify([instance.character.player, 'lextalionis@evolution-events.nl'], 'influences/email/influence_changed.html', {'influence' : instance, 'created' : created}) +def influence_saved(**kwargs): + instance = kwargs['instance'] + created = kwargs['created'] + if (not settings.DEBUG): + # TODO: Perhaps only notify when the status is / becomes Done? + notify([instance.character.player, 'lextalionis@evolution-events.nl'], 'influences/email/influence_changed.html', {'influence' : instance, 'created' : created}) + +signals.post_save.connect(influence_saved, sender=Influence) + +def comment_saved(**kwargs): + if (settings.DEBUG): + return + + comment = kwargs['instance'] + + # We don't support comment editing, but let's check this anyway + if not kwargs['created']: + return + + object = comment.content_object + if isinstance(object, Influence): + recipients = ['lextalionis@evolution-events.nl'] + if comment.is_public: + recipients.append(object.character.player) + + notify( + recipients, + 'influences/email/influence_comment_added.html', + {'comment' : comment, + 'influence' : object, + 'commenter' : comment.user + } + ) + +signals.post_save.connect(comment_saved, sender=ThreadedComment) -dispatcher.connect(influence_saved, signals.post_save, Influence) # vim: set sts=4 sw=4 expandtab: