From: Ant Zucaro Date: Wed, 15 Jun 2011 22:13:42 +0000 (-0400) Subject: Add top servers data. X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c31127de29548e4f826e7d27e774d3e33304d738;p=xonotic%2Fxonstat.git Add top servers data. --- diff --git a/xonstat/templates/main_index.mako b/xonstat/templates/main_index.mako index 0b03aed..0caccc1 100755 --- a/xonstat/templates/main_index.mako +++ b/xonstat/templates/main_index.mako @@ -23,3 +23,23 @@ Main Page - ${parent.title()} % endfor + + + + + + +% for (server_id, name, count) in top_servers: + + + + +% endfor + +% for i in range(10 - len(top_servers)): + + + + +% endfor +
ServerGames
${name}${count}
--
diff --git a/xonstat/views/main.py b/xonstat/views/main.py index 33f0b3d..2e59f3f 100755 --- a/xonstat/views/main.py +++ b/xonstat/views/main.py @@ -6,11 +6,23 @@ 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)).\ + # top players by score + 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} + # top servers by number of total players played + top_servers = DBSession.query(Server.server_id, Server.name, + func.count(Game.game_id)).\ + filter(Game.server_id==Server.server_id).\ + order_by(func.count(Game.game_id)).\ + group_by(Server.server_id).\ + group_by(Server.name).all()[0:10] + + return {'top_players':top_players, + 'top_servers':top_servers, + }