]> git.xonotic.org Git - xonotic/xonstat.git/commitdiff
Show an accuracy link when available on the game_info page. Add some details on the...
authorAnt Zucaro <azucaro@gmail.com>
Sun, 22 May 2011 13:52:02 +0000 (09:52 -0400)
committerAnt Zucaro <azucaro@gmail.com>
Sun, 22 May 2011 13:52:02 +0000 (09:52 -0400)
xonstat/templates/game_info.mako
xonstat/templates/player_weapon_stats.mako
xonstat/views.py

index c8fe25b597e8016866feabf87e62ac1f42569746..1c7d58093e23a986daf007aecba82184c005bd19 100644 (file)
@@ -39,6 +39,8 @@ Map: <a href="${request.route_url("map_info", id=map_id)}" name="Map info page f
            title="Go to the info page for this player">
           ${player_game_stat.nick_html_colors()}
           </a>
+        % else:
+          ${player_game_stat.nick_html_colors()}
         % endif
         </td>
         <td>${player_game_stat.kills}</td>
index 9812b35be672f41700844c48ca3bd41c15b808ba..3b53e8ba425b41f870d11b6346d44fa98936f1f8 100644 (file)
@@ -5,12 +5,12 @@ Accuracy Information - ${parent.title()}
 </%block>
 
 
-% if pwstats is None:
+% if pwstats is None or pgstat is None or game is None:
 <h2>Sorry, I can't find those weapon stats!</h2>
 <p>Assume the best, though. Really.</p>
 
 % else:
-<h2>Player Accuracy:</h2>
+<h2>Player Accuracy for ${pgstat.nick_html_colors()} in Game:</h2>
 <table border="1" cellpadding="3">
     <tr>
         <td>Weapon</td>
index e5fc599fedb28e42195c4f78586e8cc558893076..bbce01ee594519995ba725cb53d7f3a8840dd052 100755 (executable)
@@ -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)