Esempio n. 1
0
class HomepageView(LoginRequiredMixin, generic.TemplateView):
    template_name = 'home.html'
    login_url = '/start'

    form = GameTitleForm

    player = None

    def get(self, request, *args, **kwargs):
        self.player = GamePlayerMiddleware(request.user.username)

        return render(request,
                      self.template_name,
                      context={
                          'recent_game_ranks':
                          self.player.rank_in_most_recent_games(10)
                      })

    # Handling of when a game player inputs a game code on the home page or creation of a new game
    # Post Request Values:
    #    code: game code inputed
    def post(self, request, *args, **kwargs):
        player = GamePlayerMiddleware(request.user.username)
        form = self.form(request.POST)

        # Inputting new game code to start playing a game
        if 'code' in request.POST.keys() and request.POST['code'] != '':
            game = _GameMiddleware(request.POST['code'])
            if not game.game:
                return render(request,
                              self.template_name,
                              context={
                                  'recent_game_ranks':
                                  player.rank_in_most_recent_games(10),
                                  'game_error':
                                  "Oops, incorrect code!"
                              })
            else:
                if player.can_join_game(request.POST['code']):
                    player.join_game(request.POST['code'])
                    return HttpResponseRedirect("/game/leaderboard/" +
                                                request.POST['code'])
                else:
                    return render(request,
                                  self.template_name,
                                  context={
                                      'recent_game_ranks':
                                      player.rank_in_most_recent_games(10),
                                      'game_error':
                                      "Oops, incorrect code!"
                                  })

        # Inputing a game name to start creating a new game
        if form.is_valid():
            game = form.save()
            game_creator = GameCreator.objects.create(game=game,
                                                      creator=request.user)
            return redirect('create_game', game.code)

        return render(request, self.template_name, {'form': form})
Esempio n. 2
0
    def post(self, request, *args, **kwargs):
        player = GamePlayerMiddleware(request.user.username)
        form = self.form(request.POST)

        # Inputting new game code to start playing a game
        if 'code' in request.POST.keys() and request.POST['code'] != '':
            game = _GameMiddleware(request.POST['code'])
            if not game.game:
                return render(request,
                              self.template_name,
                              context={
                                  'recent_game_ranks':
                                  player.rank_in_most_recent_games(10),
                                  'game_error':
                                  "Oops, incorrect code!"
                              })
            else:
                if player.can_join_game(request.POST['code']):
                    player.join_game(request.POST['code'])
                    return HttpResponseRedirect("/game/leaderboard/" +
                                                request.POST['code'])
                else:
                    return render(request,
                                  self.template_name,
                                  context={
                                      'recent_game_ranks':
                                      player.rank_in_most_recent_games(10),
                                      'game_error':
                                      "Oops, incorrect code!"
                                  })

        # Inputing a game name to start creating a new game
        if form.is_valid():
            game = form.save()
            game_creator = GameCreator.objects.create(game=game,
                                                      creator=request.user)
            return redirect('create_game', game.code)

        return render(request, self.template_name, {'form': form})