def activate_game(gpk): game = Game.objects.get(pk=gpk) print '## Activating Game %s with ID %s ##' % (game.name, game.id) terms = Term.objects.filter( Q(genres__genre_name__in=[ str(g.genre_name) for g in game.genres.all() ])) t = terms[0] c = t.clues.all().order_by('clue_number')[0] AT = Active_Turn(active=True, game=game, clue=c) AT.save() user_games = Player_Game.objects.filter(Q(game__id=gpk)) for user_game in user_games: turn = Turn(player_game=user_game, active_turn=AT) turn.save()
def submit(request, gpk, ppk): if request.method == "POST": game = Game.objects.get(pk=gpk) player_games = Player_Game.objects.filter( Q(game__id=gpk, player__id=ppk)) if len(player_games) > 0: player_game = player_games[0] player_turn = Turn.objects.filter( Q(active_turn__active=True, player_game__player__id=ppk, player_game__game__id=gpk))[0] player_turn.guess = 'PASS' if request.POST.has_key( 'pass') else request.POST['answer'] player_was_correct = player_turn.guess == player_turn.active_turn.clue.term.term_content print '## The Player Guessed %s for the term %s ##' % ( player_turn.guess, player_turn.active_turn.clue.term.term_content, ) player_turn.save() all_have_played = player_turn.active_turn.all_have_played() print '## All the players have played ##' if all_have_played else '## Still waiting on players ##' has_right_answer = player_turn.active_turn.has_right_answer() if has_right_answer: print '## Someone got the answer right ##' else: print '## No one got the answer right ##' if all_have_played: clue = None if has_right_answer: print '## We need a new term ##' else: print '## We need a new clue ##' clue = player_turn.active_turn.clue.get_next() if not clue: print '## The term have no clues left ##' clue = get_next_term(gpk) if not clue: game.active = False game.save() return HttpReponse( "There were no more terms in the database") AT = player_turn.active_turn AT.active = False AT.save() AT = Active_Turn(game=game, clue=clue, active=True) AT.clue = clue AT.save() user_games = Player_Game.objects.filter(Q(game__id=gpk)) for ug in user_games: turn = Turn(player_game=ug, active_turn=AT) turn.save() active_games = Game.objects.filter( Q(active=True, player_game__accepted=True, player_game__player__id=ppk, player_game__turn__active_turn__active=True, player_game__turn__guess=None)) inactive_games = Game.objects.filter( Q(active=False, player_game__accepted=True, player_game__player__id=ppk) | Q(active=True, player_game__accepted=True, player_game__player__id=ppk, player_game__turn__active_turn__active=True, player_game__turn__guess__isnull=False)) new_games = Game.objects.filter( Q(active__exact=False, player_game__player__id=ppk, player_game__accepted=False, player_game__declined=False)) return render( request, 'player/detail.html', { 'message': ('You were correct' if player_was_correct else 'You were incorrect'), 'active_games': active_games, 'inactive_games': inactive_games, 'new_games': new_games }) else: return HttpResponse( "Something went wrong. There were %s player_games found in the database for player %s" % (len(player_games), ppk)) else: return HttpResponseRedirect("/game/%s/player/%s/" % ( gpk, ppk, ))