OneGov ballot results website used on election day.
Ongeov Election Day uses the model from Onegov Ballot.
Every Onegov Election Day instance contains a principal.yml
with the following
configuration options:
- name
- The name of the principal.
- canton or municipality
- The shortcode of the canton or a BFS number of a municipality.
- color
- The primary color.
- logo
- The filename of the logo.
- base
- A link to another site, displayed at the top right of the pages.
- analytics
- The JavaScript code for analytics.
- use_maps
- Enables or disable maps.
- fetch
- Configures fetching results from other principals, see below.
- webhooks
- Configures webhook notifications. Expects a list of URLs. Allows to set custom HTTP headers.
- sms_notication
- Configures SMS notifications. Expects a URL which is used in the SMS.
- email_notification
- Enables/disables email notifications.
- wabsti_import
- Enables/disables WabstiCExport import.
- pdf_signing
- Configures PDF signing. Expects a endpoint URL, user, password and a reason.
- open_data
- Configures opendata.swiss RDF. Expects an ID, name and mail.
Example:
name: Govikon municipality: 1234 color: '#ccaa2e' logo: 'govikon.svg' base: 'https://govikon.gov' analytics: "<script type=\\"text/javascript\\"></script>" use_maps: false fetch: lu: - federation - canton webhooks: 'http://example.org/1': 'http://example.org/2': My-Header: My-Value sms_notification: 'https://elections.govikon.ch' email_notification: true wabsti_import: true pdf_signing: url: 'http://example.org/3' login: user password: pass reason: election and vote results open_data: id: govikon name: Staatskanzlei Gemeinde Govikon mail: [email protected]
A Renderer (which renders the D3 scripts) is needed to generate the PDFs and SVGs.
Specify the address of the running server in the YAML, e.g.:
d3-renderer: 'http://localhost:1337'
And generate the PDFs or SVGs using the CLI:
onegov-election-day --select /onegov_election_day/* generate-media
Instances running on the same machine can fetch the results from each other.
For example, if we have a cantonal instance and two communal instances, we can configure them to fetch the results on a domain basis:
name: Kanton St.Gallen canton: sg fetch: rebstein: - municipality wil: - municipality name: Gemeinde Rebstein municipality: 3255 fetch: sg: - federation - canton name: Stadt Wil municipality: 3427 fetch: sg: - federation - canton
And then fetch the results using the CLI:
onegov-election-day --select /onegov_election_day/* fetch
Informations intended for the end user of a Onegov Election Day instance (such as upload and downlad format specifications, available JSON and embedded views, headerless mode, REST interface and WabstiCExport interface) can be found here.
There are also some information regarding testing the application.
Install tox and run it:
pip install tox tox
Limit the tests to a specific python version:
tox -e py27
Install jest and run it:
npm install npm t
To update the snapshots, run:
npm t -- -u
Onegov Election Day follows PEP8 as close as possible. To test for it run:
tox -e pep8
Onegov Election Day uses Semantic Versioning.
onegov.election_day is released under GPLv2