From 0001da172bbfa102abbdea56a8d5617278ddcb94 Mon Sep 17 00:00:00 2001 From: Ant Zucaro Date: Thu, 27 Sep 2012 22:51:26 -0400 Subject: [PATCH] Make percentile a field and show it in the player_info view. --- xonstat/templates/player_info.mako | 4 ++-- xonstat/views/player.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/xonstat/templates/player_info.mako b/xonstat/templates/player_info.mako index 4e42ff1..ecdc4ba 100644 --- a/xonstat/templates/player_info.mako +++ b/xonstat/templates/player_info.mako @@ -243,10 +243,10 @@ Player Information % if g.game_type_cd in ranks: % if g.game_type_cd == 'overall': - Best Rank: ${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (${ranks[g.game_type_cd].game_type_cd})
+ Best Rank: ${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)})
% else: - Rank: ${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank}
+ Rank: ${ranks[g.game_type_cd].rank} of ${ranks[g.game_type_cd].max_rank} (percentile: ${round(ranks[g.game_type_cd].percentile,2)})
% endif % endif diff --git a/xonstat/views/player.py b/xonstat/views/player.py index a03ab6c..79ff34b 100644 --- a/xonstat/views/player.py +++ b/xonstat/views/player.py @@ -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 -- 2.39.2