4 from pyramid.response import Response
\r
5 from sqlalchemy import desc
\r
6 from webhelpers.paginate import Page, PageURL
\r
7 from xonstat.models import *
\r
8 from xonstat.util import page_url
\r
10 log = logging.getLogger(__name__)
\r
12 def server_index(request):
\r
14 Provides a list of all the current servers.
\r
16 if 'page' in request.matchdict:
\r
17 current_page = request.matchdict['page']
\r
22 server_q = DBSession.query(Server).\
\r
23 order_by(Server.name)
\r
25 servers = Page(server_q, current_page, url=page_url)
\r
28 except Exception as e:
\r
31 return {'servers':servers, }
\r
34 def server_info(request):
\r
36 List the stored information about a given server.
\r
38 server_id = request.matchdict['id']
\r
40 server = DBSession.query(Server).filter_by(server_id=server_id).one()
\r
41 recent_games = DBSession.query(Game, Server, Map).\
\r
42 filter(Game.server_id == server_id).\
\r
43 filter(Game.server_id == Server.server_id).\
\r
44 filter(Game.map_id == Map.map_id).\
\r
45 order_by(Game.game_id.desc())[0:10]
\r
47 except Exception as e:
\r
50 return {'server':server,
\r
51 'recent_games':recent_games}
\r
54 def server_game_index(request):
\r
56 List the games played on a given server. Paginated.
\r
58 server_id = request.matchdict['server_id']
\r
59 current_page = request.matchdict['page']
\r
62 server = DBSession.query(Server).filter_by(server_id=server_id).one()
\r
64 games_q = DBSession.query(Game, Server, Map).\
\r
65 filter(Game.server_id == server_id).\
\r
66 filter(Game.server_id == Server.server_id).\
\r
67 filter(Game.map_id == Map.map_id).\
\r
68 order_by(Game.game_id.desc())
\r
70 games = Page(games_q, current_page, url=page_url)
\r
71 except Exception as e:
\r
76 return {'games':games,
\r