From bd62b67998034429a0dc5c62b63fa4a128585735 Mon Sep 17 00:00:00 2001 From: Ant Zucaro Date: Mon, 9 May 2011 07:28:00 -0400 Subject: [PATCH] Add stip and html colorify to PlayerGameStat model. Put this into the template. Change the view to add linking info (name for server and map, for example) for the template. --- xonstat/models.py | 7 ++++++ xonstat/templates/game_info.mako | 41 +++++++++++++++++++++++++------- xonstat/views.py | 30 +++++++++++++++++++---- 3 files changed, 65 insertions(+), 13 deletions(-) diff --git a/xonstat/models.py b/xonstat/models.py index 8046279..5d3f2a2 100644 --- a/xonstat/models.py +++ b/xonstat/models.py @@ -3,6 +3,7 @@ from sqlalchemy.orm import mapper from sqlalchemy.orm import scoped_session from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base +from xonstat.util import strip_colors, html_colors DBSession = scoped_session(sessionmaker()) Base = declarative_base() @@ -76,6 +77,12 @@ class PlayerGameStat(object): return "" \ % (self.player_id, self.game_id, self.create_dt, self.stat_type) + def nick_stripped(self): + return strip_colors(self.nick) + + def nick_html_colors(self): + return html_colors(self.nick) + class GameMutator(object): def __repr__(self): diff --git a/xonstat/templates/game_info.mako b/xonstat/templates/game_info.mako index 8f9f4c6..2800799 100644 --- a/xonstat/templates/game_info.mako +++ b/xonstat/templates/game_info.mako @@ -10,13 +10,36 @@ Game Information - ${parent.title()} % else:

Game Detail

- +

+Played on: ${start_dt}
+Game Type: ${game_type_cd}
+Server: ${server_name}
+Map: ${map_name}
+

+ +

Scoreboard

+ + + + + + + + + + + +% for player_game_stat in player_game_stats: + + + + + + + + + + +% endfor +
NickKillsDeathsSuicidesCapturesReturnsFlag Carrier KillsScore
${player_game_stat.nick_html_colors()}${player_game_stat.kills}${player_game_stat.deaths}${player_game_stat.suicides}${player_game_stat.captures}${player_game_stat.returns}${player_game_stat.carrier_frags}${player_game_stat.score}
% endif diff --git a/xonstat/views.py b/xonstat/views.py index 532f2e6..c8ba2f1 100755 --- a/xonstat/views.py +++ b/xonstat/views.py @@ -58,10 +58,32 @@ def player_info(request): def game_info(request): game_id = request.matchdict['id'] try: - game = DBSession.query(Game).filter_by(game_id=game_id).one() - except: - game = None - return {'game':game} + (start_dt, game_type_cd, server_id, server_name, map_id, map_name) = \ + DBSession.query("start_dt", "game_type_cd", "server_id", + "server_name", "map_id", "map_name").\ + from_statement("select g.start_dt, g.game_type_cd, " + "g.server_id, s.name as server_name, g.map_id, " + "m.name as map_name " + "from games g, servers s, maps m " + "where g.game_id = :game_id " + "and g.server_id = s.server_id " + "and g.map_id = m.map_id").\ + params(game_id=game_id).one() + + player_game_stats = DBSession.query(PlayerGameStat).\ + from_statement("select * from player_game_stats " + "where game_id = :game_id " + "order by score desc").\ + params(game_id=game_id).all() + except Exception as inst: + player_game_stats = None + return {'start_dt':start_dt, + 'game_type_cd':game_type_cd, + 'server_id':server_id, + 'server_name':server_name, + 'map_id':map_id, + 'map_name':map_name, + 'player_game_stats':player_game_stats} ########################################################################## -- 2.39.2