From a375047d1c9b0c5cde06329e6459a2a0d1e95196 Mon Sep 17 00:00:00 2001 From: Ant Zucaro Date: Sat, 10 Mar 2012 08:00:18 -0500 Subject: [PATCH] Show player elo on the player info page. --- xonstat/templates/player_info.mako | 20 ++++++++++++++------ xonstat/views/player.py | 18 +++++++++++++++++- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/xonstat/templates/player_info.mako b/xonstat/templates/player_info.mako index 528e736..befb2d3 100755 --- a/xonstat/templates/player_info.mako +++ b/xonstat/templates/player_info.mako @@ -17,14 +17,22 @@ Player Information % else:
-
+

${player.nick_html_colors()|n}

- Member Since: ${player.create_dt.strftime('%m/%d/%Y at %I:%M %p')}
- Last Seen: ${recent_games[0][1].fuzzy_date()}
- Playing Time: ${game_stats['total_alivetime']}
- Games Played: ${game_stats['total_games_played']}
- Average Rank: ${game_stats['avg_rank']}
+ Member Since: ${player.create_dt.strftime('%m/%d/%Y at %I:%M %p')}
+ Last Seen: ${recent_games[0][1].fuzzy_date()}
+ Playing Time: ${game_stats['total_alivetime']}
+ Games Played: ${game_stats['total_games_played']}
+ Average Rank: ${game_stats['avg_rank']}
+ % if elos_display is not None and len(elos_display) > 0: + Elo: + ${', '.join(elos_display)} +
+ %if '*' in ', '.join(elos_display): + *preliminary Elo + %endif + % endif

diff --git a/xonstat/views/player.py b/xonstat/views/player.py index 5e82da7..7fcfd62 100755 --- a/xonstat/views/player.py +++ b/xonstat/views/player.py @@ -53,11 +53,25 @@ def player_info(request): player_id = int(request.matchdict['id']) if player_id <= 2: player_id = -1; - + try: player = DBSession.query(Player).filter_by(player_id=player_id).\ filter(Player.active_ind == True).one() + elos = DBSession.query(PlayerElo).filter_by(player_id=player_id).\ + filter(PlayerElo.game_type_cd.in_(['ctf','duel','dm'])).\ + order_by(PlayerElo.elo.desc()).all() + + elos_display = [] + for elo in elos: + if elo.games > 32: + str = "{0} ({1})" + else: + str = "{0}* ({1})" + + elos_display.append(str.format(round(elo.elo, 3), + elo.game_type_cd)) + weapon_stats = DBSession.query("descr", "weapon_cd", "actual_total", "max_total", "hit_total", "fired_total", "frags_total").\ from_statement( @@ -118,11 +132,13 @@ def player_info(request): except Exception as e: player = None + elos_display = None weapon_stats = None game_stats = None recent_games = None return {'player':player, + 'elos_display':elos_display, 'recent_games':recent_games, 'weapon_stats':weapon_stats, 'game_stats':game_stats} -- 2.39.2