Package: openslides-voting
OpenSlides Voting PluginThis plugin provides electronic voting of motions and elections for OpenSlides.
It's a further development of the outdatedOpenSlides VoteCollector Plugin.RequirementsOpenSlides 2.3VoteCollector 1.10.2+(for voting modes with keypads)FeaturesElectronic voting for motions and elections in OpenSlides with 4 voting modes (see below)Supports the voting software 'VoteCollector' for using hardware keypads ofVoteworkswith OpenSlides.Overview with single votes for verification of each vote.Visualize live voting as delegate board on projector.Allows list of speakers voting (add/remove as speaker), with VoteCollector only.Supports multiple voting shares per delegate.Supports proxies/principals and absentee votes.Voting modesOn creation of any poll (motions and election) you will be ask which voting mode
this poll has. You can choose between four modes:Analog voting: Just enter the offline counted votes, so the assembly can
see the result.Named electronic voting: Every delegate needs an OpenSlides login and can
vote inside of OpenSlides. It's a public vote. The name of delegate is saved to the vote.
This can be pseudo-anonymized later (delete
the association between user and the vote, but remember, there might be ways
to reconstruct it later).Token-based electronic voting: This is a mode for polling booths.
Delegates don't need an own OpenSlides login. There have to be a few OpenSlides
voting machines where delegates can vote by entering a valid voting token.
The voting tokens are randomly generated by the voting manager.
After authenticating the delegates they get the activated voting token.
After voting you get a (short, randomly generated) result number to
verify your own vote in a list of all votes.VoteCollector: If you have voting devices (keypads) that supports the
VoteCollector, you can enable the VoteCollector mode in the settings. Note
that not all voting methods (like yes/no/abstain for multiple candidates) are
supported by the VoteCollector. See below for more details.Token-based voting interfaceTo 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 assignmentsandCan 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 permissionCan 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.AddVOTING_RESULT_TOKEN_TIMEOUTtosettings.pyif 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.VoteCollector supported voting modesYes/No/Abstain for motionsYes/No(/Abstain) for elections with just one candidate1-of-n elections (choose one from many candidates), supports also
abstain (key '0') and invalid votes (key > n)Yes/No for list of speakers voting (add/remove as speaker)Not supported is Yes/No(/Abstain) for multiple candidates.Configure SECRET_KEY in VoteCollectorThe VoteCollector sends the POST requests (with the important voting results) protected to
the OpenSlides server. OpenSlides and VoteCollector supportsHMAC- a
hashed-based message authentication code using the secret key of OpenSlides. To use
the VoteCollector successfully with OpenSlides you have to insert theSECRET_KEYfrom
OpenSlides'settings.pyintoVoteCollector.exe.config. If no secret key used in
VoteCollector you get an error if you start a new voting.InstallationOpenSlides portable for WindowsTo install the plugin in a OpenSlides portable for Windows:Download and extract the zip archive of the latest plugin release fromfiles.openslides.org.Copy theopenslides_votingdirectory intoopenslides\pluginsof your OpenSlides portable.Restart OpenSlides server.Install via pypiTo install the plugin in a python environment run::pip install openslides-votingInstall for developmentSet up Openslides as described inDEVELOPMENT.rst of OpenSlides.
Then fork and clone this plugin repository. Create a
symlink from theopenslides_votingfolder into theOpenSlidesfolder from
the main OpenSlides repo:ls -s /<full path>/openslides-voting/openslides_voting /<full path>/OpenSlides/openslides_votingAddopenslides_votingin yoursettings.pytoINSTALLED_PLUGINS.Then, from theopenslides-votingdirectory, runyarnand for further
development a watcher:node_modules/.bin/gulp watchHappy Contributing!