From 2e96bc5fea7cfccb4079fd582b32e2050430a187 Mon Sep 17 00:00:00 2001 From: "Jan D. Behrens" Date: Sat, 4 Aug 2012 16:08:42 +0200 Subject: [PATCH] Improved "favorite weapon" feature to actually work, and to show more than one weapon The fav_weapon field now holds all the recently used weapons; the number of shown weapons can be set in the .mako file. --- xonstat/templates/player_info.mako | 2 +- xonstat/views/player.py | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/xonstat/templates/player_info.mako b/xonstat/templates/player_info.mako index 7247cd6..c16afb6 100644 --- a/xonstat/templates/player_info.mako +++ b/xonstat/templates/player_info.mako @@ -197,7 +197,7 @@ Player Information % endif % if fav_weapon is not None: - Favorite Weapon: ${fav_weapon['name']}
+ Favorite Weapons: ${", ".join([wpn['name'] for wpn in fav_weapon[:2]])}
% endif

diff --git a/xonstat/views/player.py b/xonstat/views/player.py index 571d77a..b751299 100644 --- a/xonstat/views/player.py +++ b/xonstat/views/player.py @@ -148,7 +148,8 @@ def _get_fav_weapon(player_id): as the weapon that he or she has employed the most in the past 90 days. - Returns a dictionary with keys for the weapon's name and id. + Returns a sequence of dictionaries with keys for the weapon's name and id. + The sequence holds the most-used weapons in decreasing order. """ # 90 day window back_then = datetime.datetime.utcnow() - datetime.timedelta(days=90) @@ -160,14 +161,14 @@ def _get_fav_weapon(player_id): filter(PlayerGameStat.create_dt > back_then).\ group_by(Weapon.descr, Weapon.weapon_cd).\ order_by(func.count().desc()).\ - one() - #limit(1).one() - - print player_id, raw_fav_weapon - - fav_weapon = {} - fav_weapon['name'] = raw_fav_weapon[0] - fav_weapon['id'] = raw_fav_weapon[1] + all() + + fav_weapon = [] + for wpn in raw_fav_weapon: + entry = {} + entry['name'] = wpn[0] + entry['id'] = wpn[1] + fav_weapon.append(entry) return fav_weapon -- 2.39.2