1 <%inherit file="base.mako"/>
2 <%namespace name="nav" file="nav.mako" />
3 <%namespace file="scoreboard.mako" import="scoreboard" />
4 <%namespace file="accuracy.mako" import="accuracy" />
6 <%block name="navigation">
12 <link href="/static/css/sprites.css" rel="stylesheet">
18 $(".collapse").collapse();
20 // show accordion only when loaded to prevent rollup from being seen
21 $("#acc-accordion").css('display', '');
31 <h2>Sorry, that game wasn't found!</h2>
36 <div class="span8 game-detail">
37 <img width="64" height="64" src="/static/images/icons/48x48/${game.game_type_cd}.png" alt="${game.game_type_cd}"/>
39 Played: <span class="abstime" data-epoch="${game.epoch()}" title="${game.start_dt.strftime('%a, %d %b %Y %H:%M:%S UTC')}">${game.fuzzy_date()}</span><br />
40 Game Type: ${gametype.descr} (${game.game_type_cd})<br />
41 Server: <a href="${request.route_url("server_info", id=server.server_id)}" name="Server info page for ${server.name}">${server.name}</a><br />
42 Map: <a href="${request.route_url("map_info", id=map.map_id)}" name="Map info page for ${map.name}">${map.name}</a><br />
43 % if game.duration is not None:
44 Duration: ${"%s:%02d" % (game.duration.seconds/60, game.duration.seconds%60)}
47 <span class="clear"></span>
50 <div class="span3 teamscores">
51 <table class="table table-condensed">
57 % for ts in teamscores:
58 <tr class="${ts.team}"><td>${ts.team.capitalize()}</td><td>${ts.score}</td></tr>
66 % if len(tgstats) == len(stats_by_team):
67 ## if we have teamscores in the db
68 % for tgstat in tgstats:
70 <div class="span1 teamscore">
71 <div class="teamname ${tgstat.team_html_color()}">
72 ${tgstat.team_html_color().capitalize()}
74 <div class="${tgstat.team_html_color()}">
75 % if game.game_type_cd == 'ctf':
77 % elif game.game_type_cd == 'ca':
79 ## dom -> ticks, rc -> laps, nb -> goals, as -> objectives
85 <div class="span10 game">
86 ${scoreboard(game.game_type_cd, stats_by_team[tgstat.team], show_elo, show_latency)}
91 % for team in stats_by_team.keys():
93 <div class="span12 game">
94 ${scoreboard(game.game_type_cd, stats_by_team[team], show_elo, show_latency)}
100 % if len(captimes) > 0:
103 <h3>Best Flag Capture Times</h3>
104 <table class="table table-hover table-condensed">
112 % for pgs in captimes:
115 % if pgs.player_id > 2:
116 <a href="${request.route_url("player_info", id=pgs.player_id)}"
117 title="Go to the info page for this player">
118 <span class="nick">${pgs.nick_html_colors()|n}</span>
121 <span class="nick">${pgs.nick_html_colors()|n}</span>
124 <td>${round(float(pgs.fastest.seconds) + (pgs.fastest.microseconds/1000000.0), 2)}</td>
134 % if len(pgstats) > 0 and len(pwstats) > 0:
137 <h3>Accuracy Information</h3>
138 <div class="accordion" id="acc-accordion" style="display:none;">
139 % for pgstat in pgstats:
140 % if pgstat.player_game_stat_id in pwstats:
141 <div class="accordion-group">
142 <div class="accordion-heading">
143 <a class="accordion-toggle" data-toggle="collapse" data-parent="#acc-accordion" href="#accuracy-${pgstat.player_game_stat_id}">
144 Accuracy for ${pgstat.nick_html_colors()|n}
147 <div id="accuracy-${pgstat.player_game_stat_id}" class="accordion-body collapse in">
148 <div class="accordion-inner">
149 ${accuracy(pwstats[pgstat.player_game_stat_id])}