]> de.git.xonotic.org Git - xonotic/xonstat.git/commitdiff
Fixed bug in "wins" query
authorJan D. Behrens <zykure@web.de>
Mon, 27 Aug 2012 22:16:18 +0000 (00:16 +0200)
committerJan D. Behrens <zykure@web.de>
Mon, 27 Aug 2012 22:16:18 +0000 (00:16 +0200)
xonstat/batch/badges/gen_badges.py

index 6ff16396599a5db80bdfa201e27cf0c0ef21ab97..905200d67b05b7315d9b055210eb79150f19c168 100644 (file)
@@ -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(