]> de.git.xonotic.org Git - xonotic/xonstat.git/commitdiff
Add server index and template. Fix links on player index and template.
authorAnt Zucaro <azucaro@gmail.com>
Fri, 24 Jun 2011 20:36:29 +0000 (16:36 -0400)
committerAnt Zucaro <azucaro@gmail.com>
Fri, 24 Jun 2011 20:36:29 +0000 (16:36 -0400)
xonstat/__init__.py
xonstat/templates/base.mako
xonstat/templates/player_index.mako
xonstat/templates/server_index.mako [new file with mode: 0755]
xonstat/views/__init__.py
xonstat/views/player.py
xonstat/views/server.py

index 06337537d0f1505373deaaf99ddbec0e27acdc7e..49aab4fe285019aafa87f5a132966bdbe7cf98a4 100755 (executable)
@@ -55,6 +55,13 @@ def main(global_config, **settings):
             renderer='game_info.mako') 
 
     # SERVER ROUTES
+    config.add_route(name="server_index_paged", 
+            pattern="/servers/page/{page:\d+}", view=server_index, 
+            renderer='server_index.mako') 
+
+    config.add_route(name="server_index", pattern="/servers", view=server_index, 
+            renderer='server_index.mako') 
+
     config.add_route(name="server_game_index", 
             pattern="/server/{server_id:\d+}/games/page/{page:\d+}", 
             view=server_game_index, renderer='server_game_index.mako') 
index 812ec31c845df7abcb09c2efcd96bc537a7d0807..473708d8b025aa49bc45c9fa6287b00cf6c79f5f 100755 (executable)
             <h3>Player Statistics for Xonotic</h3>
             </%block>
             <ul id="nav">
+                <li><a href="/" title="Leaderboard">leaderboard</a></li>
                 <li><a href="/players" title="Player Index">players</a></li>
                 <li><a href="/games" title="Game Index">games</a></li>
                 <li><a href="/maps" title="Map Index">maps</a></li>
-                <li><a href="" title="Server Index">servers</a></li>
+                <li><a href="/servers" title="Server Index">servers</a></li>
             </ul>
         </div> <!-- END HEADER -->
         <div id="main">
index d5f12e1228a8fe748ccbdb7db00f231277a2fc3c..03f52b940864b88e7d234c07c68406df949b681d 100755 (executable)
@@ -18,7 +18,7 @@ Player Index - ${parent.title()}
 % for player in players:\r
   <tr>\r
     <td>${player.player_id}</th>\r
-    <td>${player.nick_html_colors()}</th>\r
+    <td><a href="${request.route_url("player_info", id=player.player_id)}" title="Go to this player's info page">${player.nick_html_colors()}</a></th>\r
     <td>${player.create_dt.strftime('%m/%d/%Y at %H:%M')}</th>\r
   </tr>\r
 % endfor\r
diff --git a/xonstat/templates/server_index.mako b/xonstat/templates/server_index.mako
new file mode 100755 (executable)
index 0000000..93b6f09
--- /dev/null
@@ -0,0 +1,32 @@
+<%inherit file="base.mako"/>\r
+\r
+<%block name="title">\r
+Map Index - ${parent.title()}\r
+</%block>\r
+\r
+% if not servers:\r
+<h2>Sorry, no servers yet. Get playing!</h2>\r
+\r
+% else:\r
+<h2>Server Index</h2>\r
+<table border="1">\r
+  <tr>\r
+    <th>#</th>\r
+    <th>Name</th>\r
+    <th>IP Address</th>\r
+  </tr>\r
+% for server in servers:\r
+  <tr>\r
+    <td>${server.server_id}</th>\r
+    <td><a href="${request.route_url("server_info", id=server.server_id)}" title="Go to this server's info page">${server.name}</a></th>\r
+  </tr>\r
+% endfor\r
+</table>\r
+% endif\r
+\r
+% if servers.previous_page:\r
+<a href="${request.route_url("server_index_paged", page=servers.previous_page)}" name="Previous Page">Previous</a>\r
+% endif\r
+% if servers.next_page:\r
+<a href="${request.route_url("server_index_paged", page=servers.next_page)}" name="Next Page">Next</a>\r
+% endif\r
index c9fd80de3462a9a4fc314b30538bcd12c4ac239e..7fdf4d4436262599123b99dd33e3293640bce75c 100755 (executable)
@@ -2,5 +2,5 @@ from xonstat.views.submission import stats_submit
 from xonstat.views.player import player_index, player_info, player_game_index\r
 from xonstat.views.game import game_index, game_info\r
 from xonstat.views.map import map_info, map_index\r
-from xonstat.views.server import server_info, server_game_index\r
+from xonstat.views.server import server_info, server_game_index, server_index\r
 from xonstat.views.main import main_index\r
index 7371849ecd5502b5b3c0f5f5dabe89351ce7feb2..c9e5290411d7185c68ab4cc338b30a7f2a49e0c4 100755 (executable)
@@ -105,7 +105,7 @@ def player_info(request):
         weapon_stats = None\r
         game_stats = None\r
         recent_games = None\r
-        raise e\r
+\r
     return {'player':player, \r
             'recent_games':recent_games,\r
             'weapon_stats':weapon_stats,\r
index 1df6f248cacd7f643be8a385336fb6ec859f376e..e0dce91cf1bdde8e47b9c93c835b47a7e415d045 100755 (executable)
@@ -9,6 +9,27 @@ from xonstat.util import page_url
 \r
 log = logging.getLogger(__name__)\r
 \r
+def server_index(request):\r
+    """\r
+    Provides a list of all the current servers. \r
+    """\r
+    if 'page' in request.matchdict:\r
+        current_page = request.matchdict['page']\r
+    else:\r
+        current_page = 1\r
+\r
+    try:\r
+        server_q = DBSession.query(Server).\\r
+                order_by(Server.name)\r
+\r
+        servers = Page(server_q, current_page, url=page_url)\r
+\r
+        \r
+    except Exception as e:\r
+        servers = None\r
+\r
+    return {'servers':servers, }\r
+\r
 \r
 def server_info(request):\r
     """\r