From: Ant Zucaro Date: Mon, 9 May 2011 11:28:00 +0000 (-0400) Subject: Add stip and html colorify to PlayerGameStat model. Put this into the template. Chang... X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=bd62b67998034429a0dc5c62b63fa4a128585735;p=xonotic%2Fxonstat.git 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. --- 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} ##########################################################################