% 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
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(
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