if not self.id: self.sender = self.sender_player.user self.recipient = self.recipient_player.user self.year = self.sender_player.game.year self.season = self.sender_player.game.season super(Letter, self).save(*args, **kwargs) def get_absolute_url(self): return ('condottieri_messages_detail', [self.id]) get_absolute_url = models.permalink(get_absolute_url) def notify_new_letter(sender, instance, created, raw, **kw): if notification and isinstance(instance, Letter) and created and not raw: user = [instance.recipient,] game = instance.recipient_player.game extra_context = {'game': game, 'letter': instance, 'STATIC_URL': settings.STATIC_URL,} if game.fast: notification.send_now(user, "condottieri_messages_received", extra_context) else: notification.send(user, "condottieri_messages_received", extra_context) models.signals.post_save.connect(notify_new_letter, sender=Letter) def update_letter_users(sender, **kwargs): assert isinstance(sender, Revolution), "sender must be a Revolution" Letter.objects.filter(sender_player=sender.government_player).update(sender=sender.opposition) Letter.objects.filter(recipient_player=sender.government_player).update(recipient=sender.opposition) government_overthrown.connect(update_letter_users)
return _("You need a minimum karma of %s to play a fast game.") % karma_to_fast if private and self.karma < karma_to_private: return _("You need a minimum karma of %s to create a private game.") % karma_to_private if self.karma < karma_to_unlimited: current_games = self.user.player_set.all().count() if current_games >= games_limit: return _("You need karma %s to play more than %s games.") % (karma_to_unlimited, games_limit) return "" def add_overthrow(sender, **kwargs): if not sender.voluntary: profile = sender.government.get_profile() profile.overthrow() government_overthrown.connect(add_overthrow) def add_surrender(sender, **kwargs): profile = sender.user.get_profile() profile.surrenders += 1 try: surrender_karma = settings.SURRENDER_KARMA except: surrender_karma = -10 profile.adjust_karma(surrender_karma) player_surrendered.connect(add_surrender) def create_profile(sender, instance=None, **kwargs): """ Creates a profile associated to a User """ if instance is None: