Merge branch 'master' into zykure/approved
[xonotic/xonstat.git] / xonstat / templates / main_index.mako
1 <%inherit file="base.mako"/>
2
3 <%block name="title">
4 Leaderboard
5 </%block>
6
7 <%block name="css">
8   ${parent.css()}
9   <link href="/static/css/sprites.css" rel="stylesheet">
10 </%block>
11
12 <%block name="hero_unit">
13   <div class="text-center">
14     <img src="/static/css/img/web_background_l2.png" />
15     % if summary_stats is None:
16     <p id="statline">Tracking Xonotic statistics since October 2011.</p>
17     % else:
18     <p id="statline">Tracking <a href="${request.route_url('player_index')}">${'{:2,d}'.format(summary_stats.total_players)}</a> players, <a href="${request.route_url('game_index')}">${'{:2,d}'.format(summary_stats.total_games)}</a> games (${'{:2,d}'.format(summary_stats.duel_games)} duel; ${'{:2,d}'.format(summary_stats.ctf_games)} ctf; ${'{:2,d}'.format(summary_stats.dm_games)} dm) and <a href="${request.route_url('server_index')}">${'{:2,d}'.format(summary_stats.total_servers)}</a> servers since October 2011.</p>
19     % endif
20   </div>
21 </%block>
22
23 ##### RANKS #####
24 % if len(ranks) < 4:
25   <div class="row">
26     <div class="span12">
27       <p style="text-align: center;"><i class="icon-white icon-info-sign"> </i> You don't seem to have any ranks yet.</p>
28     </div> <!-- span12 -->
29   </div> <!-- row -->
30
31 % else:
32   <div class="row">
33     % for rs in ranks[:4]:
34     % if len(rs) > 0:
35     <div class="span3">
36       % if rs[0].game_type_cd == 'duel':
37       <h3>Duel Ranks</h3>
38       % elif rs[0].game_type_cd == 'ctf':
39       <h3>CTF Ranks</h3>
40       % elif rs[0].game_type_cd == 'dm':
41       <h3>DM Ranks</h3>
42       % elif rs[0].game_type_cd == 'tdm':
43       <h3>TDM Ranks</h3>
44       % endif
45
46       <table class="table table-hover table-condensed">
47         <thead>
48           <tr>
49             <th style="width:40px;">#</th>
50             <th style="width:150px;">Nick</th>
51             <th style="width:60px;">Elo</th>
52           </tr>
53         </thead>
54         <tbody>
55         <% i = 1 %>
56         % for r in rs:
57         <tr>
58           <td>${i}</td>
59           <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('player_info', id=r.player_id)}" title="Go to the player info page for this player">${r.nick_html_colors()|n}</a></td>
60           <td>${int(round(r.elo))}</td>
61         </tr>
62         <% i = i+1 %>
63         % endfor
64         </tbody>
65       </table>
66       <p class="note"><a href="${request.route_url('rank_index', page=1, game_type_cd=rs[0].game_type_cd)}" title="See more ${rs[0].game_type_cd} rankings">More...</a></p>
67     </div> <!-- /span4 -->
68   % endif
69
70   % endfor
71 </div> <!-- row -->
72 % endif
73
74
75 ##### ACTIVE PLAYERS #####
76 <div class="row">
77   <div class="span4">
78     <h3>Most Active Players</h3>
79     <table class="table table-hover table-condensed">
80       <thead>
81         <tr>
82           <th style="width:40px;">#</th>
83           <th style="width:150px;">Nick</th>
84           <th class="play-time" style="width:90px;">Play Time</th>
85         </tr>
86       </thead>
87       <tbody>
88       <% i = 1 %>
89       % for (player_id, nick, alivetime) in top_players:
90         <tr>
91           <td>${i}</td>
92           % if player_id != '-':
93           <td class="nostretch" style="max-width:150px;"><a href="${request.route_url('player_info', id=player_id)}" title="Go to the player info page for this player">${nick|n}</a></td>
94           % else:
95           <td class="nostretch" style="max-width:150px;">${nick|n}</td>
96           % endif
97           <td class="play-time">${alivetime}</td>
98         </tr>
99         <% i = i+1 %>
100       % endfor
101       </tbody>
102     </table>
103   </div> <!-- /span4 -->
104
105
106 ##### ACTIVE SERVERS #####
107   <div class="span4">
108     <h3>Most Active Servers</h3>
109     <table class="table table-hover table-condensed">
110       <thead>
111         <tr>
112           <th style="width:40px;">#</th>
113           <th style="width:180px;">Server</th>
114           <th style="width:60px;">Games</th>
115         </tr>
116       </thead>
117       <tbody>
118       <% i = 1 %>
119       % for (server_id, name, count) in top_servers:
120         <tr>
121           <td>${i}</td>
122           % if server_id != '-':
123           <td class="nostretch" style="max-width:180px;"><a href="${request.route_url('server_info', id=server_id)}" title="Go to the server info page for ${name}">${name}</a></td>
124           % else:
125           <td class="nostretch" style="max-width:180px;">${name}</td>
126           % endif
127           <td>${count}</td>
128         </tr>
129         <% i = i+1 %>
130       % endfor
131       </tbody>
132     </table>
133   </div> <!-- /span4 -->
134
135
136 ##### ACTIVE MAPS #####
137   <div class="span4">
138     <h3>Most Active Maps</h3>
139     <table class="table table-hover table-condensed">
140       <thead>
141         <tr>
142           <th style="width:40px;">#</th>
143           <th style="width:180px;">Map</th>
144           <th style="width:60px;">Games</th>
145         </tr>
146       </thead>
147       <tbody>
148       <% i = 1 %>
149       % for (map_id, name, count) in top_maps:
150         <tr>
151           <td>${i}</td>
152           % if map_id != '-':
153           <td class="nostretch" style="max-width:180px;"><a href="${request.route_url('map_info', id=map_id)}" title="Go to the map info page for ${name}">${name}</a></td>
154           % else:
155           <td class="nostretch" style="max-width:180px;">${name}</td>
156           % endif
157           <td>${count}</td>
158         </tr>
159         <% i = i+1 %>
160       % endfor
161       </tbody>
162     </table>
163   </div> <!-- /span4 -->
164 </div> <!-- /row -->
165 <row class="span12">
166     <p class="note">*Most active stats are from the past 7 days</p>
167 </div>
168
169
170 ##### RECENT GAMES #####
171 % if len(recent_games) > 0:
172 <div class="row">
173   <div class="span12">
174     <h3>Recent Games</h3>
175     <table class="table table-hover table-condensed">
176       <thead>
177         <tr>
178           <th></th>
179           <th>Type</th>
180           <th>Server</th>
181           <th>Map</th>
182           <th>Time</th>
183           <th>Winner</th>
184         </tr>
185       </thead>
186       <tbody>
187       % for rg in recent_games:
188         <tr>
189           <td class="tdcenter"><a class="btn btn-primary btn-small" href="${request.route_url('game_info', id=rg.game_id)}" title="View detailed information about this game">view</a></td>
190           <td class="tdcenter"><span class="sprite sprite-${rg.game_type_cd}" alt="${rg.game_type_cd}" title="${rg.game_type_descr}"></span></td>
191           <td><a href="${request.route_url('server_info', id=rg.server_id)}" title="Go to the detail page for this server">${rg.server_name}</a></td>
192           <td><a href="${request.route_url('map_info', id=rg.map_id)}" title="Go to the map detail page for this map">${rg.map_name}</a></td>
193           <td><span class="abstime" data-epoch="${rg.epoch}" title="${rg.start_dt.strftime('%a, %d %b %Y %H:%M:%S UTC')}">${rg.fuzzy_date}</span></td>
194           <td class="nostretch">
195             % if rg.player_id > 2:
196             <a href="${request.route_url('player_info', id=rg.player_id)}" title="Go to the player info page for this player">${rg.nick_html_colors|n}</a></td>
197             % else:
198             ${rg.nick_html_colors|n}</td>
199             % endif
200         </tr>
201         % endfor
202         </tbody>
203     </table>
204     <p><a href="${request.route_url('game_index')}">More...</a></p>
205   </div> <!-- /span12 -->
206 </div> <!-- /row -->
207 % endif