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