]> de.git.xonotic.org Git - xonotic/xonstat.git/blobdiff - xonstat/views/helpers.py
fastest_cap -> fastest
[xonotic/xonstat.git] / xonstat / views / helpers.py
index 01ef1431387a24b31718afea01db9d7343193bec..3e09e08db265bec6c254e7c836c56e456fe6a6fa 100644 (file)
@@ -16,7 +16,7 @@ class RecentGame(object):
     The constructor takes a query row that has been fetched, and
     it requires the following columns to be present in the row:
 
-        game_id, game_type_cd, winner, create_dt, server_id, server_name,
+        game_id, game_type_cd, winner, start_dt, server_id, server_name,
         map_id, map_name, player_id, nick, rank, team
 
     The following columns are optional:
@@ -30,9 +30,9 @@ class RecentGame(object):
         self.game_id = row.game_id
         self.game_type_cd = row.game_type_cd
         self.winner = row.winner
-        self.create_dt = row.create_dt
-        self.fuzzy_date = pretty_date(row.create_dt)
-        self.epoch = timegm(row.create_dt.timetuple())
+        self.start_dt = row.start_dt
+        self.fuzzy_date = pretty_date(row.start_dt)
+        self.epoch = timegm(row.start_dt.timetuple())
         self.server_id = row.server_id
         self.server_name = row.server_name
         self.map_id = row.map_id
@@ -48,6 +48,29 @@ class RecentGame(object):
         except:
             self.elo_delta = None
 
+    def _asdict(self):
+        return {
+            "game_id": self.game_id,
+            "game_type_cd": self.game_type_cd,
+            "winner": self.winner,
+            "start_dt": self.start_dt,
+            "fuzzy_dt": self.fuzzy_date,
+            "epoch": self.epoch,
+            "server_id": self.server_id,
+            "server_name": self.server_name,
+            "map_id": self.map_id,
+            "map_name": self.map_name,
+            "player_id": self.player_id,
+            "nick": self.nick,
+            "nick_html_colors": self.nick_html_colors,
+            "rank": self.rank,
+            "team": self.team,
+            "elo_delta": self.elo_delta,
+            }
+
+    def __repr__(self):
+        return "<RecentGame(id=%s, gametype=%s, server=%s, map=%s)>" % (self.game_id, self.game_type_cd, self.server_name, self.map_name)
+
 
 def recent_games_q(server_id=None, map_id=None, player_id=None, cutoff=None):
     '''
@@ -60,7 +83,7 @@ def recent_games_q(server_id=None, map_id=None, player_id=None, cutoff=None):
     cutoff (which is a datetime object) will be returned.
     '''
     recent_games_q = DBSession.query(Game.game_id, Game.game_type_cd,
-            Game.winner, Game.create_dt, Server.server_id,
+            Game.winner, Game.start_dt, Server.server_id,
             Server.name.label('server_name'), Map.map_id,
             Map.name.label('map_name'), PlayerGameStat.player_id,
             PlayerGameStat.nick, PlayerGameStat.rank, PlayerGameStat.team,
@@ -68,7 +91,7 @@ def recent_games_q(server_id=None, map_id=None, player_id=None, cutoff=None):
             filter(Game.server_id==Server.server_id).\
             filter(Game.map_id==Map.map_id).\
             filter(Game.game_id==PlayerGameStat.game_id).\
-            order_by(expr.desc(Game.create_dt))
+            order_by(expr.desc(Game.game_id))
 
     # the various filters provided get tacked on to the query
     if server_id is not None: