コード例 #1
0
ファイル: views.py プロジェクト: zachcalvert/bball
def free_agents(request, num_days=15):
    all_player_stats = {}
    all_players = Player.objects.filter(team__isnull=True)
    paginator = Paginator(all_players, 40)

    page = request.GET.get('page')
    try:
        players = paginator.page(page)
    except PageNotAnInteger:
        # If page is not an integer, deliver first page.
        players = paginator.page(1)
    except EmptyPage:
        # If page is out of range (e.g. 9999), deliver last page of results.
        players = paginator.page(paginator.num_pages)

    context_data['players'] = players

    delta = timedelta(days=int(num_days))
    start_day = today - delta

    for player in players:
        all_player_stats[player.id] = {}
        total_stats = calculate_totals(player, start_day=start_day, end_day=today)
        avg_stats = calculate_avgs(total_stats)
        all_player_stats[player.id]['name'] = player.name
        all_player_stats[player.id]['nba_team'] = player.nba_team
        all_player_stats[player.id]['position'] = player.position
        all_player_stats[player.id]['stats'] = avg_stats

    context_data['all_player_stats'] = all_player_stats
    context_data['num_days'] = num_days
    context_data['nba_teams'] = NBA_TEAMS

    return render_to_response('free_agents.html', context_data,
        context_instance=RequestContext(request))
コード例 #2
0
def calculate_team_totals(team, start_day, end_day):
	"""
	Returns a dictionary with average stats and total stats for the given time period.
	"""
	team_stats = {}
	team_stats['totals'] = {"games_played": 0, "minutes": 0, "fgm": 0, "fga": 0, "ftm": 0, "fta": 0, 
		"threes": 0, "rebounds": 0, "assists": 0, "steals": 0, "blocks": 0, "turnovers": 0, "points": 0,
		"fgpct": .0, "ftpct": .0} 
	for player in team.players:
		player_stats = utils.calculate_totals(player, start_day, end_day)
		for k, v in player_stats.iteritems():
			team_stats['totals'][k] += v
		# we need to render these 'non-stat' attributes 
		player_stats['name'] = player.name
		player_stats['nba_team'] = player.nba_team
		player_stats['position'] = player.position
		team_stats[player.id] = player_stats

	try:
		team_stats['totals']['fgpct'] = round(team_stats['totals'].get('fgm')/team_stats['totals'].get('fga'), 3)
	except ZeroDivisionError:
		team_stats['totals']['fgpct'] = .000
	try:
		team_stats['totals']['ftpct'] = round(team_stats['totals'].get('ftm')/team_stats['totals'].get('fta'), 3)
	except ZeroDivisionError:
		team_stats['totals']['ftpct'] = .000

	return team_stats
コード例 #3
0
ファイル: views.py プロジェクト: gojonesy/bball
def free_agents(request, num_days=15):
    if request.is_ajax():
        if request.GET.get('filter') == 'seven':
            start_day = today - seven
            new_list = []
            for player in players:
                all_player_stats[player.id] = {}
                total_stats = calculate_totals(player,
                                               start_day=start_day,
                                               end_day=today)
                avg_stats = calculate_avgs(total_stats)
                all_player_stats[player.id]['name'] = player.name
                all_player_stats[player.id]['nba_team'] = player.nba_team
                all_player_stats[player.id]['position'] = player.position
                all_player_stats[player.id]['stats'] = avg_stats
            new_list.append(
                render_to_string('free_agents.html',
                                 {'all_player_stats': all_player_stats}))
            json = json.dumps(new_list, cls=DjangoJSONEncoder)
            return HttpResponse(json, mimetype='application/json')

    all_player_stats = {}
    players = Player.objects.filter(team__isnull=True)[:50]

    delta = timedelta(days=int(num_days))
    start_day = today - delta

    for player in players:
        all_player_stats[player.id] = {}
        total_stats = calculate_totals(player,
                                       start_day=start_day,
                                       end_day=today)
        avg_stats = calculate_avgs(total_stats)
        all_player_stats[player.id]['name'] = player.name
        all_player_stats[player.id]['nba_team'] = player.nba_team
        all_player_stats[player.id]['position'] = player.position
        all_player_stats[player.id]['stats'] = avg_stats

    context_data['all_player_stats'] = all_player_stats
    context_data['num_days'] = num_days
    context_data['nba_teams'] = NBA_TEAMS

    return render_to_response('free_agents.html',
                              context_data,
                              context_instance=RequestContext(request))
コード例 #4
0
ファイル: views.py プロジェクト: zachcalvert/bball
def player_profile(request, player_id, num_days=15):
    player = get_object_or_404(Player, pk=player_id)
    context_data['player'] = player

    url = get_image_url(player.name)
    context_data['image_url'] = url

    delta = timedelta(days=int(num_days))
    start_day = today - delta
    total_stats = calculate_totals(player, start_day=start_day, end_day=today)
    context_data['total_stats'] = total_stats

    avg_stats = calculate_avgs(total_stats)
    context_data['avg_stats'] = avg_stats

    return render_to_response('player_profile.html', context_data,
        context_instance=RequestContext(request))
コード例 #5
0
ファイル: views.py プロジェクト: zachcalvert/bball
def add_player(request, player_id, num_days=15):
    player = get_object_or_404(Player, pk=player_id)
    delta = timedelta(days=int(num_days))
    start_day = today - delta
    player_stats = calculate_totals(player, start_day=start_day, end_day=today)
    player_avg_stats = calculate_avgs(player_stats)
    context_data['player_avg_stats'] = player_avg_stats
    context_data['player'] = player

    team = Team.objects.get(owner=request.user.id)
    team_total_stats = calculate_team_totals(team, start_day=start_day, end_day=today)
    team_avg_stats = calculate_team_avgs(team_total_stats)
    team_avg_stats.pop('totals')
    context_data['stats'] = team_avg_stats

    return render_to_response('add_player.html', context_data,
        context_instance=RequestContext(request))