def takeSnapshot(postVars): global couchdbServer templateVars = dict(saved = False) try: db = couchdbServer.create("snapshots") except: db = couchdbServer["snapshots"] try: snapshotName = postVars["snapshotName"].value.decode("utf-8") snapshot = Snapshot() snapshot.description = snapshotName snapshot.takeSnapshot() snapshot.store(db) except: pass templateVars['snapshots'] = [] for snapshotId in db: templateVars['snapshots'].append(Snapshot.load(db,snapshotId)) templateVars['snapshots'] = sorted(templateVars['snapshots'], reverse = True, key=lambda snapshot: snapshot["date"]) return output_template("takeSnapshot.html", templateVars)
def testSnapshots(self): server = Server() try: db = server.create("players") except: db = server["players"] bolivar = Player() bolivar.setName("Bolivar") bolivar.setPhoto("images/bolivar.jpg") bolivar.setKarma(288) bolivar.store(db) indio = Player() indio.setName("Indio") indio.setPhoto("images/indio.jpg") indio.setKarma(388) indio.store(db) ss = Snapshot() ss.description = "Teste de snapshot" self.assertEqual(ss.takeSnapshot(), True), "Error taking snapshot" try: server.delete("snapshots") except: pass try: db = server.create("snapshots") except: db = server["snapshots"] ss.store(db) ss = Snapshot.load(db,ss.id) server.delete(ss.name) server.delete("snapshots")
def viewRanking(postVars): global couchdbServer players = [] try: db = couchdbServer.create("players") except: db = couchdbServer["players"] for playerId in db: players.append(Player.load(db,playerId)) sortedPlayers = sorted(players, reverse=True, key=lambda player: player.karma) playersNames = [] playersKarmas = [] for player in sortedPlayers: playersKarmas.append(str(player.karma)) playersNames.append("\"%s\"" % player.name) try: db = couchdbServer.create("snapshots") except: db = couchdbServer["snapshots"] snapshots = [] lastOpponent = None for snapshotId in db: snapshot = Snapshot.load(db,snapshotId) snapData = {} snapData["decription"] = snapshot.description snapData["opponent"] = snapshot.game.opponent snapData["idx"] = "%d%d%d%d%d%d" % (snapshot.date.year, snapshot.date.month, snapshot.date.day, snapshot.date.hour, snapshot.date.minute, snapshot.date.second ) snapshotLabel = "%d/%d/%d" % (snapshot.date.day, snapshot.date.month, snapshot.date.year ) if snapshot.game.opponent != lastOpponent: lastOpponent = snapshot.game.opponent snapshotLabel = "%s %s" % (snapshot.game.opponent, snapshotLabel) snapData["label"] = snapshotLabel snapData["players"] = {} for player in snapshot.players: snapData["players"][player.name]= player.karma snapshots.append(snapData) sortedSnapshots = sorted(snapshots, key=lambda snapshot: snapshot["idx"]) templateVars = {} templateVars["playersKarmas"] = ",".join(playersKarmas) templateVars["playersNames"] = ",".join(playersNames) templateVars["jsonSnapshots"] = json.dumps(sortedSnapshots) return output_template("viewRanking.html", templateVars)