コード例 #1
0
ファイル: views.py プロジェクト: fcaneto/wc-betting-app
def player_detailed(request, user_id):

    user = User.objects.get(id=user_id)
    score = Score(user)

    group_bets = []
    round_16_bets = []
    quarter_bets = []
    semi_bets = []
    third_place = None
    final = None

    player = user.player

    if Bet.query_all_bets(player).exists():
        group_bets = Bet.query_all_bets(player).filter(game__stage=Game.GROUP).order_by('game__id')
        round_16_bets = Bet.query_all_bets(player).filter(game__stage=Game.ROUND_OF_16).order_by(
            'game__id')
        quarter_bets = Bet.query_all_bets(player).filter(game__stage=Game.QUARTER_FINALS).order_by(
            'game__id')
        semi_bets = Bet.query_all_bets(player).filter(game__stage=Game.SEMI_FINALS).order_by(
            'game__id')

        third_place = Bet.get_by_match_id(player, 63)
        final = Bet.get_by_match_id(player, 64)

        # Adicionando estes atributo a cada bet para facilitar template
        for bet in group_bets:
            bet.player_score = score.get_bet_score(bet.game_id)
        for bet in round_16_bets:
            bet.player_score = score.get_bet_score(bet.game_id)
        for bet in quarter_bets:
            bet.player_score = score.get_bet_score(bet.game_id)
        for bet in semi_bets:
            bet.player_score = score.get_bet_score(bet.game_id)
        third_place.player_score = score.get_bet_score(third_place.game_id)
        final.player_score = score.get_bet_score(final.game_id)

    users = User.objects.filter(player__bet_room=request.user.player.bet_room).exclude(id=request.user.id)
    current_user_name = '%s %s' % (user.first_name, user.last_name) if user in users else 'Você'

    first_round_score = score.first_round_first_half_score + score.first_round_second_half_score
    second_round_score = score.round_of_16_qualified_score + score.get_round_of_16_results_score() + \
                         score.quarter_finals_qualified_score + score.get_quarter_finals_result_score() + \
                         score.finals_qualified_score + score.get_finals_result_score()

    return render_to_response('player.html',
                              {'current_user_name': current_user_name,
                               'users': users,
                               'score': score,
                               'first_round_score': first_round_score,
                               'second_round_score': second_round_score,
                               'bet_room': player.bet_room,
                               'group_bets': group_bets,
                               'round_16_bets': round_16_bets,
                               'quarter_bets': quarter_bets,
                               'semi_bets': semi_bets,
                               'third_place': third_place,
                               'final': final,
                               'total_score': score.total_score,
                               'podium_scores': score.podium_scores},
                              RequestContext(request))