]> de.git.xonotic.org Git - xonotic/xonstat.git/blobdiff - xonstat/views/game.py
Add teamnames to teamscores, fix layout issues, fix sorting for LMS/KA
[xonotic/xonstat.git] / xonstat / views / game.py
index 70ac7e09be074b492a2deee44d4eca61e8d16761..a0f65e808ae1a4b09555ff0e4180b76efee69ca4 100644 (file)
@@ -86,10 +86,7 @@ def _game_info_data(request):
     else:
         show_elo = False
 
-    if request.params.has_key('show_latency'):
-        show_latency = True
-    else:
-        show_latency = False
+    show_latency = False
 
     try:
         notfound = False
@@ -106,17 +103,28 @@ def _game_info_data(request):
                 order_by(PlayerGameStat.score).\
                 all()
 
-        tgstats = DBSession.query(TeamGameStat).\
-                filter(TeamGameStat.game_id == game_id).\
-                order_by(TeamGameStat.score).\
-                all()
+        # if at least one player has a valid latency, we'll show the column
+        for pgstat in pgstats:
+            if pgstat.avg_latency is not None:
+                show_latency = True
+
+        q = DBSession.query(TeamGameStat).\
+                filter(TeamGameStat.game_id == game_id)
+        if game.game_type_cd == 'ctf':
+            q = q.order_by(TeamGameStat.caps.desc())
+        elif game.game_type_cd == 'ca':
+            q = q.order_by(TeamGameStat.rounds.desc())
+        # dom -> ticks, rc -> laps, nb -> goals, as -> objectives
+
+        q = q.order_by(TeamGameStat.score.desc())
+
+        tgstats = q.all()
 
         stats_by_team = OrderedDict()
         for pgstat in pgstats:
             if pgstat.team not in stats_by_team.keys():
                 stats_by_team[pgstat.team] = []
             stats_by_team[pgstat.team].append(pgstat)
-        log.debug(stats_by_team)
 
         captimes = []
         if game.game_type_cd == 'ctf':