]> de.git.xonotic.org Git - xonotic/xonstat.git/commitdiff
Add a player index. Change the base template to have a players link.
authorAnt Zucaro <azucaro@gmail.com>
Fri, 24 Jun 2011 20:04:51 +0000 (16:04 -0400)
committerAnt Zucaro <azucaro@gmail.com>
Fri, 24 Jun 2011 20:04:51 +0000 (16:04 -0400)
xonstat/__init__.py
xonstat/templates/base.mako [changed mode: 0644->0755]
xonstat/templates/player_index.mako [new file with mode: 0755]
xonstat/views/player.py

index 386fd0a8a49827dd2f4a39888aeff221bdd6fc85..fa91e50a5f872eb411e38f4b6d2b06ed5192cca4 100755 (executable)
@@ -34,6 +34,13 @@ def main(global_config, **settings):
             pattern="/player/{player_id:\d+}/games/page/{page:\d+}", 
             view=player_game_index, renderer='player_game_index.mako') 
 
+    config.add_route(name="player_index_paged", 
+            pattern="/players/page/{page:\d+}", view=player_index, 
+            renderer='player_index.mako') 
+
+    config.add_route(name="player_index", pattern="/players", view=player_index, 
+            renderer='player_index.mako') 
+
     config.add_route(name="player_info", pattern="/player/{id:\d+}", view=player_info, 
             renderer='player_info.mako') 
 
old mode 100644 (file)
new mode 100755 (executable)
index 5f96eb8..76b6dc0
@@ -16,6 +16,7 @@
             <h3>Player Statistics for Xonotic</h3>
             </%block>
             <ul id="nav">
+                <li><a href="/players" title="Player Index">players</a></li>
                 <li><a href="/games" title="Game Index">games</a></li>
                 <li><a href="" title="Map Index">maps</a></li>
                 <li><a href="" title="Server Index">servers</a></li>
diff --git a/xonstat/templates/player_index.mako b/xonstat/templates/player_index.mako
new file mode 100755 (executable)
index 0000000..d5f12e1
--- /dev/null
@@ -0,0 +1,33 @@
+<%inherit file="base.mako"/>\r
+\r
+<%block name="title">\r
+Player Index - ${parent.title()}\r
+</%block>\r
+\r
+% if not players:\r
+<h2>Sorry, no players yet. Get playing!</h2>\r
+\r
+% else:\r
+<h2>Player Index</h2>\r
+<table border="1">\r
+  <tr>\r
+    <th>#</th>\r
+    <th>Nick</th>\r
+    <th>Joined</th>\r
+  </tr>\r
+% for player in players:\r
+  <tr>\r
+    <td>${player.player_id}</th>\r
+    <td>${player.nick_html_colors()}</th>\r
+    <td>${player.create_dt.strftime('%m/%d/%Y at %H:%M')}</th>\r
+  </tr>\r
+% endfor\r
+</table>\r
+% endif\r
+\r
+% if players.previous_page:\r
+<a href="${request.route_url("player_index_paged", page=players.previous_page)}" name="Previous Page">Previous</a>\r
+% endif\r
+% if players.next_page:\r
+<a href="${request.route_url("player_index_paged", page=players.next_page)}" name="Next Page">Next</a>\r
+% endif\r
index 8f8b4d6eb67c28ac8e656e742cf180e3dfb9a136..7371849ecd5502b5b3c0f5f5dabe89351ce7feb2 100755 (executable)
@@ -15,9 +15,24 @@ def player_index(request):
     """\r
     Provides a list of all the current players. \r
     """\r
-    players = DBSession.query(Player)\r
+    if 'page' in request.matchdict:\r
+        current_page = request.matchdict['page']\r
+    else:\r
+        current_page = 1\r
+\r
+    try:\r
+        player_q = DBSession.query(Player).\\r
+                filter(Player.player_id > 2).\\r
+                order_by(Player.player_id)\r
+\r
+        players = Page(player_q, current_page, url=page_url)\r
+\r
+        \r
+    except Exception as e:\r
+        players = None\r
+\r
+    return {'players':players, }\r
 \r
-    return {'players':players}\r
 \r
 def player_info(request):\r
     """\r