]> de.git.xonotic.org Git - xonotic/xonstat.git/commitdiff
Simplify query (again) for server_info view and template. Avoid from_statement syntax.
authorAnt Zucaro <azucaro@gmail.com>
Thu, 19 May 2011 01:05:43 +0000 (21:05 -0400)
committerAnt Zucaro <azucaro@gmail.com>
Thu, 19 May 2011 01:05:43 +0000 (21:05 -0400)
xonstat/templates/server_info.mako
xonstat/views.py

index 5175d1c982d74adb42c3e878c79a994081f552d2..8020ecc762454aab5f46195a06ab2df9bad0984a 100755 (executable)
@@ -22,8 +22,8 @@ ${parent.title()}
 % if recent_games:
 <h2>Recent Games</h2>
 <ul>
-% for (game_id, server_id, server_name, map_id, map_name) in recent_games:
-   <li><a href="${request.route_url("map_info", id=map_id)}" name="Map info page for ${map_name}">${map_name}</a> (game <a href="${request.route_url("game_info", id=game_id)}" name="Game info page for game #${game_id}">#${game_id}</a>)</li>
+% for (game, theserver, map) in recent_games:
+   <li><a href="${request.route_url("map_info", id=map.map_id)}" name="Map info page for ${map.name}">${map.name}</a> (game <a href="${request.route_url("game_info", id=game.game_id)}" name="Game info page for game #${game.game_id}">#${game.game_id}</a>)</li>
 % endfor
 </ul>
 More games played on ${server.name}...
index b85aaab8a6d2c74dd8050796943ec72894cecf2b..91ef2ebab71ca8c81f76188e1e63d8734871ad89 100755 (executable)
@@ -125,17 +125,23 @@ def server_info(request):
     server_id = request.matchdict['id']
     try:
         server = DBSession.query(Server).filter_by(server_id=server_id).one()
-        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 games g, servers s, maps m "
-                "where g.server_id=:server_id "
-                "and g.server_id = s.server_id "
-                "and g.map_id = m.map_id "
-                "order by g.start_dt desc "
-                "limit 10 offset 1").\
-                 params(server_id=server_id).all()
+        recent_games = DBSession.query(Game, Server, Map).\
+                filter(Game.server_id == server_id).\
+                filter(Game.server_id == Server.server_id).\
+                filter(Game.map_id == Map.map_id).\
+                order_by(Game.game_id.desc())[0:10]
+
+        #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 games g, servers s, maps m "
+                #"where g.server_id=:server_id "
+                #"and g.server_id = s.server_id "
+                #"and g.map_id = m.map_id "
+                #"order by g.start_dt desc "
+                #"limit 10 offset 1").\
+                 #params(server_id=server_id).all()
 
     except Exception as e:
         server = None