Advice on implementing new counting methods for Score and Ranked Choice?
I would like to take advantage of the Ranked and Score loomio polls to implement other vote counting methods. The immediate needs of the organization I'm working with are for Proportional Representation, so Single Transferable Vote and Reweighted Range Voting are my top priorities. I am starting to dig into the code base to figure out how to develop plugins, but I am interested in any advice that those with more loomio development experience than I might be able to provide.
So far as I can tell, currently any winner selection is done manually, and all that is currently implemented is totalling of scores or Borda points. I have developed reference implementations of a collection of voting systems ( https://github.com/sanedragon/every-election-system/ ) but I'm a little overwhelmed figuring out how to tie into loomio. Any advice anyone can offer would be much appreciated!
I have actually done that very thing, parsing out the data from the stances API and text-processing it into scala code that works with my elections systems library. That can be a fall-back solution if I am unable to accomplish what I intend, but having display of the results integrated with the voting system is a very nice feature. I have through July to get this done, so I think I'll see what I can do with regards a loomio patch.
That's awesome. We have no plans to break the API, but we are currently rewriting the UI, which will mean all the current plugins that have UI code will break in a big way. Fortunately there are no such third party plugins that we're aware of currently.
We do intend to offer a simple GET CSV for polls shortly though, so parsing should be much simpler
Great to see!
While you're under the hood, it'd be great if you can get the Range Voting feature to support blanks ('no-op'), a critical feature for optimal outcomes.
Also needed, is support for an actual 'range' of values, not just a few predefined integers but any ratio (or at least floats); ideally with the option to hide numbers altogether and just vote with sliders.
Looking forward to seeing your code!
Wowzers!
We've never had people asking for these counting systems before - most of our users say they're too complex.
Our polls are not implemented with plugins, and I would not recommend you try to use the plugin system to write new polls. It adds a lot of complexity to the job.
Actually, lemme suggest another approach.
I've been feeling that our data export functions need a clean up. Ideally you would be able to export any group, thread or poll as HTML, CSV, or JSON. If you had the CSV data for a poll, then you could calculate your results without having to write loomio specific code.
How does that sound as a starting place, @dagarneson ?