def _state_house_slide(slug, page): """ Serve a state slide. """ from models import Race, Slide slide = Slide.get(Slide.slug == 'state-house-results') slug = slug.upper() races = Race.select().where( (Race.office_name == 'U.S. House') & (Race.state_postal == slug) ).order_by(Race.seat_number) timestamp = get_last_updated(races) context = make_context(timestamp=timestamp) context['slide_class'] = 'state-house' context['state_postal'] = slug context['state_name'] = app_config.STATES.get(slug) # Calculate BOP using all races context.update(app_utils.calculate_state_bop(races)) # Filter to display races races = races.where(Race.featured_race == True) if slug in app_config.PAGINATED_STATES: race_count = races.count() page_size = race_count / 2 if page == 1: races = races.limit(page_size) elif page == 2: races = races.offset(page_size) context['page'] = page if races.count(): context['time_on_screen'] = slide.time_on_screen context['races'] = [race for race in races] context['body'] = render_template('slides/state_house.html', **context) return render_template('_slide.html', **context) else: return "no races", 404
def _state_house_slide(slug, page): """ Serve a state slide. """ from models import Race, Slide slide = Slide.get(Slide.slug == 'state-house-results') slug = slug.upper() races = Race.select().where((Race.office_name == 'U.S. House') & (Race.state_postal == slug)).order_by( Race.seat_number) timestamp = get_last_updated(races) context = make_context(timestamp=timestamp) context['slide_class'] = 'state-house' context['state_postal'] = slug context['state_name'] = app_config.STATES.get(slug) # Calculate BOP using all races context.update(app_utils.calculate_state_bop(races)) # Filter to display races races = races.where(Race.featured_race == True) if slug in app_config.PAGINATED_STATES: race_count = races.count() page_size = race_count / 2 if page == 1: races = races.limit(page_size) elif page == 2: races = races.offset(page_size) context['page'] = page if races.count(): context['time_on_screen'] = slide.time_on_screen context['races'] = [race for race in races] context['body'] = render_template('slides/state_house.html', **context) return render_template('_slide.html', **context) else: return "no races", 404
def _slide(slug): """ Serve up slide html fragment """ from models import Slide context = make_context() slide = Slide.get(Slide.slug == slug) view_name = slide.view_name if slide.data: context['body'] = slides.__dict__[view_name](slide.data) else: context['body'] = slides.__dict__[view_name]() context['slide_class'] = view_name.replace('_', '-') context['time_on_screen'] = slide.time_on_screen return render_template('_slide.html', **context)
def _state_senate_slide(slug): """ Serve a state slide. """ from models import Race, Slide slide = Slide.get(Slide.slug == 'state-senate-results') slug = slug.upper() senate_races = Race.select().where( (Race.office_name == 'U.S. Senate') & (Race.state_postal == slug) ).order_by(Race.seat_number) governor_races = Race.select().where( (Race.office_name == 'Governor') & (Race.state_postal == slug) ) if senate_races.count() == 0 and governor_races.count() == 0: return "404", 404 senate_updated = get_last_updated(senate_races) governor_updated = get_last_updated(governor_races) if senate_updated > governor_updated: timestamp = senate_updated else: timestamp = governor_updated context = make_context(timestamp=timestamp) context['state_postal'] = slug context['state_name'] = app_config.STATES.get(slug) context['slide_class'] = 'state-senate' context['senate'] = senate_races context['governor'] = governor_races context['time_on_screen'] = slide.time_on_screen context['body'] = render_template('slides/state_senate.html', **context) return render_template('_slide.html', **context)
def _state_senate_slide(slug): """ Serve a state slide. """ from models import Race, Slide slide = Slide.get(Slide.slug == 'state-senate-results') slug = slug.upper() senate_races = Race.select().where((Race.office_name == 'U.S. Senate') & (Race.state_postal == slug)).order_by( Race.seat_number) governor_races = Race.select().where((Race.office_name == 'Governor') & (Race.state_postal == slug)) if senate_races.count() == 0 and governor_races.count() == 0: return "404", 404 senate_updated = get_last_updated(senate_races) governor_updated = get_last_updated(governor_races) if senate_updated > governor_updated: timestamp = senate_updated else: timestamp = governor_updated context = make_context(timestamp=timestamp) context['state_postal'] = slug context['state_name'] = app_config.STATES.get(slug) context['slide_class'] = 'state-senate' context['senate'] = senate_races context['governor'] = governor_races context['time_on_screen'] = slide.time_on_screen context['body'] = render_template('slides/state_senate.html', **context) return render_template('_slide.html', **context)