Créer et gérer des sondages

:bookmark: This guide explains how to create polls in Discourse to gather votes from users on any topic.

:person_raising_hand: Required user level: All users

:information_source: By default, polls are enabled in Discourse and users of trust level 1 or above are allowed to create them. Site admins can adjust who can create polls via the poll create allowed groups site setting and disable polls using the poll enabled site setting.

Creating a poll from the toolbar

The easiest way to create a poll is to use the poll builder. The poll builder can be accessed from the :gear: menu in the composer, and allows you to make a poll without needing to know the exact syntax.

To show advanced options press the :gear: icon. This will show you different poll options such as if the poll auto closes, set groups allowed to vote, choose bar or pie, etc.

Poll options

Poll type:

  • Single Choice: Default poll type. Users can select a single choice from the poll
  • Multiple Choice: Users can select multiple choices from the poll.
    • The poll creator must also define the minimum and maximum number of choices a user can make. By default the minimum will be 1, and the maximum will be the number of poll choices.
  • Number Rating: Users can select a single number.
    • The poll creator must also define the min, max and step for the number rating. For example, if the min is 2, the max is 10, and the step is 2, the options will be 2, 4, 6, 8, and 10.

Results:

  • Always visible: Default poll results. Users can always see the results of the poll, regardless of if they’ve voted.
  • Only after voting: Users must vote before they can see the results of the poll.
  • When the poll is closed: Poll results will only be revealed once the poll is closed.
  • Staff only: Only site staff will be able to see the poll results.

Allowed groups:

Allows the poll creator to limit which groups can participate in the poll. Users not in the listed groups will be able to view the poll, but not vote. Default is all users can participate, no group limitation.

Chart type:

For Single or Multiple Choice polls, choose whether to display the result in a bar graph or pie chart.

Show who voted:

Enabled by default, this allows those who can view poll results to also view the specific choices of each poll user. (Bar Chart type only)

Automatically close poll:

Allows the poll creator to set a date/time for the poll to close automatically. Unlike manually closed polls, auto-closed polls cannot be re-opened.

Including images

Polls can even include images! After using the poll builder to insert the poll, images can be uploaded to the post and manually added to the poll. Uploaded images should be small, or adjusted to display at a lower percentage:

