Esempio n. 1
0
def login(request):
    game = Game.current_game()
    gamestate = game.get_state()

    if request.method == 'POST':
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            colour = login_form.cleaned_data['colour']
            if not gamestate.colour_used(colour):
                player, _created = Player.objects.get_or_create(
                                        **login_form.cleaned_data)
                gamestate.add_player(player)
                gamestate.save()
                request.session['player'] = player
                return redirect('mobigame:play')
            else:
                login_form.errors.setdefault('colour', [])
                login_form.errors['colour'].append('%s already taken!' %
                                                   colour.title())
    else:
        login_form = LoginForm()

    context = {
        'colour_style': Player.NO_PLAYER_STYLE,
        'login_form': login_form,
        }
    return render(request, 'login.html', context)
Esempio n. 2
0
def api_v1(request):
    game = Game.last_game()
    if game is None:
        text = "0"
    else:
        gamestate = game.get_state()
        text = gamestate.api_v1_state()
    return HttpResponse(text, mimetype="text/plain")
Esempio n. 3
0
def scores(request):
    winners = Game.previous_winners(limit=10)
    current_winner = winners[0] if winners else None
    previous_winners = winners[1:]
    context = {
        'colour_style': Player.NO_PLAYER_STYLE,
        'current_winner': current_winner,
        'previous_winners': previous_winners,
        }
    return render(request, 'scores.html', context)
Esempio n. 4
0
 def wrapper(request):
     game = Game.current_game()
     gamestate = game.get_state()
     player = request.session.get('player')
     if player is None:
         return redirect('mobigame:login')
     if not gamestate.player_exists(player):
         del request.session['player']
         return redirect('mobigame:login')
     return view(game, gamestate, player, request)
Esempio n. 5
0
def signout(request):
    player = request.session.get('player')
    if player is not None:
        game = Game.current_game()
        gamestate = game.get_state()
        gamestate.eliminate_player(player)
        gamestate.save()
        player.delete()

    login_form = LoginForm()
    context = {
        'colour_style': Player.NO_PLAYER_STYLE,
        'login_form': login_form,
        }
    return render(request, 'signout.html', context)