-
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
(theGroup
type, not the "Board of Directors"), or a newAward
(also aGroup
type, see below) anElection
object is created (via the Admin panel). It provides the necessary dates andRole
s for the election. - By default, an
Election
'sRole
s are pulled from itsto_group
type, and a list of nominatableUser
s (orRole
s, see below) is provided by thefrom_group
. - Any undesired
Role
s may be removed from theElection
by an admin. - When a user looks at an
Election
's page she sees a listing of all of itsRole
s, and in eachRole
she sees a listing of allNomination
s for aPosition
in 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 anElection
that's over) - When she nominates someone for a new
Position
, three things are created-
Nomination
links her name to her opinion, and gives her a place to comment -
Position
links the nominee to theRole
andGroup
, and gives the nominee a place to put a platform (in the form of aDocument
uploaded to thePosition
'sGroup
).Position
also links upstream to theElection
(note though thatElection
must go throughElectionRole
andRole
to get toPosition
). -
NominationPosition
associates herNomination
to 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"
Nomination
s are displayed below others in theRole
listing, so thatUser
s know what not to nominate - All "accepted"
Nomination
s are displayed above others in theRole
listing - The
Election
s index will show a listing of allElection
s, and provide links to the results, or voting booths, as necessary - When a
Nomination
is made and thePosition
created,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 ElectionRole
s specify this model.
If the ElectionRole
is mass-nominatable then that category in the election will pull from the from_group
's Role
s. 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_date
but beforevote_date
:Election
is open for newNomination
s - After
vote_date
but beforeclosed_date
:Election
is closed for newNomination
s, current accepted, secondedNomination
s 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 Role
s applicable for a Group
of the same type as the Election
's to_group
. Each of these Role
s 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.
Role
s 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
Position
s have different "elected" and/or "resigned" dates than others - privileges: "published" state?
- privileges: who can create
Election
s? - privileges: "secret elections"