From e9efaeed8821c757bdcd3d9631ebac468ab68339 Mon Sep 17 00:00:00 2001 From: Ant Zucaro Date: Sat, 21 May 2011 08:19:22 -0400 Subject: [PATCH] Add basic display of player weapon stats. --- xonstat/__init__.py | 4 +++ xonstat/templates/player_weapon_stats.mako | 35 ++++++++++++++++++++++ xonstat/views.py | 15 ++++++++++ 3 files changed, 54 insertions(+) create mode 100644 xonstat/templates/player_weapon_stats.mako diff --git a/xonstat/__init__.py b/xonstat/__init__.py index d317443..7039327 100755 --- a/xonstat/__init__.py +++ b/xonstat/__init__.py @@ -26,6 +26,10 @@ def main(global_config, **settings): renderer='game_index.mako') # PLAYER ROUTES + config.add_route(name="player_weapon_stats", + pattern="/game/{game_id:\d+}/stats/{pgstat_id:\d+}", + view=player_weapon_stats, renderer='player_weapon_stats.mako') + config.add_route(name="player_game_index", pattern="/player/{player_id:\d+}/games/page/{page:\d+}", view=player_game_index, renderer='player_game_index.mako') diff --git a/xonstat/templates/player_weapon_stats.mako b/xonstat/templates/player_weapon_stats.mako new file mode 100644 index 0000000..1a499f1 --- /dev/null +++ b/xonstat/templates/player_weapon_stats.mako @@ -0,0 +1,35 @@ +<%inherit file="base.mako"/> + +<%block name="title"> +Accuracy Information - ${parent.title()} + + + +% if pwstats is None: +

Sorry, I can't find those weapon stats!

+

Assume the best, though. Really.

+ +% else: +

Player Accuracy:

+ + + + + + + + + + +% for pwstat in pwstats: + + + + + + + + +% endfor +
WeaponFiredHitPotential DamageActual DamageFrags
${pwstat.weapon_cd}${pwstat.fired}${pwstat.hit}${pwstat.max}${pwstat.actual}${pwstat.frags}
+% endif diff --git a/xonstat/views.py b/xonstat/views.py index 2643fe5..b78d97c 100755 --- a/xonstat/views.py +++ b/xonstat/views.py @@ -78,6 +78,21 @@ def player_game_index(request): 'games':games} +def player_weapon_stats(request): + game_id = request.matchdict['game_id'] + pgstat_id = request.matchdict['pgstat_id'] + try: + pwstats = DBSession.query(PlayerWeaponStat).\ + filter_by(game_id=game_id).\ + filter_by(player_game_stat_id=pgstat_id).\ + order_by(PlayerWeaponStat.weapon_cd).\ + all() + + except Exception as e: + pwstats = None + return {'pwstats':pwstats} + + ########################################################################## # This is the game views area - only views pertaining to Xonotic # games and their related information goes here -- 2.39.2