On Thu, Jun 28, 2012 at 01:23:08PM -0700, Toshio Kuratomi wrote:
elections app* TG1 has a TG2 branch and
ianweller
trying a flask branch for
comparison
A bit of discussion on this, just to get it out of my head and written
down somewhere...
What I'm working on can no longer really be described as a "branch" but
more of a rework. I'm taking advantage of rewriting the application for
a new framework in order to fix what (I believe) are some issues with
the current voting platform (and please correct me if I'm wrong about
any of these, because I'm not used to reading TG code and most of my
knowledge of the code has been because of grep):
- Elections cannot be run without the intervention of an election admin
- The concept of an election admin is not well implemented in code
- Election admins are limited to entire FAS groups, as opposed to FAS
users or role requirements within FAS groups
- Range voting is the only supported system to run an election
- The interface for range voting is not especially user-friendly
- Election results must be produced and unembargoed by someone with
access to the database (and knowledge of producing them)
Some things I'm planning on doing specifically to alleviate the above:
- Elections may be created by anyone with a FAS account, through the web
interface
- In order for the election to show up on the home page, someone in
the FAS elections group has to mark it as such
- Election admins are configurable by adding FAS users or groups
- Election admins can see results at the end of the voting period and
unembargo them
- There will be a documented method for creating new election types
- I will find some way to make the range voting interface make more
sense to people without having to think about it
Comments requested -- especially regarding things you would change about
our current elections app.
--
Working on this also led to Flask-FAS [1], a Flask extension for
handling FAS logins, using python-fedora's FasProxyClient. I wouldn't
quite consider the API stable quite yet so don't go using it in
production expecting it to stay the same.
[1]:
http://git.fedorahosted.org/git/?p=flask-fas.git;a=summary
There's a lot of extra code that goes into making Flask-FAS usable in an
application but they require design decisions on the part of the
application developer, so I will be hacking together a small sample app
and putting it in flask-fas.git shortly after sending this email.
--
Ian Weller <ian(a)ianweller.org>