From 0058dc23f5248324dc537016389e6651427975fe Mon Sep 17 00:00:00 2001 From: Ant Zucaro Date: Mon, 6 Jun 2011 14:08:27 -0400 Subject: [PATCH] Start work on main page. Only top players passed right now. --- xonstat/__init__.py | 4 ++-- xonstat/templates/main_index.mako | 25 +++++++++++++++++++++++++ xonstat/views/__init__.py | 1 + xonstat/views/main.py | 16 ++++++++++++++++ 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100755 xonstat/templates/main_index.mako create mode 100755 xonstat/views/main.py diff --git a/xonstat/__init__.py b/xonstat/__init__.py index 2dde41a..386fd0a 100755 --- a/xonstat/__init__.py +++ b/xonstat/__init__.py @@ -22,8 +22,8 @@ def main(global_config, **settings): config.add_static_view('static', 'xonstat:static') # ROOT ROUTE - config.add_route(name="main_index", pattern="/", view=game_index, - renderer='game_index.mako') + config.add_route(name="main_index", pattern="/", view=main_index, + renderer='main_index.mako') # PLAYER ROUTES config.add_route(name="player_game_index_default", diff --git a/xonstat/templates/main_index.mako b/xonstat/templates/main_index.mako new file mode 100755 index 0000000..0b03aed --- /dev/null +++ b/xonstat/templates/main_index.mako @@ -0,0 +1,25 @@ +<%inherit file="base.mako"/> + +<%block name="title"> +Main Page - ${parent.title()} + + + + + + + +% for (player_id, nick, score) in top_players: + + + + +% endfor + +% for i in range(10 - len(top_players)): + + + + +% endfor +
NickScore
${nick}${score}
--
diff --git a/xonstat/views/__init__.py b/xonstat/views/__init__.py index 62b0be5..229b7f9 100755 --- a/xonstat/views/__init__.py +++ b/xonstat/views/__init__.py @@ -3,3 +3,4 @@ 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.server import server_info, server_game_index +from xonstat.views.main import main_index diff --git a/xonstat/views/main.py b/xonstat/views/main.py new file mode 100755 index 0000000..33f0b3d --- /dev/null +++ b/xonstat/views/main.py @@ -0,0 +1,16 @@ +import logging +import sqlalchemy.sql.functions as func +from pyramid.response import Response +from xonstat.models import * + +log = logging.getLogger(__name__) + +def main_index(request): + top_players = DBSession.query(Player.player_id, Player.nick, func.sum(PlayerGameStat.score)).\ + filter(Player.player_id == PlayerGameStat.player_id).\ + filter(Player.player_id > 2).\ + order_by(func.sum(PlayerGameStat.score)).\ + group_by(Player.nick).\ + group_by(Player.player_id).all()[0:10] + + return {'top_players':top_players} -- 2.39.2