def __call__(self): session = named_scoped_session('footballchallenge') games = session.query(Game).filter(Game.calculated == False).all() for game in games: calculate_player_points(game) # calculate_team_points(game) game.calculated = True transaction.commit() return self.request.response.redirect(self.context.absolute_url())
def write_to_db(self, playing_players, yellow, second_yellow, red, goals, penalty, assists, saves): home_ids = [player.id_ for player in self.get_home_team()] home_score = 0 visitor_score = 0 session = named_scoped_session('footballchallenge') game = session.query(Game).filter(Game.id_ == self.game_id).one() if game.cards: for card in game.cards: session.delete(card) if game.goals: for goal in game.goals: session.delete(goal) if game.saves: for save in game.saves: session.delete(save) if game.assists: for assist in game.assists: session.delete(assist) if playing_players: players = [] for player_id in playing_players: player = session.query(Player).filter(Player.id_ == player_id).one() players.append(player) game.players = players if yellow: players = yellow.keys() self.write_cards(players, "yellow", game, session) if second_yellow: players = second_yellow.keys() self.write_cards(players, "second_yellow", game, session) if red: players = red.keys() self.write_cards(players, "red", game, session) for key, value in goals.items(): if not value == '': try: value_int = int(value) if long(key) in home_ids: home_score += value_int else: visitor_score += value_int except ValueError: continue for count in range(0, value_int): goal = Goal(key, game.id_, False) session.add(goal) for key, value in penalty.items(): if not value == '': try: value_int = int(value) except ValueError: continue for count in range(0, value_int): goal = Goal(key, game.id_, True) session.add(goal) for key, value in assists.items(): if not value == '': try: value_int = int(value) except ValueError: continue for count in range(0, value_int): assist = Assist(key, game.id_) session.add(assist) game.score_nation1 = home_score game.score_nation2 = visitor_score for key, value in saves.items(): if not value == '': try: value_int = int(value) except ValueError: continue for count in range(0, value_int): save = Save(key, game.id_) session.add(save) calculate_player_points(game) calculate_team_points(game)