[x] Report generation (csv file creation - can do with ActiveAdmin?)
[x] Add award_title to csv file and sort for easier vote counting
[x] Populate "viewed productions" fields on ballot
[x] Add a confirmation page for Member after they "Update Ballot" (i.e., "Your nominations have been saved")
[x] Add "number of productions attended" to each member's nominations (ballot)
[ ] Work on extras
[x] Deploy to Heroku (for staging use the path: tag-voting-staging)
[x] In Admin Dashboard, instruct need to create voting period before sending email to member (error will occur if no voting period has been set)
[x] Thorough code review with Sumeet
[x] "Bootstrap it"
[x] Add a default homepage route (admin)
[x] Add style to production alert message ("must have one box checked")
[ ] Deploy to Heroku (for production)
Code Review - To Do List
[x] ballot.rb remove the .to_s method
[x] @member.ballots.last should read @member.ballots.current (custom method for current)
[x] add a method in ballot class - 'voting_period_closed?' (returns true or false) (change in members_controller)
[x] error page for member who types in gibberish (find)
[x] typo in confirmation.html.erb (received)
[x] must have productions_seen > 0 in order for nominations to count (display error message if no boxes checked)
[x] method in ballot class - 'has_seen?(production_id)'
[x] e.award_title in nominations.rb (active admin) - determine if there is a way to do eager loading
EXTRAS
[ ] TAG members should be able to update their contact information.
[x] Administrators should be able to export the contact information of all members as a spreadsheet (suitable for mail-merge, etc).
[x] Members should be able to view their own ballots (at any time) and edit their ballots within the voting period. This would allow for a user to partially complete a ballot and then return to it later.
[x] Administrators should be able to export all ballots in a convenient format (spreadsheet?)
[x] TAG members should be able to update their list of shows attended as the year progresses, or at least should be able to submit such a list once (instead of once for each ballot -- the second time they cast a ballot, they would simply confirm or modify the pre-existing list instead of rebuilding it from scratch).
[ ] Even though the nomination and vote-counting process will still be human-controlled, mechanical verification is useful.
[ ] The voting ballots should work equally well on both conventional computer screens and on mobile devices.
[ ] TAG members who prefer paper ballots could print out the ballots (from the link) as a well-formatted PDF, which they could then print and mail in. Since TAG members would be responsible for making this decision, their anonymity would not be compromised. This paper ballot should still have the secret ID number.
Voting Period Setup
An administrator updates the list of shows from the previous year.
An administrator adds the email addresses of TAG members that are not yet in the system.
An administrator removes from the system any users who are no longer TAG members.
Nominations
Once it is time for nominations to go out, an administrator sends a link to the nomination form to each member. The link uses a unique token, so the user doesn't have to log in to view their ballot.
Each TAG member clicks the unique permalink in the email they received and fills out their nominations. They also indicate which shows they attended.
Administrators can view each ballot as well as the number of shows the member submitting that ballot attended. (When they view a ballot, they can only see the secret ID of the voter -- not the voter's identifying information.)
Administrators then hand-compile the list of award nominees from the nominations and create that list in a ballot-builder (not related to this project).
Final Voting (Not w/i the scope of this project)
Administrators send out the final awards ballot to all TAG members, who then vote online.
Administrators should be able to view anonymized individual ballots as well as aggregate ballot reports.
An administrator tallies the votes by hand.
Everyone has a fancy gala (this is not a feature of the software).
This is almost exactly the same as the existing workflow, except that ballots are sent out via email (or, rather, links to ballots are sent out via email) and filled out electronically.
Administrators should be able to open and close the voting period.
Administrators should be able to add and remove TAG members from the roster, as well as edit their information.
Administrators should be able to re-send the ballot link to any member who has requested it.
Administrators should be able to add shows to the year’s list of shows.
Administrators should be able to start a new year worth of shows (and nominations, and awards). (This is basically another way to describe the first 'should' case in this list.)
Administrators should be able to view all ballots in a conveniently organized format.
TAG members should be able to view and submit their secret ballot.
Code Review - To Do List
EXTRAS
Voting Period Setup
Nominations
Final Voting (Not w/i the scope of this project)