def get(self): team_key = self.request.get("team_key") year_str = self.request.get("year") self._require_login("/suggest/team/media?team_key=%s&year=%s" % (team_key, year_str)) if not team_key or not year_str: self.redirect("/", abort=True) year = int(year_str) team_future = Team.get_by_id_async(self.request.get("team_key")) team = team_future.get_result() media_key_futures = Media.query(Media.references == team.key, Media.year == year).fetch_async( 500, keys_only=True) media_futures = ndb.get_multi_async(media_key_futures.get_result()) medias_by_slugname = MediaHelper.group_by_slugname( [media_future.get_result() for media_future in media_futures]) self.template_values.update({ "success": self.request.get("success"), "team": team, "year": year, "medias_by_slugname": medias_by_slugname }) path = os.path.join(os.path.dirname(__file__), '../../templates/suggest_team_media.html') self.response.out.write(template.render(path, self.template_values))
def get(self): team_key = self.request.get("team_key") self._require_registration() if not team_key: self.redirect("/", abort=True) team_future = Team.get_by_id_async(self.request.get("team_key")) team = team_future.get_result() if not team: self.redirect("/", abort=True) media_key_futures = Media.query(Media.references == team.key, Media.year == None).fetch_async(500, keys_only=True) media_futures = ndb.get_multi_async(media_key_futures.get_result()) medias = [media_future.get_result() for media_future in media_futures] social_medias = MediaHelper.get_socials(medias) self.template_values.update({ "status": self.request.get("status"), "team": team, "social_medias": social_medias, }) self.response.out.write(jinja2_engine.render('suggestions/suggest_team_social_media.html', self.template_values))
def get(self): team_key = self.request.get("team_key") self._require_registration() if not team_key: self.redirect("/", abort=True) team_future = Team.get_by_id_async(self.request.get("team_key")) team = team_future.get_result() if not team: self.redirect("/", abort=True) media_key_futures = Media.query(Media.references == team.key, Media.year == None).fetch_async( 500, keys_only=True) media_futures = ndb.get_multi_async(media_key_futures.get_result()) medias = [media_future.get_result() for media_future in media_futures] social_medias = MediaHelper.get_socials(medias) self.template_values.update({ "status": self.request.get("status"), "team": team, "social_medias": social_medias, }) self.response.out.write( jinja2_engine.render('suggestions/suggest_team_social_media.html', self.template_values))
def get(self): team_key = self.request.get("team_key") year_str = self.request.get("year") self._require_registration() if not team_key or not year_str: self.redirect("/", abort=True) year = int(year_str) team_future = Team.get_by_id_async(self.request.get("team_key")) team = team_future.get_result() if not team: self.redirect("/", abort=True) media_key_futures = Media.query(Media.references == team.key, Media.year == year).fetch_async(500, keys_only=True) media_futures = ndb.get_multi_async(media_key_futures.get_result()) medias = [media_future.get_result() for media_future in media_futures] medias_by_slugname = MediaHelper.group_by_slugname(medias) self.template_values.update({ "status": self.request.get("status"), "team": team, "year": year, "medias_by_slugname": medias_by_slugname, }) self.response.out.write(jinja2_engine.render('suggestions/suggest_team_media.html', self.template_values))
def get(self): team_key = self.request.get("team_key") year_str = self.request.get("year") self._require_registration() if not team_key or not year_str: self.redirect("/", abort=True) year = int(year_str) team_future = Team.get_by_id_async(self.request.get("team_key")) team = team_future.get_result() if not team: self.redirect("/", abort=True) media_key_futures = Media.query(Media.references == team.key, Media.year == year).fetch_async( 500, keys_only=True) media_futures = ndb.get_multi_async(media_key_futures.get_result()) medias = [media_future.get_result() for media_future in media_futures] medias_by_slugname = MediaHelper.group_by_slugname(medias) self.template_values.update({ "status": self.request.get("status"), "team": team, "year": year, "medias_by_slugname": medias_by_slugname, }) self.response.out.write( jinja2_engine.render('suggestions/suggest_team_media.html', self.template_values))
def get(self): team_key = self.request.get("team_key") year_str = self.request.get("year") self._require_login("/suggest/team/media?team_key=%s&year=%s" % (team_key, year_str)) if not team_key or not year_str: self.redirect("/", abort=True) year = int(year_str) team_future = Team.get_by_id_async(self.request.get("team_key")) team = team_future.get_result() media_key_futures = Media.query(Media.references == team.key, Media.year == year).fetch_async(500, keys_only=True) media_futures = ndb.get_multi_async(media_key_futures.get_result()) medias_by_slugname = MediaHelper.group_by_slugname([media_future.get_result() for media_future in media_futures]) self.template_values.update({ "success": self.request.get("success"), "team": team, "year": year, "medias_by_slugname": medias_by_slugname }) path = os.path.join(os.path.dirname(__file__), '../../templates/suggest_team_media.html') self.response.out.write(template.render(path, self.template_values))
def get(self): team_key = self.request.get("team_key") year_str = self.request.get("year") self._require_registration() if not team_key or not year_str: self.redirect("/", abort=True) year = int(year_str) team_future = Team.get_by_id_async(self.request.get("team_key")) team = team_future.get_result() if not team: self.redirect("/", abort=True) media_key_futures = Media.query(Media.references == team.key, Media.year == year).fetch_async(500, keys_only=True) social_media_future = media_query.TeamSocialMediaQuery(team.key.id()).fetch_async() media_futures = ndb.get_multi_async(media_key_futures.get_result()) medias = [media_future.get_result() for media_future in media_futures] medias_by_slugname = MediaHelper.group_by_slugname(medias) social_medias = sorted(social_media_future.get_result(), key=MediaHelper.social_media_sorter) social_medias = filter(lambda m: m.media_type_enum == MediaType.INSTAGRAM_PROFILE, social_medias) # we only allow IG media, so only show IG profile self.template_values.update({ "medias_by_slugname": medias_by_slugname, "social_medias": social_medias, "status": self.request.get("status"), "team": team, "year": year, }) self.response.out.write(jinja2_engine.render('suggestions/suggest_team_media.html', self.template_values))
def validate_request(cls, handler): kwargs = handler.request.route_kwargs error_dict = {'Errors': []} valid = True team_future = None event_future = None match_future = None # Check key formats if 'team_key' in kwargs: team_key = kwargs['team_key'] results = cls.team_id_validator(team_key) if results: error_dict['Errors'].append(results) valid = False else: team_future = Team.get_by_id_async(team_key) if 'event_key' in kwargs: event_key = kwargs['event_key'] results = cls.event_id_validator(event_key) if results: error_dict['Errors'].append(results) valid = False else: event_future = Event.get_by_id_async(event_key) if 'match_key' in kwargs: match_key = kwargs['match_key'] results = cls.match_id_validator(match_key) if results: error_dict['Errors'].append(results) valid = False else: match_future = Match.get_by_id_async(match_key) if 'district_key' in kwargs: district_key = kwargs['district_key'] results = cls.district_id_validator(district_key) if results: error_dict['Errors'].append(results) valid = False if 'year' in kwargs: year = int(kwargs['year']) if year > tba_config.MAX_YEAR or year < 1992: error_dict['Errors'].append({'year': 'Invalid year: {}. Must be between 1992 and {} inclusive.'.format(year, tba_config.MAX_YEAR)}) valid = False # Check if keys exist if team_future and team_future.get_result() is None: error_dict['Errors'].append({'team_id': 'team id {} does not exist'.format(team_key)}) valid = False if event_future and event_future.get_result() is None: error_dict['Errors'].append({'event_id': 'event id {} does not exist'.format(event_key)}) valid = False if match_future and match_future.get_result() is None: error_dict['Errors'].append({'match_id': 'match id {} does not exist'.format(match_key)}) valid = False if not valid: return error_dict
def get(self): team_key = self.request.get("team_key") year_str = self.request.get("year") self._require_registration() if not team_key or not year_str: self.redirect("/", abort=True) year = int(year_str) team_future = Team.get_by_id_async(self.request.get("team_key")) team = team_future.get_result() if not team: self.redirect("/", abort=True) media_key_futures = Media.query(Media.references == team.key, Media.year == year).fetch_async( 500, keys_only=True) social_media_future = media_query.TeamSocialMediaQuery( team.key.id()).fetch_async() media_futures = ndb.get_multi_async(media_key_futures.get_result()) medias = [media_future.get_result() for media_future in media_futures] medias_by_slugname = MediaHelper.group_by_slugname(medias) social_medias = sorted(social_media_future.get_result(), key=MediaHelper.social_media_sorter) social_medias = filter( lambda m: m.media_type_enum == MediaType.INSTAGRAM_PROFILE, social_medias) # we only allow IG media, so only show IG profile self.template_values.update({ "medias_by_slugname": medias_by_slugname, "social_medias": social_medias, "status": self.request.get("status"), "team": team, "year": year, }) self.response.out.write( jinja2_engine.render('suggestions/suggest_team_media.html', self.template_values))
def validate_request(cls, handler): kwargs = handler.request.route_kwargs error_dict = {'Errors': []} valid = True team_future = None event_future = None match_future = None district_future = None # Check key formats if 'team_key' in kwargs: team_key = kwargs['team_key'] results = cls.team_id_validator(team_key) if results: error_dict['Errors'].append(results) valid = False else: team_future = Team.get_by_id_async(team_key) if 'event_key' in kwargs: event_key = kwargs['event_key'] results = cls.event_id_validator(event_key) if results: error_dict['Errors'].append(results) valid = False else: event_future = Event.get_by_id_async(event_key) if 'match_key' in kwargs: match_key = kwargs['match_key'] results = cls.match_id_validator(match_key) if results: error_dict['Errors'].append(results) valid = False else: match_future = Match.get_by_id_async(match_key) if 'district_key' in kwargs: district_key = kwargs['district_key'] results = cls.district_id_validator(district_key) if results: error_dict['Errors'].append(results) valid = False else: district_future = District.get_by_id_async(district_key) if 'year' in kwargs: year = int(kwargs['year']) if year > tba_config.MAX_YEAR or year < 1992: error_dict['Errors'].append({ 'year': 'Invalid year: {}. Must be between 1992 and {} inclusive.'. format(year, tba_config.MAX_YEAR) }) valid = False # Check if keys exist if team_future and team_future.get_result() is None: error_dict['Errors'].append( {'team_id': 'team id {} does not exist'.format(team_key)}) valid = False if event_future and event_future.get_result() is None: error_dict['Errors'].append( {'event_id': 'event id {} does not exist'.format(event_key)}) valid = False if match_future and match_future.get_result() is None: error_dict['Errors'].append( {'match_id': 'match id {} does not exist'.format(match_key)}) valid = False if district_future and district_future.get_result() is None: error_dict['Errors'].append({ 'district_id': 'district id {} does not exist'.format(district_key) }) valid = False if not valid: return error_dict
def _query_async(self): team_key = self._query_args[0] team = yield Team.get_by_id_async(team_key) raise ndb.Return(team)