Discourse Topic Voting

:discourse2: Summary Discourse Topic Voting gives the ability to vote on topics in a specified category.[1]
:hammer_and_wrench: Repository Link https://github.com/discourse/discourse-topic-voting
:open_book: Install Guide How to install plugins in Discourse

Features

To enable it, edit any category, look on the settings tab for the “Allow users to vote on topics in this category” checkbox:

Once enabled, a “Votes” item is available in the top menu. The topics in that category can be voted on with the count of votes added next to the topic title.

The vote count is also included next to the title when scrolled.

To make it easier to see vote counts from a topic list, the vote count is also added under the topic titles.

Here are the views you’ll see given different states of the user and topic:

There is also a section in the user’s profile page that displays their active votes:

Configuration

A few points about the backend:

  • The number of active votes is configurable and defaults to 10.
  • If the topic is closed or archived, the votes are released to the users and can be applied to other topics but the vote count on the topic remains.
  • If a topic is re-opened or unarchived, the votes are reclaimed and applied back to the users active vote count.
  • If a topic reclaims the votes of a user and they go over their limit, they simply need to wait until topics are closed or archived to allow them to vote again.

CHANGELOG

TODO

  • Create a section for the user to see their active and archived votes.
  • Allow moderators/staff/admins to see who has voted on a topic.

NOTES

In the categories where the Voting plugin is activated, Likes are automatically deactivated. Some sites may want to use both functions at the same time to like replies, see how to re-enable Likes.

EXTRAS

Data Explorer Queries

List people who voted for a topic along with their email addresses:

--[params]
-- int :topic_id

SELECT
dvv.user_id,
email
FROM discourse_voting_votes dvv
JOIN user_emails ue ON ue.user_id = dvv.user_id
WHERE topic_id = :topic_id
AND ue.primary = true

  1. and is the result of this spec put together by @erlend_sh ↩︎

119 Likes
Suggestion: display vote/like counter in main page
Displaying "Likes" more prominently
Plugin: Feature voting separated from Likes
Building an Amazon Discourse pilot, planning for scale
Two new plugin outlets - user_activity_bottom and user_menu_glyphs
Overwriting controllers in plugin
Are there Upvotes/Downvotes, Score for the Posts?
Alternative Voting Category Style
Thoughts on a plugin which turns discourse into stackoverflow
Voting vs Likes for feature requests
Votes not being released after close
Question Answer Plugin
Mounting widget in raw template?
Poll in restricted topic where users can’t reply
Some things I've built which you can use
How can I make a Discourse forum as "reddit like" as possible
Discourse as a Virtual Conference Platform
UserVoice vs Discourse
Introducing ProCourse
Marked as solved, Vote Replenishing & Querying
'How's my driving' plugin?
Sort topics on frontpage daily by Votes
A new versioned API for client side plugins
Looking to switch from Vanilla, and have a few questions
Notice: testing Discourse Reactions here on meta for 1 week!
New Theme: Tag-Pages Navigation
Show votes in post list "totals" columns
Multiple Choice Poll questions
Is there any plugin for downvoting questions and replies in Discourse
Is Decision Making Possible on Discourse?
Advice for getting my little game dev community "out there?"
I need someone who can install a voting plugin
Approach to a Nominate Post Button?
Comment on a question instead of answering it
Ranking of post, based on user upvotes
Question Answer Plugin
Some plugins not working after upgrade
Views counter specification
Excluding Suspended, Silenced and Suspect Users When Exporting
Additional Appreciation buttons next to "Likes": "Insightful", "Actionable"
Topic Voting plug-in
Error installing this plugin
Multiple topics in single API request
Hook for a topic's category id?
Delegate poll votes to another person/persons
Can posts be rated or voted on?
Is it possible to do Uservoice style voting with the voting plugin
Plugin post-voting conflicts with previous question-answer-plugin
Unable to see 'Like' button in the first post/topic
Available settings within the category edit page
Customize # of Votes per User
Prospective Feature: Highlight Posts That Surpass Defined "Likes" Threshold
Why do official plugin topics auto-delete responses?
Show total votes next to total replies, views and activity columns
Feature request: daily-limit mode for Voting Plugin
"Like this post" not available for some categories
Restricting poll creation to Trust Levels
How to re-order (or hide) "Votes" and "My Votes" top menu list items?
Would it be possible to store voting data in a json file?
Wanted: Discourse Hacker News Plugin
Muted topics still notifying me on Meta
New Theme: Tag-Pages Navigation
Please update 'Understanding Discourse Trust Levels' — or is there a different doc?
Plugin: Feature voting separated from Likes
ProCourse Support
"like" button on first post
Feature request: Poll with ability for user to add their own options
Topics that were voted on disappear from user profile after being closed
Trust Level Permissions Table (inc Moderator Roles)
Please help with the Discourse Voting Plugin
Voting/ideation feature
Promote or demote suggestions
Rake task for merging users
Liking own posts — a specific use case of discourse
A tour of how the Widget (Virtual DOM) code in Discourse works
Ratings instead of Hearts for Likes

This is a brilliant plugin, thank you.

Could there be an option for people who vote on a thread to automatically become subscribed (tracking and/or watching)? We use this for tracking feature requests, but then find people miss out on notifications.

2 Likes

I’ve also noticed that if I use these below category settings, this makes the “Latest” tab show sorted by the most votes instead of the latest and therefore you cannot see the latest topics at all. Is this a bug or something I’m doing wrong?

I’d like the category by default to be sorted by votes (desc), with users having the option to sort by latest if they’d like to. Thanks.

As part of the renaming for the Discourse Post Voting plugin we have also now renamed this one to compliment it. :partying_face: :slightly_smiling_face:

So I hereby officially welcome you all to the Discourse Topic Voting plugin. :tada::balloon::champagne:

8 Likes

Is there a way to filter search results in a category by number of votes and date. Trying to clean up a feature request category that has thousands of topics.

Just looking for feature request best practices, or seeing what items are a year old that have no votes etc…