Source code for election_day.views.election_compound_part.statistics

from onegov.election_day import ElectionDayApp
from onegov.election_day.layouts import ElectionCompoundPartLayout
from onegov.election_day.models import ElectionCompoundPart
from onegov.election_day.utils import add_last_modified_header
from onegov.election_day.utils.election_compound import (
    get_candidate_statistics)
from onegov.election_day.utils.election_compound import get_elected_candidates
from onegov.election_day.security import MaybePublic


from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from onegov.core.types import RenderData
    from onegov.election_day.request import ElectionDayRequest
    from webob.response import Response


@ElectionDayApp.html(
    model=ElectionCompoundPart,
    name='statistics',
    template='election_compound_part/statistics.pt',
    permission=MaybePublic
)
[docs] def view_election_compound_part_statistics( self: ElectionCompoundPart, request: 'ElectionDayRequest' ) -> 'RenderData': """" The main view. """ elected_candidates = get_elected_candidates(self, request.session).all() candidate_statistics = get_candidate_statistics(self, elected_candidates) return { 'election_compound_part': self, 'candidate_statistics': candidate_statistics, 'layout': ElectionCompoundPartLayout(self, request, 'statistics') }
@ElectionDayApp.html( model=ElectionCompoundPart, name='statistics-table', template='embed.pt', permission=MaybePublic )
[docs] def view_election_compound_part_statistics_table( self: ElectionCompoundPart, request: 'ElectionDayRequest' ) -> 'RenderData': """" View for the standalone statistics table. """ @request.after def add_last_modified(response: 'Response') -> None: add_last_modified_header(response, self.last_modified) return { 'election_compound': self, 'layout': ElectionCompoundPartLayout(self, request, 'statistics'), 'type': 'election-compound-table', 'scope': 'statistics' }