From 78f7ce51137542307e8cf56bf9bf080f7020b5a1 Mon Sep 17 00:00:00 2001 From: "Jan D. Behrens" Date: Tue, 28 Aug 2012 00:16:18 +0200 Subject: [PATCH] Fixed bug in "wins" query --- xonstat/batch/badges/gen_badges.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/xonstat/batch/badges/gen_badges.py b/xonstat/batch/badges/gen_badges.py index 6ff1639..905200d 100644 --- a/xonstat/batch/badges/gen_badges.py +++ b/xonstat/batch/badges/gen_badges.py @@ -117,12 +117,22 @@ def get_data(player): filter(PlayerGameStat.player_id == player_id).\ one() - (total_stats['wins'],) = DBSession.query( - func.count("*")).\ - filter(Game.game_id == PlayerGameStat.game_id).\ - filter(PlayerGameStat.player_id == player_id).\ - filter(Game.winner == PlayerGameStat.team or PlayerGameStat.rank == 1).\ - one() +# (total_stats['wins'],) = DBSession.query( +# func.count("*")).\ +# filter(Game.game_id == PlayerGameStat.game_id).\ +# filter(PlayerGameStat.player_id == player_id).\ +# filter(Game.winner == PlayerGameStat.team or PlayerGameStat.rank == 1).\ +# one() + + (total_stats['wins'],) = DBSession.\ + query("total_wins").\ + from_statement( + "select count(*) total_wins " + "from games g, player_game_stats pgs " + "where g.game_id = pgs.game_id " + "and player_id=:player_id " + "and (g.winner = pgs.team or pgs.rank = 1)" + ).params(player_id=player_id).one() ranks = DBSession.query("game_type_cd", "rank", "max_rank").\ from_statement( -- 2.39.2