コード例 #1
0
ファイル: app.py プロジェクト: nprapps/elections14
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)
コード例 #2
0
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)
コード例 #3
0
ファイル: app.py プロジェクト: nprapps/elections14
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
コード例 #4
0
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