From: Ant Zucaro Date: Tue, 10 May 2011 02:55:13 +0000 (-0400) Subject: Add more detail and linking to the views and corresponding templates for game and... X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=17b0791fdc55e84ff7e813bb0a376f3e3db051dd;p=xonotic%2Fxonstat.git Add more detail and linking to the views and corresponding templates for game and player info. --- diff --git a/xonstat/__init__.py b/xonstat/__init__.py index 7c3bf23..ff90a62 100755 --- a/xonstat/__init__.py +++ b/xonstat/__init__.py @@ -25,16 +25,16 @@ def main(global_config, **settings): config.add_route(name="main_index", pattern="/", view=main_index, renderer='index.jinja2') - config.add_route(name="player_info", pattern="/player/{id}", view=player_info, + config.add_route(name="player_info", pattern="/player/{id:\d+}", view=player_info, renderer='player_info.mako') - config.add_route(name="game_info", pattern="/game/{id}", view=game_info, + config.add_route(name="game_info", pattern="/game/{id:\d+}", view=game_info, renderer='game_info.mako') - config.add_route(name="server_info", pattern="/server/{id}", view=server_info, + config.add_route(name="server_info", pattern="/server/{id:\d+}", view=server_info, renderer='server_info.mako') - config.add_route(name="map_info", pattern="/map/{id}", view=map_info, + config.add_route(name="map_info", pattern="/map/{id:\d+}", view=map_info, renderer='map_info.mako') config.add_route(name="stats_submit", pattern="stats/submit", diff --git a/xonstat/templates/game_info.mako b/xonstat/templates/game_info.mako index 2800799..d7a5c00 100644 --- a/xonstat/templates/game_info.mako +++ b/xonstat/templates/game_info.mako @@ -11,35 +11,56 @@ Game Information - ${parent.title()} % else:

Game Detail

-Played on: ${start_dt}
+Played on: ${start_dt.strftime('%m/%d/%Y at %I:%M %p')}
Game Type: ${game_type_cd}
Server: ${server_name}
Map: ${map_name}

Scoreboard

- +
+% if game_type_cd == 'ctf': - - - + + + % for player_game_stat in player_game_stats: - - - + + % endfor +% endif + +% if game_type_cd == 'dm': + + + + + + + + +% for player_game_stat in player_game_stats: + + + + + + + +% endfor +% endif
Nick KillsDeathsSuicides CapturesReturnsPickups Flag Carrier KillsReturns Score
${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.pickups} ${player_game_stat.carrier_frags}${player_game_stat.returns} ${player_game_stat.score}
NickKillsDeathsSuicidesScore
${player_game_stat.nick_html_colors()}${player_game_stat.kills}${player_game_stat.deaths}${player_game_stat.suicides}${player_game_stat.score}
% endif diff --git a/xonstat/templates/player_info.mako b/xonstat/templates/player_info.mako index cfa47c3..aae1b66 100755 --- a/xonstat/templates/player_info.mako +++ b/xonstat/templates/player_info.mako @@ -14,19 +14,17 @@ ${parent.title()} % else:

Player Detail

- +

+ Nickname: ${player.nick}
+ Joined: ${player.create_dt.strftime('%m/%d/%Y at %I:%M %p')}
+

% endif % if recent_games:

Recent Games

% endif diff --git a/xonstat/views.py b/xonstat/views.py index c8ba2f1..6807d09 100755 --- a/xonstat/views.py +++ b/xonstat/views.py @@ -33,8 +33,9 @@ def player_info(request): player_id = request.matchdict['id'] try: player = DBSession.query(Player).filter_by(player_id=player_id).one() - recent_games = DBSession.query("game_id", "server_name", "map_name").\ - from_statement("select g.game_id, s.name as server_name, m.name as map_name " + recent_games = DBSession.query("game_id", "server_id", "server_name", + "map_id", "map_name").\ + from_statement("select g.game_id, s.server_id, s.name as server_name, m.map_id, m.name as map_name " "from player_game_stats gs, games g, servers s, maps m " "where gs.player_id=:player_id " "and gs.game_id = g.game_id " @@ -46,8 +47,8 @@ def player_info(request): log.debug(recent_games) except Exception as e: - raise e player = None + recent_games = None return {'player':player, 'recent_games':recent_games} @@ -58,6 +59,8 @@ def player_info(request): def game_info(request): game_id = request.matchdict['id'] try: + notfound = False + (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").\ @@ -76,8 +79,17 @@ def game_info(request): "order by score desc").\ params(game_id=game_id).all() except Exception as inst: + notfound = True + start_dt = None + game_type_cd = None + server_id = None + server_name = None + map_id = None + map_name = None player_game_stats = None - return {'start_dt':start_dt, + + return {'notfound':notfound, + 'start_dt':start_dt, 'game_type_cd':game_type_cd, 'server_id':server_id, 'server_name':server_name,