From: Ant Zucaro Date: Tue, 23 Apr 2013 02:26:12 +0000 (-0400) Subject: Merge branch 'zykure-approved' X-Git-Url: https://git.xonotic.org/?a=commitdiff_plain;h=5d1a78293f44986ae007f9098a2b00082dc4153f;hp=-c;p=xonotic%2Fxonstat.git Merge branch 'zykure-approved' --- 5d1a78293f44986ae007f9098a2b00082dc4153f diff --combined xonstat/views/player.py index d314c12,057cab5..424c1c5 --- a/xonstat/views/player.py +++ b/xonstat/views/player.py @@@ -136,6 -136,7 +136,7 @@@ def get_overall_stats(player_id) - cap_ratio (ctf only) - total_carrier_frags (ctf only) - game_type_cd + - game_type_descr The key to the dictionary is the game type code. There is also an "overall" game_type_cd which sums the totals and computes the total ratios. @@@ -143,13 -144,14 +144,14 @@@ OverallStats = namedtuple('OverallStats', ['total_kills', 'total_deaths', 'k_d_ratio', 'last_played', 'last_played_epoch', 'last_played_fuzzy', 'total_playing_time', 'total_playing_time_secs', 'total_pickups', 'total_captures', 'cap_ratio', - 'total_carrier_frags', 'game_type_cd']) + 'total_carrier_frags', 'game_type_cd', 'game_type_descr']) - raw_stats = DBSession.query('game_type_cd', 'total_kills', - 'total_deaths', 'last_played', 'total_playing_time', + raw_stats = DBSession.query('game_type_cd', 'game_type_descr', + 'total_kills', 'total_deaths', 'last_played', 'total_playing_time', 'total_pickups', 'total_captures', 'total_carrier_frags').\ from_statement( "SELECT g.game_type_cd, " + "gt.descr game_type_descr, " "Sum(pgs.kills) total_kills, " "Sum(pgs.deaths) total_deaths, " "Max(pgs.create_dt) last_played, " @@@ -158,12 -160,15 +160,15 @@@ "Sum(pgs.captures) total_captures, " "Sum(pgs.carrier_frags) total_carrier_frags " "FROM games g, " + "cd_game_type gt, " "player_game_stats pgs " "WHERE g.game_id = pgs.game_id " + "AND g.game_type_cd = gt.game_type_cd " "AND pgs.player_id = :player_id " - "GROUP BY g.game_type_cd " + "GROUP BY g.game_type_cd, game_type_descr " "UNION " - "SELECT 'overall' game_type_cd, " + "SELECT 'overall' game_type_cd, " + "'Overall' game_type_descr, " "Sum(pgs.kills) total_kills, " "Sum(pgs.deaths) total_deaths, " "Max(pgs.create_dt) last_played, " @@@ -171,15 -176,13 +176,13 @@@ "Sum(pgs.pickups) total_pickups, " "Sum(pgs.captures) total_captures, " "Sum(pgs.carrier_frags) total_carrier_frags " - "FROM games g, " - "player_game_stats pgs " - "WHERE g.game_id = pgs.game_id " - "AND pgs.player_id = :player_id " + "FROM player_game_stats pgs " + "WHERE pgs.player_id = :player_id " ).params(player_id=player_id).all() - + # to be indexed by game_type_cd overall_stats = {} - + for row in raw_stats: # individual gametype ratio calculations try: @@@ -205,7 -208,8 +208,8 @@@ total_captures=row.total_captures, cap_ratio=cap_ratio, total_carrier_frags=row.total_carrier_frags, - game_type_cd=row.game_type_cd) + game_type_cd=row.game_type_cd, + game_type_descr=row.game_type_descr) overall_stats[row.game_type_cd] = os @@@ -394,7 -398,7 +398,7 @@@ def get_recent_games(player_id) Provides a list of recent games for a player. Uses the recent_games_q helper. """ # recent games played in descending order - rgs = recent_games_q(player_id=player_id).limit(10).all() + rgs = recent_games_q(player_id=player_id, force_player_id=True).limit(10).all() recent_games = [RecentGame(row) for row in rgs] return recent_games @@@ -525,6 -529,8 +529,8 @@@ def player_info_data(request) ranks = None recent_games = None recent_weapons = [] + ## do not raise exceptions here (only for debugging) + #raise e return {'player':player, 'games_played':games_played, @@@ -925,11 -931,6 +931,6 @@@ def player_captimes_data(request) if player_id <= 2: player_id = -1; - #player_captimes = DBSession.query(PlayerCaptime).\ - # filter(PlayerCaptime.player_id==player_id).\ - # order_by(PlayerCaptime.fastest_cap).\ - # all() - PlayerCaptimes = namedtuple('PlayerCaptimes', ['fastest_cap', 'create_dt', 'create_dt_epoch', 'create_dt_fuzzy', 'player_id', 'game_id', 'map_id', 'map_name', 'server_id', 'server_name'])