1 from xonstat.models import DBSession, Player
2 from xonstat.views.player import get_games_played, get_overall_stats, get_ranks, get_elos
7 # player data, will be filled by get_data()
13 def __getattr__(self, key):
14 if self.data.has_key(key):
19 def get_data(self, player_id):
20 """Return player data as dict.
22 This function is similar to the function in player.py but more optimized
29 # duel/dm/tdm/ctf elo + rank
30 player = DBSession.query(Player).filter_by(player_id=player_id).\
31 filter(Player.active_ind == True).one()
32 games_played = get_games_played(player_id)
33 overall_stats = get_overall_stats(player_id)
34 ranks = get_ranks(player_id)
35 elos = get_elos(player_id)
37 games_played_dict = {}
38 for game in games_played:
39 games_played_dict[game.game_type_cd] = game
42 for gt,rank in ranks.items():
43 ranks_dict[gt] = (rank.rank, rank.max_rank)
46 for gt,elo in elos.items():
48 elos_dict[gt] = elo.elo
52 'games_played':games_played_dict,
53 'overall_stats':overall_stats,