From: Ant Zucaro Date: Sun, 22 May 2011 13:52:02 +0000 (-0400) Subject: Show an accuracy link when available on the game_info page. Add some details on the... X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=d8ecceef4a7d06d05fe1dfc2cf7169d2756761f4;p=xonotic%2Fxonstat.git Show an accuracy link when available on the game_info page. Add some details on the player_weapon_stats page (who owns the stats and in what game they were created). --- diff --git a/xonstat/templates/game_info.mako b/xonstat/templates/game_info.mako index c8fe25b..1c7d580 100644 --- a/xonstat/templates/game_info.mako +++ b/xonstat/templates/game_info.mako @@ -39,6 +39,8 @@ Map: ${player_game_stat.nick_html_colors()} + % else: + ${player_game_stat.nick_html_colors()} % endif ${player_game_stat.kills} diff --git a/xonstat/templates/player_weapon_stats.mako b/xonstat/templates/player_weapon_stats.mako index 9812b35..3b53e8b 100644 --- a/xonstat/templates/player_weapon_stats.mako +++ b/xonstat/templates/player_weapon_stats.mako @@ -5,12 +5,12 @@ Accuracy Information - ${parent.title()} -% if pwstats is None: +% if pwstats is None or pgstat is None or game is None:

Sorry, I can't find those weapon stats!

Assume the best, though. Really.

% else: -

Player Accuracy:

+

Player Accuracy for ${pgstat.nick_html_colors()} in Game:

diff --git a/xonstat/views.py b/xonstat/views.py index e5fc599..bbce01e 100755 --- a/xonstat/views.py +++ b/xonstat/views.py @@ -89,9 +89,21 @@ def player_weapon_stats(request): order_by(Weapon.descr).\ all() + pgstat = DBSession.query(PlayerGameStat).\ + filter_by(player_game_stat_id=pgstat_id).one() + + game = DBSession.query(Game).filter_by(game_id=game_id).one() + + log.debug(pwstats) + log.debug(pgstat) + log.debug(game) + except Exception as e: pwstats = None - return {'pwstats':pwstats} + pgstat = None + game = None + raise e + return {'pwstats':pwstats, 'pgstat':pgstat, 'game':game} ########################################################################## @@ -277,7 +289,7 @@ def create_game(session=None, start_dt=None, game_type_cd=None, return game # search for a player and if found, create a new one (w/ hashkey) -def get_or_create_player(session=None, hashkey=None): +def get_or_create_player(session=None, hashkey=None, nick=None): # if we have a bot if re.search('^bot#\d+$', hashkey): player = session.query(Player).filter_by(player_id=1).one() @@ -297,6 +309,10 @@ def get_or_create_player(session=None, hashkey=None): player.player_id, hashkey.hashkey)) except: player = Player() + + if nick: + player.nick = nick + session.add(player) session.flush() hashkey = Hashkey(player_id=player.player_id, hashkey=hashkey) @@ -502,8 +518,13 @@ def stats_submit(request): # and add stats for each if they were present at the end # of the game for player_events in players: + if 'n' in player_events: + nick = player_events['n'] + else: + nick = None + player = get_or_create_player(session=session, - hashkey=player_events['P']) + hashkey=player_events['P'], nick=nick) log.debug('Creating stats for %s' % player_events['P']) create_player_stats(session=session, player=player, game=game, player_events=player_events)
Weapon