def get(self, event_key): event = Event.get_by_key_name(event_key) teams = set() # Add teams from Matches for m in event.match_set: for team in m.team_key_names: teams.add(team) # Add teams from existing EventTeams for a in event.teams: if a.team: teams.add("frc%s" % a.team.team_number) eventteams_count = 0 for team in teams: team_object = Team.get_or_insert( key_name = team, team_number = int(team[3:]), #"frc177"->"177" ) et = EventTeam.get_or_insert( key_name = event_key + "_" + team, event = event, team = team_object, year = event.year) # Update if needed reput = False if not et.team: reput = True et.team = team_object elif et.team.key().name != team_object.key().name: reput = True et.team = team_object if et.year != event.year: reput = True et.year = event.year if reput: logging.info("Had to re-put %s" % et.key().name) et.put() eventteams_count = eventteams_count + 1 template_values = { 'eventteams_count': eventteams_count, } path = os.path.join(os.path.dirname(__file__), '../templates/cron/eventteam_update.html') self.response.out.write(template.render(path, template_values))