-
Notifications
You must be signed in to change notification settings - Fork 0
Elections Module
Here is the current relevant schema with proposed changes:
Here's how it works.
##Elections
- When there's an Election for a new
Board(theGrouptype, not the "Board of Directors"), or a newAward(also aGrouptype, see below) anElectionobject is created (via the Admin panel). It provides the necessary dates andRoles for the election. - By default, an
Election'sRoles are pulled from itsto_grouptype, and a list of nominatableUsers (orRoles, see below) is provided by thefrom_group. - Any undesired
Roles may be removed from theElectionby an admin. - When a user looks at an
Election's page she sees a listing of all of itsRoles, and in eachRoleshe sees a listing of allNominations for aPositionin thatRole, as well as a form to enter her ownNominations(depending on the date: maybe she only sees "Vote" links, or no links at all for anElectionthat's over) - When she nominates someone for a new
Position, three things are created-
Nominationlinks her name to her opinion, and gives her a place to comment -
Positionlinks the nominee to theRoleandGroup, and gives the nominee a place to put a platform (in the form of aDocumentuploaded to thePosition'sGroup).Positionalso links upstream to theElection(note though thatElectionmust go throughElectionRoleandRoleto get toPosition). -
NominationPositionassociates herNominationto the relevantPosition
-
- A link is available to the nominee to accept or deny the
Nomination - A link is available to the nominee to upload a "platform".
- A link is available to all users to "second" or "vote" on a
Nomination, depending on theElection's dates. - All "denied"
Nominations are displayed below others in theRolelisting, so thatUsers know what not to nominate - All "accepted"
Nominations are displayed above others in theRolelisting - The
Elections index will show a listing of allElections, and provide links to the results, or voting booths, as necessary - When a
Nominationis made and thePositioncreated,Position's "elected" and "resigned" dates are populated from theElection.
###ElectionRole Options
In some cases, more than one person may be nominated for a Position (ie "Scott Wasserman and Caity Pitts for Best Onstage Couple"). In other cases, an entire group of people may be nominated (ie "The Cast of Me And My Girl for Best Ensemble Cast"). In yet others, only one is allowed ("Will Weiner for President"). The multiple? and mass? columns of the ElectionRoles specify this model.
If the ElectionRole is mass-nominatable then that category in the election will pull from the from_group's Roles. An ElectionRole is mass-nominatable if and only if the Election's from_group and to_group are of the same type. When a mass nomination is created, all positions from the old Role are duplicated into the new Role.
ElectionRole specifies the number of finalists as well, the default being 0, which signifies that all seconded and accepted nominations will continue to the voting round.
###Dates
- Before an
Election: The page says "this election is not open yet. Check back on mm/dd/yy!" - After
open_datebut beforevote_date:Electionis open for newNominations - After
vote_datebut beforeclosed_date:Electionis closed for newNominations, current accepted, secondedNominations are displayed for voting. - After
closed_date: The page shows the results of theElection
##Awards
Awards are really not that special. I mean from a schema point of view. For instance: "Kudos Awards" is of type Award, which inherits form Group. Admin starts a new Election from Group "Scotch'n'Soda" to Group "Kudos Awards". elected_date is set to Woodscotch this year, resigned_date is set to Woodscotch next year. open_date, vote_date and closed_date are set accordingly. Election instance is saved, which triggers:
App goes out and finds all Roles applicable for a Group of the same type as the Election's to_group. Each of these Roles is associated with a new ElectionRole object, which also associates to the Election. The list is presented to the admin for input on the options, like deleting the ElectionRole entirely (making that role unavailable in the election), as well as multiple, mass and num_finalists. Admin checks over all this, and clicks the big green button.
Roles for an Award group include things like "Best Lead Actor", "Cutest Couple" etc.
When the "election" is all said and done, the user will have a position in the "Kudos Awards" group! It may be desired to put a user's Award positions in a different spot, or styled differently somehow, than his other positions.
##Things Left Unmodeled
- write-ins
- electing new awards, resigning old awards
- some
Positions have different "elected" and/or "resigned" dates than others - privileges: "published" state?
- privileges: who can create
Elections? - privileges: "secret elections"
