evaera / Votum

A Discord bot for managing small party voting systems
https://eryn.io/Votum
MIT License
25 stars 14 forks source link

Progress channel mode #24

Open unix-system opened 4 years ago

unix-system commented 4 years ago

There should be an option for votes to be displayed in a form similar to Poll Dancer, where instead of the voting progress being displayed every time someone makes a vote (which can cause a lot of clutter in the debating channel), a dedicated proposal channel holds that same information, but edits that message every time someone changes their vote - which could be handled either when:

  1. A user votes through !aye / !nay / !abs commands, and a smaller acknowledgment is displayed; or
  2. A user votes through reactions, if enabled by the Votum Admin, which will update the vote - only available for voting options that do not require a reason attached.

I could also work on a PR for this if you're interested!

evaera commented 4 years ago

I was thinking about this recently actually. I was thinking about adding a poll command to Votum to replace Poll Dancer, and allowing emoji reactions for votes and essentially being more of a "chill mode" - poll doesn't end when a majority is reached and instead only has a set time, allows multiple options, and doesn't require reasons.

2 has been open since Votum came out, and I still think having a list of options instead of just yes/abs/no would be a good idea, I'm just not sure the best way to implement this from a user experience perspective.

Other Votum users have suggested having the bot delete the vote messages and only edit the initial motion. However I don't think that this is the most elegant design choice. So perhaps having a motion.display.channel option would be a good alternative to this.

I want to find a way to reconcile all of these ideas with an elegant design.

unix-system commented 4 years ago

I think that, for ease of use at least, it should be a per-channel configuration what the vote mode is. I actually made my own voting bot for a while, but it wasn't very flexible and had some horrible hard-coded magic numbers. It was based off of a mix of Poll Dancer and Votum, but a bit more of a passive system.

Here is the early prototype photos for that (not exposing group votes!):

Image of Proposal

And for outcomes:

Image of Outcome

I think we're on the same page regarding a motion.display.channel option, creating static channel that is edited to show the vote status, parallel to the vote system? If so, that'd be a great solution I think.

evaera commented 4 years ago

Yeah. motion.display.channel, when set, would have to store the message ID inside the motion data and then edit it whenever the motion changes, and only send a very small one-line embed response to votes in the voting channel.

I will make another issue for the poll mode I was talking about