Skip to content

Instantly share code, notes, and snippets.

@relrod
Created October 16, 2009 00:34
Show Gist options
  • Save relrod/211433 to your computer and use it in GitHub Desktop.
Save relrod/211433 to your computer and use it in GitHub Desktop.
# vim:ts=3 shiftwidth=3
# Three sets of "###" (i.e. ### ### ###) means *IMPORTANT*
We want site administrators to be able to create polls, which only students in
grades that they (administrators) select can vote in.
There are going to be four groups. *always*.
- G-1: 9th grade
- G-2: 10th grade
- G-3: 11th grade
- G-4: 12th grade
This is broken down into three steps, or 'sub-apps':
- Nominations:
Administrative Actions:
These can basically be thought of as polls with the student body
as nominations. However, they will probably be done differently,
using a real django app (in the same project, of course).
'nominate' will be set up in the following way:
:: Administrator logs in, clicks new poll
:: Administrator chooses all groups allowed to nominate
:: Administrator chooses all groups of possible nominations
:: Administrator chooses the date which nominations open/close
:: Administrator hits submit, poll opens if it's supposed to.
* The poll open/close date is simple. If the current date is past
the close date, or before the open date, don't allow any voting ;).
Otherwise, allow it.
Student Actions:
Students will go to /nominate and see:
- Form to enter their student ID.
- When they enter their ID, as soon as it reaches 5-chars, we
start doing (AJAX) checks on every character input.
As soon as it matches a student ID, we inform the user
that it's valid. If after ~2 seconds it doesn\'t match,
show a red box, and the error (non-numeric, no match, etc).
- Form to enter the name of a candidate.
- This form *SEARCHES*, nothing in this form can submit as a
real nomination. EVER. BAD. ETC. NO! ### ### ###
- AJAX...More on this later.
- Submit button which runs a bunch of checks, and submits it.
- How do we do these checks in django? Are they necessary?
- Vote:
Administrative Actions:
:: Administrator logs in, goes to the current nomination
:: Administrator closes the nomination, if it is not already.
:: Administrator sees a list of all nominations, highest-count first,
and a checkbox and textfield next to each.
- He/she can select this nomination to be entered into the poll.
- He/she *must* edit the textfield to put the position.
- Shortcuts like 'q' and 'k' for king/queen, might not be a
bad idea.
:: Nominations are entered into the poll, at the touch of the Submit
button.
:: Administrator is sent to the poll options form, where he/she can
select poll-specific things, like duration.
:: Administrator then goes into the poll in the ACP, and opens voting.
Student Actions:
## TBA
- Viewing Votes:
Administrative Actions:
## TBA
Student Actions:
-- NONE --, this is part of the ACP only :)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment