view gpp/membermap/signals.py @ 260:3a4bbf9c2cce

Fixing #107. Apparently some signal handlers were getting connected twice (double import?) and thus saving a forum post would cause 2 email notifications to go out to the post topic's subscribers. Use the dispatch_uid parameter in the connect call to work around this issue.
author Brian Neal <bgneal@gmail.com>
date Wed, 22 Sep 2010 00:24:59 +0000
parents 0140ff687d49
children 6f3beff3ac63
line wrap: on
line source
"""
Signal handlers for the membermap application.
We want to detect changes to the UserProfile model. If that person is on
the map, re-save her MapEntry so that any avatar changes get picked up.
"""
from django.db.models.signals import post_save
from bio.models import UserProfile
from membermap.models import MapEntry


def on_profile_save(sender, **kwargs):
    import pdb; pdb.set_trace()
    if 'instance' in kwargs:
        profile = kwargs['instance']
        try:
            map_entry = MapEntry.objects.get(user=profile.user)
        except MapEntry.DoesNotExist:
            # Not on the map, no harm, no foul
            return
        if map_entry is not None:
            map_entry.save()


post_save.connect(on_profile_save,
        sender=UserProfile,
        dispatch_uid='membermap.signals')