[poll type=regular]
* ![image|690x458,25%](upload://2u570X7kQiPJQaJD1Bd8MLDHDNB.jpeg)
* ![image|690x334,25%](upload://35fmeFw8RMywSxIc4lbCb8UHPaT.jpg)
* ![image|690x499,25%](upload://xSDkRwmuj1pNc2QXKzthfXRlwsX.jpg)
[/poll]
[poll type=regular]
* Cat: a small domesticated carnivorous mammal with soft fur, a short snout, and retractile claws.
![image|690x458,25%](upload://2u570X7kQiPJQaJD1Bd8MLDHDNB.jpeg)
* Dog: a domesticated carnivorous mammal that typically has a long snout, an acute sense of smell, and a barking, howling, or whining voice.
![image|690x334,25%](upload://35fmeFw8RMywSxIc4lbCb8UHPaT.jpg)
* Fish: a limbless cold-blooded vertebrate animal with gills and fins and living wholly in water.
![image|690x499,25%](upload://xSDkRwmuj1pNc2QXKzthfXRlwsX.jpg)
[/poll]
  • Cat: a small domesticated carnivorous mammal with soft fur, a short snout, and retractile claws.
  • Dog: a domesticated carnivorous mammal that typically has a long snout, an acute sense of smell, and a barking, howling, or whining voice.
  • Fish: a limbless cold-blooded vertebrate animal with gills and fins and living wholly in water.
0 voters

Including relative dates

Polls can also include relative dates! In a similar way to adding images, after using the poll builder to insert the poll you can insert dates into the poll options via the “Insert date / time” composer button:

[poll type=regular]
* [date=2019-10-13 timezone="Europe/Paris"]
* [date=2019-10-12 timezone="Europe/Paris"]
* [date=2019-10-11 timezone="Europe/Paris"]
[/poll]
  • 2019-10-12T22:00:00Z
  • 2019-10-11T22:00:00Z
  • 2019-10-10T22:00:00Z
0 voters

Multiple polls in a post

If multiple polls are used in a single post (like this one!) each poll will need a unique name or they will not work. When using the poll builder each extra poll will be numbered sequentially, but you can also do this manually by adding name="poll_name" as a parameter:

[poll name="poll_1"]
1. option one
2. option two
3. option three
[/poll]

[poll name="poll_3" type=multiple min=2 max=3]
- option one
- option two
- option three
- option four
[/poll]

[poll name="dave" type=number min=2 max=10 step=2]
[/poll]

Manually creating a poll

While the poll builder is the easiest option, it is also possible to manually create and edit polls within the composer itself.

To create a simple poll, surround a markdown list with [poll] and [/poll]:

[poll]
* option one
* option two
* option three
[/poll]

:information_source: Any markdown list will work, including using hyphens - or numbers instead of asterisks *.

This will create the following result:

  1. option one
  2. option two
  3. option three
0 voters

To manually create more complex polls, additional parameters can be added to the poll tag. For instance:

[poll type=multiple results=on_vote min=1 max=2 public=true chartType=pie groups=trust_level_1 close=3024-12-31T00:00:00.000Z]
# Do you like polls?
* Yes
* No
* Maybe
[/poll]
Do you like polls?
  • Yes
  • No
  • Maybe
0 voters

(Though not all options will make sense for all polls :slight_smile:)

Using the poll builder is a great way to find out the format of these additional parameters for later use.

FAQs

Can anyone vote in a poll?

Even with no group voting restrictions on the poll itself, users must be able to reply to the topic where the poll is created in order to participate. Users with see only permissions will not be able to vote.

Can polls be edited?

All votes are cleared when a poll is edited, to ensure the poll creator can’t change the choices a user voted for. As such, by default polls can only be edited for a grace period of 5 minutes after being created.

:exclamation: Votes cannot be recovered once a poll is edited and the votes are cleared

Can I export poll data for further analysis?

Staff can use the Discourse Data Explorer to export poll data as a csv, which can be imported into the data analysis program of their choice.

Last edited by @hugh 2024-07-29T10:05:00Z

Last checked by @hugh 2024-07-02T09:50:57Z

Check documentPerform check on document:
62 « J'aime »

Cela peut sembler une question de novice, mais j’ai une requête.

Supposons qu’une fois que j’ai créé un sondage, dans lequel j’ai défini que les résultats soient visibles dès que les votes sont exprimés. Je réalise alors mon erreur, à savoir que j’aurais dû définir la visibilité des résultats après la clôture du vote. Y a-t-il donc un moyen de modifier le sondage actuel, afin que la visibilité de ce sondage soit modifiée de « Toujours visible » à « Lorsque le sondage est clos » parmi les options, accessibles via l’icône d’engrenage disponible dans les paramètres de création du sondage ?

Ou dois-je supprimer ce sondage, puis en créer un nouveau et choisir le paramètre de visibilité des votes « lorsque le sondage est clos » ?

J’attache également la capture d’écran.

Merci de me conseiller.

Si ce message n’est pas pertinent pour ce sujet, je prie les modérateurs/administrateurs de bien vouloir le déplacer dans la section appropriée.

1 « J'aime »

Vous pouvez modifier cela sans supprimer le sondage. Lorsque vous modifiez la publication, votre sondage commence par quelque chose comme [poll type=regular results=on_vote public=true chartType=bar]; vous pouvez modifier le paramètre « results » en results=on_close.
Cependant, si je me souviens bien, lorsque vous modifiez le sondage, tous les votes sont supprimés, mais au moins vous n’avez pas à le recréer.

3 « J'aime »

C’est effectivement le cas.

Il serait plus logique qu’il y ait une option pour réinitialiser le sondage, plutôt que ce soit « forcé » - surtout pour des modifications mineures comme celle-ci.

J’ai piraté la base de données pour ce type de changements dans le passé (pour éviter qu’une modification ne déclenche une réinitialisation), mais c’est un peu fragile.

4 « J'aime »

Cela aide beaucoup.

Qu’en déduiriez-vous tous les deux si je vous disais que lorsque l’administrateur qui a créé le sondage a modifié le sujet utilisé pour le sondage, les modifications du sujet diminuent au lieu d’augmenter ?

Mon interprétation est la suivante : le sondage a été supprimé, puis un nouveau sondage a été lancé. Cela expliquerait la diminution des modifications du sujet pour un utilisateur qui vote.

Exemple :
L’utilisateur est d’abord arrivé au sondage, dont le paramètre de vote était défini sur “toujours visible”. Les modifications du sujet de ce sondage étaient de 4.

Lorsque l’administrateur a été informé que le paramètre de vote était défini sur “toujours visible”, l’utilisateur voit alors le sondage avec le paramètre de vote défini sur “visible après avoir voté”. Cependant, les modifications du sujet sont passées à 3. Ainsi, les modifications du sujet, au lieu d’augmenter, diminuent.

Ma réflexion est la suivante : l’administrateur a supprimé le sondage précédent, puis en a lancé un nouveau.

1 « J'aime »

Serait-il possible de mettre à jour cette documentation pour inclure les sondages à vote préférentiel ? Plus précisément, comment et quand les tours sont incrémentés.
Merci d’avance !

5 « J'aime »

Point bien joué @meave

Auteur des sondages Ranked Choice ici, c’est une balle perdue.

Je n’ai pas les droits d’édition de l’OP. Très heureux que quelqu’un copie ceci et le formate comme il l’entend, ou si converti en Wiki, heureux de contribuer :

Fonctionne exactement comme décrit ici, c’est le vote classique par élimination instantanée :

(Ma version du plugin de sondage contient en fait cet exemple comme test unitaire !)

Le processus est le suivant :

Chaque électeur soumet une liste ordonnée de candidats. À chaque tour, nous ne considérons que le candidat placé en 1ère position (et nous nous concentrons sur les gagnants potentiels et les perdants les plus mal classés).

  1. Comptez les votes de première place pour chaque candidat
  2. Trouvez le(s) candidat(s) avec le plus de votes
  3. Vérifiez s’il y a une majorité claire et unique et retournez si trouvée comme gagnant (plus de tours, arrêtez)

Sinon :

  1. Trouvez le(s) candidat(s) avec le moins de votes
  2. Supprimez le(s) candidat(s) avec le moins de votes de tous les votes

Si les votes sont maintenant tous vides

  1. Signalez l’égalité des candidats qui viennent d’être retirés (plus de tours, arrêtez)

Sinon

  1. Remontez tous les votes de sorte que là où la 1ère place était occupée par un perdant (pour un électeur spécifique), le candidat de 2ème place devienne son 1er choix.

Et les tours continuent jusqu’à ce qu’une majorité ou une égalité soit trouvée.

6 « J'aime »

Merci @merefield !
C’est exactement ce dont j’avais besoin !

3 « J'aime »

Est-il possible d’exporter les résultats de chaque sondage de différents canaux à des fins de reporting ?

1 « J'aime »

Vous pouvez le faire avec l’explorateur de données. J’ai demandé à l’IA :
« Est-il possible d’exporter les résultats de chaque sondage de différents canaux à des fins de reporting en utilisant l’explorateur de données » et elle m’a donné cette requête :

SELECT  
    p.topic_id, 
    p.name AS poll_name,
    o.id AS option_id, 
    o.html AS option_text, 
    COUNT(v.id) AS vote_count
FROM polls p
JOIN poll_options o ON p.id = o.poll_id
LEFT JOIN poll_votes v ON o.id = v.poll_option_id
GROUP BY p.topic_id, p.name, o.id, o.html
ORDER BY p.topic_id, p.name, o.id;

cela semble pouvoir fonctionner ?

1 « J'aime »

Salut @pfaffman,

Merci beaucoup pour votre réponse rapide et votre aide !

Je vais essayer la semaine prochaine, mais il est plus probable que je ne puisse essayer qu’après les fêtes.

Je reviendrai avec un retour d’expérience une fois que j’aurai pu l’essayer.

De plus, merci beaucoup, encore une fois !

1 « J'aime »

Bonjour, j’ai une question concernant les sondages.

Est-il possible d’utiliser du HTML ou du CSS pour les rendre plus attrayants que leur apparence standard ?

Merci d’avance.

L’avez-vous essayé dans l’inspecteur de votre navigateur ? (Clic droit et Inspecter) Si vous pouvez le faire là-bas, alors oui.

Cependant, Polls utilise Chart.js, donc beaucoup de choses vectorielles.

Cela dépend vraiment de ce que vous voulez changer.

3 « J'aime »

C’est un sondage de classement. Et le bouton pour faire le choix doit être à gauche du texte lorsque le texte est trop long. Maintenant, le texte est sous le bouton et j’aimerais que le texte soit complètement à droite et que le bouton soit aligné sur le texte à gauche.

Salut à tous,

Quelqu’un sait s’il est possible d’inclure, d’une manière ou d’une autre, une saisie de texte dans le sondage ? Par exemple, pour que l’électeur justifie la raison pour laquelle une option spécifique a été choisie ?

1 « J'aime »

« commenter ci-dessous » ?

Autre que commenter dans le sujet, non.

1 « J'aime »

Je vois. Merci @merefield, j’essayais d’obtenir un retour écrit qui pourrait être exporté avec les résultats du sondage.

1 « J'aime »


Pourquoi le sondage n’apparaît-il pas dans le fil d’actualité ? Il n’apparaît que lorsqu’on clique dessus.

2 « J'aime »

Ah, je pense que c’est une limitation des sondages/extraits de sujets. Je ne pense pas qu’il soit actuellement possible de les afficher en dehors de l’espace principal du sujet.

3 « J'aime »

Merci pour la réponse
bsp!

3 « J'aime »