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})
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})