From: Ant Zucaro Date: Thu, 19 May 2011 01:41:17 +0000 (-0400) Subject: Add server index view and change corresponding templates to reference it. X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=397b7954ac9364b33a3b92db301894264a89d2e4;p=xonotic%2Fxonstat.git Add server index view and change corresponding templates to reference it. --- diff --git a/xonstat/__init__.py b/xonstat/__init__.py index 3da1fcf..80f06ae 100755 --- a/xonstat/__init__.py +++ b/xonstat/__init__.py @@ -37,6 +37,10 @@ def main(global_config, **settings): config.add_route(name="game_info", pattern="/game/{id:\d+}", view=game_info, renderer='game_info.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') + config.add_route(name="server_info", pattern="/server/{id:\d+}", view=server_info, renderer='server_info.mako') diff --git a/xonstat/templates/server_game_index.mako b/xonstat/templates/server_game_index.mako new file mode 100644 index 0000000..fdf58b6 --- /dev/null +++ b/xonstat/templates/server_game_index.mako @@ -0,0 +1,24 @@ +<%inherit file="base.mako"/> + +<%block name="title"> +Server Game Index for ${server.name} - ${parent.title()} + + +% if not games: +

Sorry, no games yet. Get playing on the server!

+ +% else: +

Games on ${server.name}

+ +% endif + +% if games.previous_page: +Previous +% endif +% if games.next_page: +Next +% endif diff --git a/xonstat/templates/server_info.mako b/xonstat/templates/server_info.mako index 8020ecc..27443bf 100755 --- a/xonstat/templates/server_info.mako +++ b/xonstat/templates/server_info.mako @@ -26,6 +26,6 @@ ${parent.title()}
  • ${map.name} (game #${game.game_id})
  • % endfor -More games played on ${server.name}... +More games played on ${server.name}... % endif % endif diff --git a/xonstat/views.py b/xonstat/views.py index 5850025..2f0d531 100755 --- a/xonstat/views.py +++ b/xonstat/views.py @@ -138,6 +138,34 @@ def server_info(request): 'recent_games':recent_games} +def server_game_index(request): + server_id = request.matchdict['server_id'] + current_page = request.matchdict['page'] + + try: + server = DBSession.query(Server).filter_by(server_id=server_id).one() + + games_q = 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()) + + games = Page(games_q, current_page, url=page_url) + + log.debug("Server is:") + log.debug(server) + log.debug("Games is:") + log.debug(games) + except Exception as e: + server = None + games = None + raise e + + return {'games':games, + 'server':server} + + ########################################################################## # This is the map views area - only views pertaining to Xonotic # maps and their related information goes here