]> de.git.xonotic.org Git - xonotic/xonstat.git/commitdiff
Make percentile a field and show it in the player_info view.
authorAnt Zucaro <azucaro@gmail.com>
Fri, 28 Sep 2012 02:51:26 +0000 (22:51 -0400)
committerAnt Zucaro <azucaro@gmail.com>
Fri, 28 Sep 2012 02:51:26 +0000 (22:51 -0400)
xonstat/templates/player_info.mako
xonstat/views/player.py

index 4e42ff1e720e6df516724d91ea64719616e3ea3d..ecdc4babfcbf3f8194a17853eab172f9936bcabb 100644 (file)
@@ -243,10 +243,10 @@ Player Information
 
             % if g.game_type_cd in ranks:
               % if g.game_type_cd == 'overall':
-              Best Rank: <small>${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (${ranks[g.game_type_cd].game_type_cd})<br /></small>
+              Best Rank: <small>${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (${ranks[g.game_type_cd].game_type_cd}, percentile: ${round(ranks[g.game_type_cd].percentile,2)})<br /></small>
 
               % else:
-              Rank: <small>${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} <br /></small>
+              Rank: <small>${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (percentile: ${round(ranks[g.game_type_cd].percentile,2)})<br /></small>
               % endif
             % endif
 
index a03ab6c7f94bb777dbcc2057635c2a38e3a3985c..79ff34b3cbd4b1c19b8d867d6767788f5ac019a8 100644 (file)
@@ -326,7 +326,7 @@ def get_ranks(player_id):
     The key to the dictionary is the game type code. There is also an
     "overall" game_type_cd which is the overall best rank.
     """    
-    Rank = namedtuple('Rank', ['rank', 'max_rank', 'game_type_cd'])
+    Rank = namedtuple('Rank', ['rank', 'max_rank', 'percentile', 'game_type_cd'])
 
     raw_ranks = DBSession.query("game_type_cd", "rank", "max_rank").\
             from_statement(
@@ -345,14 +345,14 @@ def get_ranks(player_id):
     for row in raw_ranks:
         rank = Rank(rank=row.rank,
             max_rank=row.max_rank,
+            percentile=100 - 100*float(row.rank)/row.max_rank,
             game_type_cd=row.game_type_cd)
 
-        percentile = 100 - float(row.rank)/row.max_rank
 
         if not found_top_rank:
             ranks['overall'] = rank
             found_top_rank = True
-        elif percentile > 100 - float(ranks['overall'].rank)/ranks['overall'].max_rank:
+        elif rank.percentile > ranks['overall'].percentile:
             ranks['overall'] = rank
 
         ranks[row.game_type_cd] = rank