def render_team_history(cls, handler, team, is_canonical): award_futures = award_query.TeamAwardsQuery(team.key.id()).fetch_async() event_futures = event_query.TeamEventsQuery(team.key.id()).fetch_async() participation_future = team_query.TeamParticipationQuery(team.key.id()).fetch_async() social_media_future = media_query.TeamSocialMediaQuery(team.key.id()).fetch_async() awards_by_event = {} for award in award_futures.get_result(): if award.event.id() not in awards_by_event: awards_by_event[award.event.id()] = [award] else: awards_by_event[award.event.id()].append(award) event_awards = [] current_event = None matches_upcoming = None short_cache = False years = set() for event in event_futures.get_result(): years.add(event.year) if event.now: current_event = event matches = match_query.TeamEventMatchesQuery(team.key.id(), event.key.id()).fetch() matches_upcoming = MatchHelper.upcomingMatches(matches) if event.within_a_day: short_cache = True if event.key_name in awards_by_event: sorted_awards = AwardHelper.organizeAwards(awards_by_event[event.key_name]) else: sorted_awards = [] event_awards.append((event, sorted_awards)) event_awards = sorted(event_awards, key=lambda (e, _): e.start_date if e.start_date else datetime.datetime(e.year, 12, 31)) last_competed = None participation_years = participation_future.get_result() if len(participation_years) > 0: last_competed = max(participation_years) current_year = datetime.date.today().year social_medias = sorted(social_media_future.get_result(), key=MediaHelper.social_media_sorter) handler.template_values.update({ 'is_canonical': is_canonical, 'team': team, 'event_awards': event_awards, 'years': sorted(years), "social_medias": social_medias, 'current_event': current_event, 'matches_upcoming': matches_upcoming, 'last_competed': last_competed, 'current_year': current_year }) if short_cache: handler._cache_expiration = handler.SHORT_CACHE_EXPIRATION return jinja2_engine.render('team_history.html', handler.template_values)
def render_team_history(cls, handler, team, is_canonical): award_futures = award_query.TeamAwardsQuery( team.key.id()).fetch_async() event_futures = event_query.TeamEventsQuery( team.key.id()).fetch_async() awards_by_event = {} for award in award_futures.get_result(): if award.event.id() not in awards_by_event: awards_by_event[award.event.id()] = [award] else: awards_by_event[award.event.id()].append(award) event_awards = [] current_event = None matches_upcoming = None short_cache = False years = set() for event in event_futures.get_result(): years.add(event.year) if event.now: current_event = event matches = match_query.TeamEventMatchesQuery( team.key.id(), event.key.id()).fetch() matches_upcoming = MatchHelper.upcomingMatches(matches) if event.within_a_day: short_cache = True if event.key_name in awards_by_event: sorted_awards = AwardHelper.organizeAwards( awards_by_event[event.key_name]) else: sorted_awards = [] event_awards.append((event, sorted_awards)) event_awards = sorted( event_awards, key=lambda (e, _): e.start_date if e.start_date else datetime.datetime(e.year, 12, 31)) handler.template_values.update({ 'is_canonical': is_canonical, 'team': team, 'event_awards': event_awards, 'years': sorted(years), 'current_event': current_event, 'matches_upcoming': matches_upcoming }) if short_cache: handler._cache_expiration = handler.SHORT_CACHE_EXPIRATION path = os.path.join(os.path.dirname(__file__), '../templates/team_history.html') return template.render(path, handler.template_values)
def render_team_history(cls, handler, team, is_canonical): hof_award_future = award_query.TeamEventTypeAwardsQuery(team.key.id(), EventType.CMP_FINALS, AwardType.CHAIRMANS).fetch_async() hof_video_future = media_query.TeamTagMediasQuery(team.key.id(), MediaTag.CHAIRMANS_VIDEO).fetch_async() hof_presentation_future = media_query.TeamTagMediasQuery(team.key.id(), MediaTag.CHAIRMANS_PRESENTATION).fetch_async() hof_essay_future = media_query.TeamTagMediasQuery(team.key.id(), MediaTag.CHAIRMANS_ESSAY).fetch_async() award_futures = award_query.TeamAwardsQuery(team.key.id()).fetch_async() event_futures = event_query.TeamEventsQuery(team.key.id()).fetch_async() participation_future = team_query.TeamParticipationQuery(team.key.id()).fetch_async() social_media_future = media_query.TeamSocialMediaQuery(team.key.id()).fetch_async() hof_awards = hof_award_future.get_result() hof_video = hof_video_future.get_result() hof_presentation = hof_presentation_future.get_result() hof_essay = hof_essay_future.get_result() hall_of_fame = { "is_hof": len(hof_awards) > 0, "years": [award.year for award in hof_awards], "media": { "video": hof_video[0].youtube_url_link if len(hof_video) > 0 else None, "presentation": hof_presentation[0].youtube_url_link if len(hof_presentation) > 0 else None, "essay": hof_essay[0].external_link if len(hof_essay) > 0 else None, }, } awards_by_event = {} for award in award_futures.get_result(): if award.event.id() not in awards_by_event: awards_by_event[award.event.id()] = [award] else: awards_by_event[award.event.id()].append(award) event_awards = [] current_event = None matches_upcoming = None short_cache = False years = set() for event in event_futures.get_result(): years.add(event.year) if event.now: current_event = event matches = match_query.TeamEventMatchesQuery(team.key.id(), event.key.id()).fetch() matches_upcoming = MatchHelper.upcomingMatches(matches) if event.within_a_day: short_cache = True if event.key_name in awards_by_event: sorted_awards = AwardHelper.organizeAwards(awards_by_event[event.key_name]) else: sorted_awards = [] event_awards.append((event, sorted_awards)) event_awards = sorted(event_awards, key=lambda (e, _): e.start_date if e.start_date else datetime.datetime(e.year, 12, 31)) last_competed = None participation_years = participation_future.get_result() if len(participation_years) > 0: last_competed = max(participation_years) current_year = datetime.date.today().year social_medias = sorted(social_media_future.get_result(), key=MediaHelper.social_media_sorter) handler.template_values.update({ "is_canonical": is_canonical, "team": team, "event_awards": event_awards, "years": sorted(years), "social_medias": social_medias, "current_event": current_event, "matches_upcoming": matches_upcoming, "last_competed": last_competed, "current_year": current_year, "max_year": tba_config.MAX_YEAR, "hof": hall_of_fame, }) if short_cache: handler._cache_expiration = handler.SHORT_CACHE_EXPIRATION return jinja2_engine.render("team_history.html", handler.template_values)