def launch(request, to_id): user_to = get_object_or_404(Player, pk=to_id) user_to = user_to.get_extension(ChallengeUser) user_from = request.user.get_profile().get_extension(ChallengeUser) if ChallengeGame.disabled(): return do_result(request, error='Provocarile sunt dezactivate') if (not user_to.is_eligible()) or (not user_from.is_eligible()): return do_result(request, error=_('Sorry, challenge failed.')) if not user_from.can_launch(): return do_result(request, _('You cannot launch another challenge today.')) if not user_from.has_enough_points(): return do_result(request, _('You need at least 30 points to launch a challenge')) if user_from.can_challenge(user_to): try: chall = Challenge.create(user_from=user_from, user_to=user_to) except ChallengeException as e: # Some error occurred during question fetch. Clean up, and display error return do_result(request, e.message) #Checking if user_to is stored in session PREFIX = "_user:"******"multiple-login" if (PREFIX + user_to.user.username) in request.session: from wouso.core.signals import addActivity addActivity.send(sender=None, user_to=user_to, user_from=user_from, action=action_msg, game=None, public=False) return do_result(request, message=_('Successfully challenged')) else: return do_result(request, _('This user cannot be challenged.'))
def the_bell(request): """ Press the bell: add an phony activity """ player = request.user.get_profile() message = ugettext_noop('pressed the bell') addActivity.send(sender=None, user_from=player, game=None, message=message) return redirect('dashboard')
def earn_achievement(cls, player, modifier): result = player.magic.give_modifier(modifier) if result is not None: message = ugettext_noop('earned {artifact}') action_msg = 'earned-ach' addActivity.send(sender=None, user_from=player, game=None, message=message, arguments=dict(artifact=result.artifact), action=action_msg) Message.send(sender=None, receiver=player, subject="Achievement", text="You have just earned " + modifier) else: logging.debug('%s would have earned %s, but there was no artifact' % (player, modifier))
def earn_achievement(cls, player, modifier): result = player.magic.give_modifier(modifier) if result is not None: message = ugettext_noop('earned {artifact}') action_msg = 'earned-ach' addActivity.send(sender=None, user_from=player, game=None, message=message, arguments=dict(artifact=result.artifact), action=action_msg ) Message.send(sender=None, receiver=player, subject="Achievement", text="You have just earned " + modifier) else: logging.debug('%s would have earned %s, but there was no artifact' % (player, modifier))
def launch(request, to_id): user_to = get_object_or_404(Player, pk=to_id) user_to = user_to.get_extension(ChallengeUser) user_from = request.user.get_profile().get_extension(ChallengeUser) if ChallengeGame.disabled(): return do_result(request, error='Provocarile sunt dezactivate') if (not user_to.is_eligible()) or (not user_from.is_eligible()): return do_result(request, error=_('Sorry, challenge failed.')) if not user_from.can_launch(): return do_result(request, _('You cannot launch another challenge today.')) if not user_from.has_enough_points(): return do_result( request, _('You need at least 30 points to launch a challenge')) if user_from.can_challenge(user_to): try: chall = Challenge.create(user_from=user_from, user_to=user_to) except ChallengeException as e: # Some error occurred during question fetch. Clean up, and display error return do_result(request, e.message) #Checking if user_to is stored in session PREFIX = "_user:"******"multiple-login" if (PREFIX + user_to.user.username) in request.session: from wouso.core.signals import addActivity addActivity.send(sender=None, user_to=user_to, user_from=user_from, action=action_msg, game=None, public=False) return do_result(request, message=_('Successfully challenged')) else: return do_result(request, _('This user cannot be challenged.'))
def launch(request, to_id): lock = challengeLock.lock() logging.info("Locked.") flush_transaction() user_to = get_object_or_404(Player, pk=to_id) user_to = user_to.get_extension(ChallengeUser) user_from = request.user.get_profile().get_extension(ChallengeUser) if ChallengeGame.disabled(): messages.error(request, _('Provocarile sunt dezactivate')) logging.info("Ready to unlock (disabled).") lock.unlock() return redirect('challenge_index_view') if (not user_to.is_eligible()) or (not user_from.is_eligible()): messages.error(request, _('Sorry, challenge failed.')) logging.info("Ready to unlock (is eligible).") lock.unlock() return redirect('challenge_index_view') if not user_from.can_launch(): messages.error(request, _('You cannot launch another challenge today.')) logging.info("Ready to unlock (cannot launch today).") lock.unlock() return redirect('challenge_index_view') if not user_from.in_same_division(user_to): messages.error(request, _('You are not in the same division')) logging.info("Ready to unlock (not in same divission).") lock.unlock() return redirect('challenge_index_view') if not user_from.has_enough_points(): messages.error(request, _('You need at least 30 points to launch a challenge')) logging.info("Ready to unlock (not enough points).") lock.unlock() return redirect('challenge_index_view') if user_from.can_challenge(user_to): try: chall = Challenge.create(user_from=user_from, user_to=user_to) logging.info("Created challenge: %s" %(chall)) except ChallengeException as e: # Some error occurred during question fetch. Clean up, and display error messages.error(request, e.message) lock.unlock() return redirect('challenge_index_view') #Checking if user_to is stored in session PREFIX = "_user:"******"multiple-login" if (PREFIX + user_to.user.username) in request.session: from wouso.core.signals import addActivity addActivity.send(sender=None, user_to=user_to, user_from=user_from, action=action_msg, game=None, public=False) messages.success(request, _('Successfully challenged')) logging.info("Ready to unlock (save).") lock.unlock() return redirect('challenge_index_view') else: messages.error(request, _('This user cannot be challenged.')) logging.info("Ready to unlock (no user challenge).") lock.unlock() return redirect('challenge_index_view')