Skip to content

Commit

Permalink
Check for raw kwarg in signals so they aren't run during loaddata
Browse files Browse the repository at this point in the history
  • Loading branch information
kz26 committed Aug 5, 2014
1 parent 7b632eb commit cbc4c7a
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 39 deletions.
41 changes: 23 additions & 18 deletions uchicagohvz/game/signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,30 @@ def refresh_stats(sender, **kwargs):
regenerate_stats.delay(kwargs['game'].pk)

def kill_changed(sender, **kwargs):
score_update_required.send(sender=sender, game=kwargs['instance'].killer.game)
if not kwargs.get('raw'):
score_update_required.send(sender=sender, game=kwargs['instance'].killer.game)

models.signals.post_save.connect(kill_changed, sender=Kill, dispatch_uid='kill_save')
models.signals.post_delete.connect(kill_changed, sender=Kill, dispatch_uid='kill_deleted')

def player_changed(sender, **kwargs):
new_player = kwargs['instance']
try:
old_player = Player.objects.get(pk=new_player.pk)
except sender.DoesNotExist:
score_update_required.send(sender=sender, game=new_player.game)
if new_player.game.status == 'in_progress' and new_player.active:
if not kwargs.get('raw'):
new_player = kwargs['instance']
try:
old_player = Player.objects.get(pk=new_player.pk)
except sender.DoesNotExist:
score_update_required.send(sender=sender, game=new_player.game)
if new_player.game.status == 'in_progress' and new_player.active:
new_player.user.profile.subscribe_zombies_listhost = True
new_player.user.profile.save()
else:
if old_player.squad != new_player.squad or old_player.active != new_player.active:
score_update_required.send(sender=sender, game=new_player.game)
if old_player.human != new_player.human:
update_chat_privs.delay(new_player.pk)
if new_player.active and new_player.game.status in ('registration', 'in_progress'):
new_player.user.profile.subscribe_zombies_listhost = True
new_player.user.profile.save()
else:
if old_player.squad != new_player.squad or old_player.active != new_player.active:
score_update_required.send(sender=sender, game=new_player.game)
if old_player.human != new_player.human:
update_chat_privs.delay(new_player.pk)
if new_player.active and new_player.game.status in ('registration', 'in_progress'):
new_player.user.profile.subscribe_zombies_listhost = True
new_player.user.profile.save()

def player_deleted(sender, **kwargs):
score_update_required.send(sender=sender, game=kwargs['instance'].game)
Expand All @@ -57,14 +59,16 @@ def player_deleted(sender, **kwargs):
models.signals.post_delete.connect(player_deleted, sender=Player, dispatch_uid='player_deleted')

def award_changed(sender, **kwargs):
score_update_required.send(sender=sender, game=kwargs['instance'].game)
if not kwargs.get('raw'):
score_update_required.send(sender=sender, game=kwargs['instance'].game)

models.signals.post_save.connect(award_changed, sender=Award, dispatch_uid='award_saved')
models.signals.m2m_changed.connect(award_changed, sender=Award.players.through, dispatch_uid='award_m2m_changed')
models.signals.post_delete.connect(award_changed, sender=Award, dispatch_uid='award_deleted')

def hvd_changed(sender, **kwargs):
score_update_required.send(sender=sender, game=kwargs['instance'].game)
if not kwargs.get('raw'):
score_update_required.send(sender=sender, game=kwargs['instance'].game)

models.signals.post_save.connect(hvd_changed, sender=HighValueDorm, dispatch_uid='hvd_saved')

Expand All @@ -74,7 +78,8 @@ def hvd_deleted(sender, **kwargs):
models.signals.post_delete.connect(hvd_deleted, sender=HighValueDorm, dispatch_uid='hvd_deleted')

def hvt_changed(sender, **kwargs):
score_update_required.send(sender=sender, game=kwargs['instance'].player.game)
if not kwargs.get('raw'):
score_update_required.send(sender=sender, game=kwargs['instance'].player.game)

models.signals.post_save.connect(hvt_changed, sender=HighValueTarget, dispatch_uid='hvt_saved')

Expand Down
44 changes: 23 additions & 21 deletions uchicagohvz/users/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,29 +22,31 @@ def get_absolute_url(self):
return ("users|profile",)

def get_or_create_profile(sender, **kwargs):
profile, created = Profile.objects.get_or_create(user=kwargs['instance'])
if created:
from uchicagohvz.users.tasks import do_sympa_update
do_sympa_update.delay(profile.user, 'hvz-chatter', True)
do_sympa_update.delay(profile.user, 'zombies', True)
if not kwargs.get('raw'):
profile, created = Profile.objects.get_or_create(user=kwargs['instance'])
if created:
from uchicagohvz.users.tasks import do_sympa_update
do_sympa_update.delay(profile.user, 'hvz-chatter', True)
do_sympa_update.delay(profile.user, 'zombies', True)
models.signals.post_save.connect(get_or_create_profile, sender=get_user_model())

def sympa_update(sender, **kwargs):
from uchicagohvz.users.tasks import do_sympa_update
try:
old_profile = Profile.objects.get(id=kwargs['instance'].id)
except:
return
new_profile = kwargs['instance']
user = new_profile.user
if (not old_profile.subscribe_chatter_listhost) and new_profile.subscribe_chatter_listhost:
do_sympa_update.delay(user, 'hvz-chatter', True)
elif old_profile.subscribe_chatter_listhost and (not new_profile.subscribe_chatter_listhost):
do_sympa_update.delay(user, 'hvz-chatter', False)

if (not old_profile.subscribe_zombies_listhost) and new_profile.subscribe_zombies_listhost:
do_sympa_update.delay(user, 'zombies', True)
elif old_profile.subscribe_zombies_listhost and (not new_profile.subscribe_zombies_listhost):
do_sympa_update.delay(user, 'zombies', False)
if not kwargs.get('raw'):
from uchicagohvz.users.tasks import do_sympa_update
try:
old_profile = Profile.objects.get(id=kwargs['instance'].id)
except:
return
new_profile = kwargs['instance']
user = new_profile.user
if (not old_profile.subscribe_chatter_listhost) and new_profile.subscribe_chatter_listhost:
do_sympa_update.delay(user, 'hvz-chatter', True)
elif old_profile.subscribe_chatter_listhost and (not new_profile.subscribe_chatter_listhost):
do_sympa_update.delay(user, 'hvz-chatter', False)

if (not old_profile.subscribe_zombies_listhost) and new_profile.subscribe_zombies_listhost:
do_sympa_update.delay(user, 'zombies', True)
elif old_profile.subscribe_zombies_listhost and (not new_profile.subscribe_zombies_listhost):
do_sympa_update.delay(user, 'zombies', False)

models.signals.pre_save.connect(sympa_update, sender=Profile)

0 comments on commit cbc4c7a

Please sign in to comment.