Extension:SecurePoll
![]() État de la version : stable |
|
---|---|
![]() |
|
Implémentation | Page spéciale |
Description | Permet des élections, des sondages et des enquêtes |
Auteur(s) | Tim Starlingdiscussion |
Dernière version | 3.0.0 (continuous updates) |
Politique de compatibilité | Versions ponctuelles alignées avec MediaWiki. Le master n'est pas compatible arrière. |
MediaWiki | 1.25+ |
Modifie la base de données |
Oui |
Tables | securepoll_entity securepoll_msgs securepoll_properties securepoll_elections securepoll_questions securepoll_options securepoll_voters securepoll_votes securepoll_strike securepoll_lists securepoll_cookie_match |
Licence | Licence publique générale GNU v2.0 ou supérieur |
Téléchargement | |
|
|
|
|
Téléchargements trimestriels | 17 (Ranked 123rd) |
Utilisé par les wikis publics | 889 (Ranked 269th) |
Traduire l’extension SecurePoll sur translatewiki.net si elle y est disponible | |
Problèmes | Tâches ouvertes · Signaler un bogue |
L'extension SecurePoll est une extension de page spéciale pour les élections, les sondages et les enquêtes. Il est utilisé pour les élections du Conseil de la Fondation Wikimedia et les élections du comité d'arbitrage, et a été utilisé pour le vote de transition de licence Wikimedia entre autres.
Captures d'écran
-
Page principale affichant une liste de sondages.
-
Une page de sondage avec un texte descriptif.
-
Admin log for SecurePoll
-
Voter log on SecurePoll
Installation
- Téléchargez et placez le(s) fichier(s) dans un répertoire appelé
SecurePoll
dans votre dossierextensions/
.
Les développeurs et les contributeurs au code doivent à la place installer l'extension à partir de Git en utilisant:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/SecurePoll - Ajoutez le code suivant à la fin de votre fichier LocalSettings.php :
wfLoadExtension( 'SecurePoll' );
- Exécutez le script de mise à jour qui va créer automatiquement les tables de base de données dont cette extension a besoin.
- Fait – Accédez à Special:Version sur votre wiki pour vérifier que l'extension a bien été installée.
Vous devrez également attribuer le nouveau droit d'utilisateur "securepoll-create-poll
" à un groupe d'utilisateurs.
Vous devrez également attribuer le nouveau droit d'utilisateur "LocalSettings.php
" à un groupe d'utilisateurs.
$wgGroupPermissions['sysop']['securepoll-create-poll'] = true;
Cela permet à tous les administrateurs de créer un sondage, mais cela ne permet pas à tous les administrateurs d'administrer un sondage particulier (y compris la modification d'un sondage, l'affichage des données utilisateur, etc.).
Les administrateurs individuels pour un sondage particulier sont définis lors de la création ou de la modification d'un sondage.
Seuls les membres du groupe "electionadmin
" peuvent administrer un sondage.
To create this group, add the following to your LocalSettings.php
:
$wgGroupPermissions['electionadmin'] = [];
Then assign a particular user to the electionadmin
group via Special:UserRights.
Note that election admins can see voter data, so only trusted users should be assigned to this group.
If they are removed from the group, they will no longer be able to administer any elections.
Usage
Create a new poll
There are two ways to create a new poll: manually create an XML file and import it, or use the poll creation interface at Special:SecurePoll.
Manually
To create a poll manually, it is required to:
- write an XML file
- import it using the
import.php
command-line interface command
In the test folder you can find four example files:
3way-test.xml
approval-test.xml
radio-range.xml
schulze-test.xml
info
To import a poll, run the following from the cli folder:
extensions/SecurePoll/cli$ php import.php ../test/3way-test.xml
To import a poll using docker, run the following from the cli folder:
docker-compose exec mediawiki php extensions/SecurePoll/cli/import.php extensions/SecurePoll/test/radio-range.xml
Via the web interface
A user with the securepoll-create-poll
right can create a new poll via the link at the bottom of Special:SecurePoll.
To create a new poll, fill in the mandatory fields in the create form. Special care may be needed with the following fields:
- When adding poll admins, only members of the
electionadmin
group are allowed. If$wgSecurePollUseLogging
is set totrue
, it will be logged whenever an admin is added to or removed from a poll. The logs can be viewed at Special:SecurePollLog. - To create an encrypted poll, select the radio for the encryption method. If you choose GnuPG, generate a (public) encryption key and a (private) decryption key. Enter the encryption key into the create form, and keep the private key safe somewhere offline (you will need it for tallying, once the election has finished). A detailed example can be seen.
Now visit Special:SecurePoll and you will see your poll.
Edit an existing poll
To edit a poll, you must be an admin of the particular poll. From Special:SecurePoll, click on the Edit link for the poll you want to edit.
Before an election has begun, anything about the election can be edited. After an election has begun, some fields can no longer be edited.
Edit who can vote in a poll
To edit who can vote in a poll, you must be an admin of the particular poll. From Special:SecurePoll, click on the Voter Eligibility link for the poll.
Translate a poll
To translate a poll, you must be an admin of the particular poll. From Special:SecurePoll, click on the Translate link for the poll you want to translate.
See a list of voters
Anyone can see a list of voters, unless transparency features were disabled when the poll was created.
Admins of a particular poll can see a list of voters, along with private information that may help to identify duplicate voters (e.g. IP addresses, user agent information, shared cookies).
If $wgSecurePollUseLogging
is set to true
, it will be logged whenever an admin views private data. The logs can be viewed at Special:SecurePollLog.
Admins may strike any votes that they believe to be duplicates.
Tally a poll
To tally a poll, you must be an admin of the particular poll. From Special:SecurePoll, click on the Tally link for the poll you want to tally.
If the poll has been tallied before, the results will be shown on the page. If not, or if you want to re-tally, there is a form for starting a new tally.
- If the poll is unencrypted, click on the tally button.
- If the poll is encrypted, you may need to enter more information. For example, if you used GnuPG, enter the (private) decryption key and click on the tally button. If an encrypted poll has many votes, it may take a long time to tally. You may need to check back later for the results.
Now visit Special:SecurePoll and you will see your poll.
(STV) Tallying
To enable STV tallying please add the below configuration value to LocalSettings.php
$wgSecurePollSingleTransferableVoteEnabled = true;
More information on w:Counting single transferable votes (STV) can be found at Wikipedia.
General algorithm implementation (source).
Quota is + .000001. Quota is the minimum value of votes to secure a seat.
1. Compute the quota. 2. Assign votes to candidates by first preferences. 3. Declare as winners all candidates who received at least the quota. 4. Transfer the excess votes from winners to hopefuls. 5. Repeat steps 3 and 4 until no new candidates are elected. (Under some systems, votes could initially be transferred in this step to prior winners or losers. This might affect the outcome.) If all seats have winners, the process is complete. Otherwise: 6. Eliminate one or more candidates, typically either the lowest candidate or all candidates whose combined votes are less than the vote of the lowest remaining candidate. 7. Transfer the votes of the losers to remaining hopeful candidates. 8. Repeat 3–7 until all seats are full.
The quota we will use (step 1) is the Droop quota (source):
floor( no. votes / (no. seats + 1) ) + 1
The method for transferring votes from elected or eliminated candidates will be the Meek method:
Tallying (JobRunner)
- Tallies can be processed via a scheduled job File d’attente des travaux . Make sure to create a scheduled job for this task or execute the task manually.
- Tallies can also be processed by executing the tallying script manually:
To execute a tally, run the following from the cli folder located at extensions/SecurePoll/cli:
extensions/SecurePoll/cli/tally.php
To execute a tally using MediaWiki-Docker, run the following from the cli folder located at extensions/SecurePoll/cli:
docker-compose exec mediawiki php extensions/SecurePoll/cli/tally.php
Generating (STV) Test Elections
- Test (STV) elections can be generated from the cli folder located at extensions/SecurePoll/cli:
- To generate a test election, run the following from the cli folder located at extensions/SecurePoll/cli:
extensions/SecurePoll/cli/generateTestElection.php
- Test (STV) elections provide scaffolding from which to tally on
Documentation
SecurePoll
SecurePoll general documentation can be found at wikitech:SecurePoll.
SecurePoll Improvements
A summary of improvements to SecurePoll can be found at Anti-Harassment Tools/SecurePoll Improvements.
Understanding the STV result
Documentation on STV results can be found at Anti-Harassment Tools/SecurePoll Improvements/Understanding the STV result.
Cette extension est utilisée par au moins un des projets Wikimédia. Cela signifie probablement que l’extension est assez stable et fonctionnelle pour être utilisée sur des sites à fort trafic. Recherchez le nom de cette extension dans le CommonSettings.php de Wikimédia et dans le fichier de configuration InitialiseSettings.php pour situer les endroits où elle est installée. Une liste complète des extensions installées sur un Wiki donné peut être visualisée sur la page Special:Version de ce wiki. |
Cette extension est incluse dans les fermes de wikis ou les hôtes suivants et / ou les paquets : Cette liste ne fait pas autorité. Certaines fermes de wikis ou hôtes et / ou paquets peuvent contenir cette extension même s'ils ne sont pas listés ici. Vérifiez toujours cela avec votre ferme de wikis ou votre hôte ou votre paquet avant de confirmer. |