This plugin provides electronic voting of motions and elections for OpenSlides. It's a further development of the outdated OpenSlides VoteCollector Plugin.
On creation of any poll (motions and election) you will be ask which voting mode this poll has. You can choose between four modes:
To run the token-based voting interface on voting machines you need to create an own OpenSlides login, so OpenSlides can validate that the votes comes from an authorized computer.
Create a new user group (e.g. 'voting') which has only three permissions:
Can see motions
, Can see assignments
and Can see the token voting interface
.
Add this new group to a new created voting user. Now, login with this user account on voting machines.
Important: Do not give any delegate the permission Can see the token voting interface
-
otherwise they can see no longer the default OpenSlides interface but see always the
voting interface.
If anyone should be allowed to vote at their own computer, please make a voting user with a simple password and distribute that, so a user has to login seperatly to vote. Note, that this may reveal the users vote because one can check from which computer came the vote and check if a user was logged in on the computer before.
Add VOTING_RESULT_TOKEN_TIMEOUT
to settings.py
if you want to change the timeout in
seconds until vote success view is closed during token-based voting. The timeout is
important so the next one cannot get the result number if the user didn't click on
continue. The result number view can be disabled by setting the timeout to 0.
Not supported is Yes/No(/Abstain) for multiple candidates.
The VoteCollector sends the POST requests (with the important voting results) protected to
the OpenSlides server. OpenSlides and VoteCollector supports HMAC - a
hashed-based message authentication code using the secret key of OpenSlides. To use
the VoteCollector successfully with OpenSlides you have to insert the SECRET_KEY
from
OpenSlides' settings.py
into VoteCollector.exe.config
. If no secret key used in
VoteCollector you get an error if you start a new voting.
To install the plugin in a OpenSlides portable for Windows:
openslides_voting
directory into openslides\plugins
of your OpenSlides portable.To install the plugin in a python environment run::
pip install openslides-voting
Set up Openslides as described in DEVELOPMENT.rst of OpenSlides.
Then fork and clone this plugin repository. Create a
symlink from the openslides_voting
folder into the OpenSlides
folder from
the main OpenSlides repo:
ls -s /<full path>/openslides-voting/openslides_voting /<full path>/OpenSlides/openslides_voting
Add openslides_voting
in your settings.py
to INSTALLED_PLUGINS
.
Then, from the openslides-voting
directory, run yarn
and for further
development a watcher:
node_modules/.bin/gulp watch
Happy Contributing!