本文整理汇总了Python中helpers.event_team_manipulator.EventTeamManipulator类的典型用法代码示例。如果您正苦于以下问题:Python EventTeamManipulator类的具体用法?Python EventTeamManipulator怎么用?Python EventTeamManipulator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了EventTeamManipulator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get
def get(self, event_key):
self._require_admin()
event = Event.get_by_id(event_key)
if not event:
self.abort(404)
return
existing_event_team_keys = set(EventTeam.query(EventTeam.event == event.key).fetch(1000, keys_only=True))
EventTeamManipulator.delete_keys(existing_event_team_keys)
self.response.out.write("Deleted {} EventTeams from {}".format(len(existing_event_team_keys), event_key))
示例2: get
def get(self, year, first_eid):
df = DatafeedUsfirst()
df_legacy = DatafeedUsfirstLegacy()
event = df.getEventDetails(first_eid)
if not event:
logging.warning("getEventDetails with DatafeedUsfirst for event id {} failed. Retrying with DatafeedUsfirstLegacy.".format(first_eid))
event = df_legacy.getEventDetails(int(year), first_eid)
if self.request.get('event_district_enum'):
event.event_district_enum = int(self.request.get('event_district_enum'))
event = EventManipulator.createOrUpdate(event)
teams = df.getEventTeams(int(year), first_eid)
if not teams:
logging.warning("getEventTeams with DatafeedUsfirst for event id {} failed. Retrying with DatafeedUsfirstLegacy.".format(first_eid))
teams = df_legacy.getEventTeams(int(year), first_eid)
if not teams:
logging.warning("getEventTeams with DatafeedUsfirstLegacy for event id {} failed.".format(first_eid))
teams = []
teams = TeamManipulator.createOrUpdate(teams)
if teams:
if type(teams) is not list:
teams = [teams]
event_teams = [EventTeam(
id=event.key.id() + "_" + team.key.id(),
event=event.key,
team=team.key,
year=event.year)
for team in teams]
# Delete eventteams of teams that unregister from an event
if event.future:
existing_event_team_keys = set(EventTeam.query(EventTeam.event == event.key).fetch(1000, keys_only=True))
event_team_keys = set([et.key for et in event_teams])
et_keys_to_delete = existing_event_team_keys.difference(event_team_keys)
EventTeamManipulator.delete_keys(et_keys_to_delete)
event_teams = EventTeamManipulator.createOrUpdate(event_teams)
if type(event_teams) is not list:
event_teams = [event_teams]
else:
event_teams = []
template_values = {
'event': event,
'event_teams': event_teams,
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_event_details_get.html')
self.response.out.write(template.render(path, template_values))
示例3: get
def get(self, event_key):
event = Event.get_by_id(event_key)
event_teams = EventTeam.query(EventTeam.event==event.key).fetch()
for event_team in event_teams:
status = EventTeamStatusHelper.generate_team_at_event_status(event_team.team.id(), event)
event_team.status = status
FirebasePusher.update_event_team_status(event_key, event_team.team.id(), status)
EventTeamManipulator.createOrUpdate(event_teams)
if 'X-Appengine-Taskname' not in self.request.headers: # Only write out if not in taskqueue
self.response.out.write("Finished calculating event team statuses for: {}".format(event_key))
示例4: get
def get(self, event_key):
df = DatafeedFMSAPI('v2.0')
event = Event.get_by_id(event_key)
models = df.getEventTeams(event_key)
teams = []
district_teams = []
robots = []
for group in models:
# models is a list of tuples (team, districtTeam, robot)
if isinstance(group[0], Team):
teams.append(group[0])
if isinstance(group[1], DistrictTeam):
district_teams.append(group[1])
if isinstance(group[2], Robot):
robots.append(group[2])
# Write new models
teams = TeamManipulator.createOrUpdate(teams)
district_teams = DistrictTeamManipulator.createOrUpdate(district_teams)
robots = RobotManipulator.createOrUpdate(robots)
if not teams:
# No teams found registered for this event
teams = []
# Build EventTeams
event_teams = [EventTeam(
id=event.key_name + "_" + team.key_name,
event=event.key,
team=team.key,
year=event.year)
for team in teams]
# Delete eventteams of teams that are no longer registered
if event.future:
existing_event_team_keys = set(EventTeam.query(EventTeam.event == event.key).fetch(1000, keys_only=True))
event_team_keys = set([et.key for et in event_teams])
et_keys_to_delete = existing_event_team_keys.difference(event_team_keys)
EventTeamManipulator.delete_keys(et_keys_to_delete)
event_teams = EventTeamManipulator.createOrUpdate(event_teams)
if type(event_teams) is not list:
event_teams = [event_teams]
template_values = {
'event': event,
'event_teams': event_teams,
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_event_details_get.html')
self.response.out.write(template.render(path, template_values))
示例5: post
def post(self, event_key_id):
self._require_admin()
event = Event.get_by_id(event_key_id)
teams_csv = self.request.get('teams_csv')
team_numbers = CSVTeamsParser.parse(teams_csv)
event_teams = []
for team_number in team_numbers:
event_teams.append(ndb.Key(EventTeam, '{}_frc{}'.format(event.key.id(), team_number)))
EventTeamManipulator.delete_keys(event_teams)
self.redirect("/admin/event/" + event.key_name)
示例6: get
def get(self, event_key):
teams, event_teams, et_keys_to_del = EventTeamUpdater.update(event_key)
teams = TeamManipulator.createOrUpdate(teams)
if teams:
event_teams = EventTeamManipulator.createOrUpdate(event_teams)
if et_keys_to_del:
EventTeamManipulator.delete_keys(et_keys_to_del)
template_values = {"event_teams": event_teams, "deleted_event_teams_keys": et_keys_to_del}
path = os.path.join(os.path.dirname(__file__), "../templates/math/eventteam_update_do.html")
self.response.out.write(template.render(path, template_values))
示例7: get
def get(self, year, first_eid):
datafeed = DatafeedUsfirst()
event = datafeed.getEventDetails(int(year), first_eid)
event = EventManipulator.createOrUpdate(event)
teams = datafeed.getEventTeams(int(year), first_eid)
teams = TeamManipulator.createOrUpdate(teams)
if teams:
event_teams = [EventTeam(
id = event.key.id() + "_" + team.key.id(),
event = event.key,
team = team.key,
year = event.year)
for team in teams]
event_teams = EventTeamManipulator.createOrUpdate(event_teams)
else:
event_teams = []
template_values = {
'event': event,
'event_teams': event_teams,
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_event_details_get.html')
self.response.out.write(template.render(path, template_values))
示例8: get
def get(self, event_key):
datafeed = DatafeedUsfirst()
event = Event.get_by_id(event_key)
new_awards = AwardManipulator.createOrUpdate(datafeed.getEventAwards(event))
if type(new_awards) != list:
new_awards = [new_awards]
# create EventTeams
team_ids = set()
for award in new_awards:
for team in award.team_list:
team_ids.add(team.id())
teams = TeamManipulator.createOrUpdate([Team(
id=team_id,
team_number=int(team_id[3:]))
for team_id in team_ids])
if teams:
event_teams = EventTeamManipulator.createOrUpdate([EventTeam(
id=event_key + "_" + team.key.id(),
event=event.key,
team=team.key,
year=event.year)
for team in teams])
template_values = {
'awards': new_awards,
}
path = os.path.join(os.path.dirname(__file__), '../templates/datafeeds/usfirst_awards_get.html')
self.response.out.write(template.render(path, template_values))
示例9: get
def get(self, event_key):
event = Event.get_by_id(event_key)
team_ids = set()
# Add teams from Matches
for match in Match.query(Match.event == event.key).fetch(1000):
for team in match.team_key_names:
team_ids.add(team)
teams = TeamManipulator.createOrUpdate([Team(
id = team_id,
team_number = int(team_id[3:]))
for team_id in team_ids])
if teams:
event_teams = EventTeamManipulator.createOrUpdate([EventTeam(
id = event_key + "_" + team.key.id(),
event = event.key,
team = team.key,
year = event.year)
for team in teams])
else:
event_teams = None
template_values = {
'event_teams': event_teams,
}
path = os.path.join(os.path.dirname(__file__), '../templates/math/eventteam_update_do.html')
self.response.out.write(template.render(path, template_values))
示例10: store_eventteam
def store_eventteam(team, event):
eventteam = EventTeam(id="{}_{}".format(event.key_name, team.key_name))
eventteam.event = event.key
eventteam.team = team.key
eventteam.year = event.year
return EventTeamManipulator.createOrUpdate(eventteam)
示例11: _process_request
def _process_request(self, request, event_key):
team_keys = JSONTeamListParser.parse(request.body)
event = Event.get_by_id(event_key)
event_teams = []
for team_key in team_keys:
event_teams.append(EventTeam(id=event.key.id() + '_{}'.format(team_key),
event=event.key,
team=ndb.Key(Team, team_key),
year=event.year))
# delete old eventteams
old_eventteam_keys = EventTeam.query(EventTeam.event == event.key).fetch(None, keys_only=True)
to_delete = set(old_eventteam_keys).difference(set([et.key for et in event_teams]))
EventTeamManipulator.delete_keys(to_delete)
EventTeamManipulator.createOrUpdate(event_teams)
示例12: post
def post(self, event_key_id):
logging.warning("Deleting %s at the request of %s / %s" % (
event_key_id,
users.get_current_user().user_id(),
users.get_current_user().email()))
event = Event.get_by_id(event_key_id)
matches = Match.query(Match.event == event.key).fetch(5000)
MatchManipulator.delete(matches)
event_teams = EventTeam.query(EventTeam.event == event.key).fetch(5000)
EventTeamManipulator.delete(event_teams)
EventManipulator.delete(event)
self.redirect("/admin/events?deleted=%s" % event_key_id)
示例13: _process_request
def _process_request(self, request, event_key):
team_keys = JSONTeamListParser.parse(request.body)
event_teams = []
for team_key in team_keys:
if Team.get_by_id(team_key): # Don't create EventTeams for teams that don't exist
event_teams.append(EventTeam(id=self.event.key.id() + '_{}'.format(team_key),
event=self.event.key,
team=ndb.Key(Team, team_key),
year=self.event.year))
# delete old eventteams
old_eventteam_keys = EventTeam.query(EventTeam.event == self.event.key).fetch(None, keys_only=True)
to_delete = set(old_eventteam_keys).difference(set([et.key for et in event_teams]))
EventTeamManipulator.delete_keys(to_delete)
EventTeamManipulator.createOrUpdate(event_teams)
self.response.out.write(json.dumps({'Success': "Event teams successfully updated"}))
示例14: createEventTeams
def createEventTeams(self, event):
teams = Team.query().order(Team.team_number).fetch(60)
event_teams = [EventTeam(
id = event.key.id() + "_" + team.key.id(),
event = event.key,
team = team.key,
year = event.year)
for team in teams]
return EventTeamManipulator.createOrUpdate(event_teams)
示例15: test_repair
def test_repair(self):
event_team = EventTeam.get_by_id("2011ct_frc177")
self.assertEqual(event_team.year, None)
broken_event_teams = EventTeam.query(EventTeam.year == None).fetch()
self.assertGreater(len(broken_event_teams), 0)
fixed_event_teams = EventTeamRepairer.repair(broken_event_teams)
fixed_event_teams = EventTeamManipulator.createOrUpdate(fixed_event_teams)
event_team = EventTeam.get_by_id("2011ct_frc177")
self.assertEqual(event_team.year, 2011)