From 3dc76513a9e1f9547f83e9eace9174d92ba34122 Mon Sep 17 00:00:00 2001 From: Ant Zucaro Date: Fri, 24 Jun 2011 16:20:23 -0400 Subject: [PATCH] Create a map index view and corresponding template. --- xonstat/__init__.py | 7 +++++++ xonstat/templates/base.mako | 2 +- xonstat/templates/map_index.mako | 31 +++++++++++++++++++++++++++++++ xonstat/views/__init__.py | 2 +- xonstat/views/map.py | 21 +++++++++++++++++++++ 5 files changed, 61 insertions(+), 2 deletions(-) create mode 100755 xonstat/templates/map_index.mako diff --git a/xonstat/__init__.py b/xonstat/__init__.py index fa91e50..0633753 100755 --- a/xonstat/__init__.py +++ b/xonstat/__init__.py @@ -63,6 +63,13 @@ def main(global_config, **settings): renderer='server_info.mako') # MAP ROUTES + config.add_route(name="map_index_paged", + pattern="/maps/page/{page:\d+}", view=map_index, + renderer='map_index.mako') + + config.add_route(name="map_index", pattern="/maps", view=map_index, + renderer='map_index.mako') + config.add_route(name="map_info", pattern="/map/{id:\d+}", view=map_info, renderer='map_info.mako') diff --git a/xonstat/templates/base.mako b/xonstat/templates/base.mako index 76b6dc0..812ec31 100755 --- a/xonstat/templates/base.mako +++ b/xonstat/templates/base.mako @@ -18,7 +18,7 @@ diff --git a/xonstat/templates/map_index.mako b/xonstat/templates/map_index.mako new file mode 100755 index 0000000..ad47b60 --- /dev/null +++ b/xonstat/templates/map_index.mako @@ -0,0 +1,31 @@ +<%inherit file="base.mako"/> + +<%block name="title"> +Map Index - ${parent.title()} + + +% if not maps: +

Sorry, no maps yet. Get playing!

+ +% else: +

Map Index

+ + + + + +% for map in maps: + + +% endfor +
#Name
${map.map_id} + ${map.name} +
+% endif + +% if maps.previous_page: +Previous +% endif +% if maps.next_page: +Next +% endif diff --git a/xonstat/views/__init__.py b/xonstat/views/__init__.py index 229b7f9..c9fd80d 100755 --- a/xonstat/views/__init__.py +++ b/xonstat/views/__init__.py @@ -1,6 +1,6 @@ from xonstat.views.submission import stats_submit from xonstat.views.player import player_index, player_info, player_game_index from xonstat.views.game import game_index, game_info -from xonstat.views.map import map_info +from xonstat.views.map import map_info, map_index from xonstat.views.server import server_info, server_game_index from xonstat.views.main import main_index diff --git a/xonstat/views/map.py b/xonstat/views/map.py index 358dc5f..aca27d6 100755 --- a/xonstat/views/map.py +++ b/xonstat/views/map.py @@ -6,6 +6,27 @@ from xonstat.util import page_url log = logging.getLogger(__name__) +def map_index(request): + """ + Provides a list of all the current maps. + """ + if 'page' in request.matchdict: + current_page = request.matchdict['page'] + else: + current_page = 1 + + try: + map_q = DBSession.query(Map).\ + order_by(Map.name) + + maps = Page(map_q, current_page, url=page_url) + + + except Exception as e: + maps = None + + return {'maps':maps, } + def map_info(request): """ -- 2.39.2