From 0912417f938a8c00bce2c0ee99d24104216716ff Mon Sep 17 00:00:00 2001 From: "Jan D. Behrens" Date: Sun, 5 Aug 2012 17:54:00 +0200 Subject: [PATCH] Fixed some bugs in the latest commits (e.g. DB queries, website layout) --- xonstat/templates/player_info.mako | 18 +++++++-------- xonstat/views/player.py | 35 ++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 18 deletions(-) diff --git a/xonstat/templates/player_info.mako b/xonstat/templates/player_info.mako index d86ceb5..4e44f3f 100644 --- a/xonstat/templates/player_info.mako +++ b/xonstat/templates/player_info.mako @@ -190,8 +190,8 @@ Player Information Last Seen: ${recent_games[0][1].fuzzy_date()}
% if fav_server is not None: - Favorite Server: - <% srv_list = fav_server[:1] %> + Favorite Servers: + <% srv_list = fav_server[:3] %> % for srvinfo in srv_list: % if srvinfo != srv_list[-1]: <% delim = ", " %> @@ -234,18 +234,18 @@ Player Information

- Playing Time: ${total_stats['alivetime']} hours - % if total_stats['alivetime'] > total_stats['alivetime_month']: - % if total_stats['alivetime_month'] > total_stats['alivetime_week']: - (${total_stats['alivetime_month']} hours this month; ${total_stats['alivetime_week']} hours this week) + Playing Time: ${total_stats['alivetime']} + % if total_stats['alivetime_month'] and total_stats['alivetime'] > total_stats['alivetime_month']: + % if total_stats['alivetime_week'] and total_stats['alivetime_month'] > total_stats['alivetime_week']: +
(${total_stats['alivetime_month']} this month; ${total_stats['alivetime_week']} this week) % else: - (${total_stats['alivetime_month']} hours this month) +
(${total_stats['alivetime_month']} this month) % endif % endif

<% games_breakdown_str = ', '.join(["{0} {1}".format(ng, gt) for (gt, ng) in total_stats['games_breakdown'].items()]) %> - Games Played: ${total_stats['games']} (${games_breakdown_str})
+ Games Played: ${total_stats['games']}
(${games_breakdown_str})

% if total_stats['games'] > 0 and total_stats['wins'] is not None: Win Percentage: ${round(float(total_stats['wins'])/total_stats['games'] * 100, 2)}% (${total_stats['wins']} wins, ${total_stats['games'] - total_stats['wins']} losses)
@@ -259,7 +259,7 @@ Player Information

-
+

% if total_stats['games_breakdown'].has_key('duel'): Duel Stats: diff --git a/xonstat/views/player.py b/xonstat/views/player.py index 7491902..6185598 100644 --- a/xonstat/views/player.py +++ b/xonstat/views/player.py @@ -141,7 +141,7 @@ def _get_total_stats(player_id): filter(PlayerGameStat.player_id == player_id).\ filter(Game.winner == PlayerGameStat.team or PlayerGameStat.rank == 1).\ one() - + (total_stats['duel_wins'],) = DBSession.query( func.count("*")).\ filter(Game.game_id == PlayerGameStat.game_id).\ @@ -162,7 +162,7 @@ def _get_total_stats(player_id): (total_stats['dm_wins'],) = DBSession.query( func.count("*")).\ filter(Game.game_id == PlayerGameStat.game_id).\ - filter(Game.game_type_cd == "dm" or Game.game_type_cd == "tdm").\ + filter(Game.game_type_cd == "dm").\ filter(PlayerGameStat.player_id == player_id).\ filter(PlayerGameStat.rank == 1).\ one() @@ -172,10 +172,27 @@ def _get_total_stats(player_id): func.sum(PlayerGameStat.deaths), func.sum(PlayerGameStat.suicides)).\ filter(Game.game_id == PlayerGameStat.game_id).\ - filter(Game.game_type_cd == "dm" or Game.game_type_cd == "tdm").\ + filter(Game.game_type_cd == "dm").\ filter(PlayerGameStat.player_id == player_id).\ one() + (total_stats['tdm_kills'], total_stats['tdm_deaths'], total_stats['tdm_suicides'],) = DBSession.query( + func.sum(PlayerGameStat.kills), + func.sum(PlayerGameStat.deaths), + func.sum(PlayerGameStat.suicides)).\ + filter(Game.game_id == PlayerGameStat.game_id).\ + filter(Game.game_type_cd == "tdm").\ + filter(PlayerGameStat.player_id == player_id).\ + one() + + (total_stats['tdm_wins'],) = DBSession.query( + func.count("*")).\ + filter(Game.game_id == PlayerGameStat.game_id).\ + filter(Game.game_type_cd == "tdm").\ + filter(PlayerGameStat.player_id == player_id).\ + filter(PlayerGameStat.rank == 1).\ + one() + (total_stats['ctf_wins'],) = DBSession.query( func.count("*")).\ filter(Game.game_id == PlayerGameStat.game_id).\ @@ -221,7 +238,7 @@ def _get_fav_map(player_id): filter(PlayerGameStat.create_dt > back_then).\ group_by(Map.name, Map.map_id).\ order_by(func.count().desc()).\ - all() + limit(5).all() fav_map = [] for map_e in raw_fav_map: @@ -246,13 +263,13 @@ def _get_fav_weapon(player_id): back_then = datetime.datetime.utcnow() - datetime.timedelta(days=90) raw_fav_weapon = DBSession.query(Weapon.descr, Weapon.weapon_cd).\ - filter(Game.game_id == PlayerGameStat.game_id).\ + filter(Game.game_id == PlayerWeaponStat.game_id).\ + filter(PlayerWeaponStat.player_id == player_id).\ filter(PlayerWeaponStat.weapon_cd == Weapon.weapon_cd).\ - filter(PlayerGameStat.player_id == player_id).\ - filter(PlayerGameStat.create_dt > back_then).\ + filter(PlayerWeaponStat.create_dt > back_then).\ group_by(Weapon.descr, Weapon.weapon_cd).\ order_by(func.count().desc()).\ - all() + limit(5).all() fav_weapon = [] for wpn_e in raw_fav_weapon: @@ -283,7 +300,7 @@ def _get_fav_server(player_id): filter(PlayerGameStat.create_dt > back_then).\ group_by(Server.name, Server.server_id).\ order_by(func.count().desc()).\ - all() + limit(5).all() fav_server = [] for srv_e in raw_fav_server: -- 2.39.2