Re: [elections-devel] Fedora Election Guide
by Nigel Jones
On Wed, 2008-10-08 at 22:05 -0400, David Nalley wrote:
> Hi Nigel,
>
> I'll be happy to help you with what I can on this - I cloned the repository.
> Obviously I've voted in past elections - but I'll try and use what is
> coming up ahead of time to get a sense of what needs to change in the
> guide.
Hi David,
Thanks!
I've added you to the commit group so you can push in changes, I'd
recommend that you join
https://fedorahosted.org/mailman/listinfo/elections-devel as well
(commit e-mails for both the guide and the app go there) and hopefully
I'll be a bit more active in discussing plans etc.
I'm sure the basic phrasing of some of the instructions could be
improved a lot, as for upcoming changes, the real biggie is adding the
support to handle nominations within the application, the work flow from
a technical POV is going to be something like:
1. User requests /nominate/eid
2. User gets a page containing:
* A notice if he/she is logged in and has been nominated
* A list of candidates (if any)
* A list of groups that are allowed to be nominated/can vote
* A form that allows someone to nominate another person/self
nominate
3. Form gets submitted to /nominate/submit
4. /nominate/submit processes data, sends an e-mail to the person
nominated & nominator, also if requested to the body holding the
election
5. Nominated person goes to /nominate/accept, logs in and has a list of
nominations he's received
6. He/she can either Accept, with a campaign statement/blurb, or Reject
(optionally with a reason on why)
7. He/she can reaccept if they want to, but only before the nominations
period ends
(eid = alias or id number of the election btw)
The work flow that a user sees, will be similar, but in most cases, only
2. 4. 5. and 6. are really of interest from a end users/documentation
POV. Hopefully I'll have the ground work of this in today/tomorrow.
If you plan on taking any screenshots etc be aware that they may need to
be replaced etc as I'm thinking of asking the Art Team to spruce it up a
little, but once that's done, I'll get a test instance up that you can
access to do all this.
Sound good?
-- Nigel
--
Nigel Jones <dev(a)nigelj.com>
15 years, 7 months
en-US/Appendix.xml en-US/Book_Info.xml
by Nigel Jones
en-US/Appendix.xml | 1 +
en-US/Book_Info.xml | 1 +
2 files changed, 2 insertions(+)
New commits:
commit d7d179aa5155da50bc93ff8b020db004d733a13f
Author: Nigel Jones <dev(a)nigelj.com>
Date: Thu Oct 9 18:03:37 2008 +1300
Okay, lets try this, the book builds again
diff --git a/en-US/Appendix.xml b/en-US/Appendix.xml
index 76447d9..b6b79af 100644
--- a/en-US/Appendix.xml
+++ b/en-US/Appendix.xml
@@ -8,6 +8,7 @@
</appendixinfo>
<title>Revision History</title>
<para>
+ Testing 123
</para>
</appendix>
diff --git a/en-US/Book_Info.xml b/en-US/Book_Info.xml
index 6042dfe..a69e5dc 100644
--- a/en-US/Book_Info.xml
+++ b/en-US/Book_Info.xml
@@ -3,6 +3,7 @@
]>
<bookinfo id="book-Fedora_Elections_Guide-Fedora_Elections_Guide">
+ <title>Fedora Elections Guide</title>
<subtitle>Fedora Elections Guide</subtitle>
<edition>0.1</edition>
<pubsnumber>1</pubsnumber>
15 years, 7 months
0 commits -
by Nigel Jones
0 files changed
New commits:
15 years, 7 months
0 commits -
by Nigel Jones
0 files changed
New commits:
15 years, 7 months
elections/templates
by Nigel Jones
elections/templates/about.html | 67 ++++++++++++++++++++++++-----------------
elections/templates/index.html | 24 +++++++-------
elections/templates/vote.html | 54 ++++++++++++++++-----------------
3 files changed, 79 insertions(+), 66 deletions(-)
New commits:
commit 4d62fc13ac8650de755aeefd8577311b259d74a3
Author: Nigel Jones <dev(a)nigelj.com>
Date: Wed Oct 8 17:34:04 2008 +1300
Update to about.html to start nomination stuff, also dos2unix a heap of files...
diff --git a/elections/templates/about.html b/elections/templates/about.html
index d9fcc0c..44655ef 100644
--- a/elections/templates/about.html
+++ b/elections/templates/about.html
@@ -1,27 +1,40 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:py="http://genshi.edgewall.org/"
- xmlns:xi="http://www.w3.org/2001/XInclude">
- <xi:include href="master.html" />
- <head>
- <title>${appTitle} -- Election Information</title>
- </head>
- <body>
- <h1>${election.shortdesc}</h1>
- <p>${election.description}</p>
- <p py:if="election.url"><a href="${election.url}">[More Information]</a></p>
- <table border="1" cellpadding="1">
- <tr py:for="candidate in candidates">
- <td><py:choose test="election.usefas"><py:when test="0">${candidate.name}</py:when><py:when test="1">${usernamemap[candidate.id]}</py:when></py:choose> <small py:if="candidate.url"><a href="${candidate.url}">[info]</a></small></td>
- </tr>
-<!-- !This link is okay, but one should appear if the election has public results -->
- <tr>
- <td><a href="${tg.url('/vote/' + election.alias)}">Vote Now!</a></td>
- </tr>
- </table>
- <p>To vote in this election you must be a member of any one of the following groups:</p>
- <ul>
- <li py:for="g in votergroups"><py:choose test="g.group_name == 'anyany'"><py:when test="0"><py:choose test="g.group_name == 'anycla'"><py:when test="0">${g.group_name}</py:when><py:when test="1">Any non-CLA Group</py:when></py:choose></py:when><py:when test="1">Any Group</py:when></py:choose></li>
- </ul>
- </body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <xi:include href="master.html" />
+ <head>
+ <title>${appTitle} -- Election Information</title>
+ </head>
+ <body>
+ <h1>${election.shortdesc}</h1>
+ <p>${election.description}</p>
+ <p py:if="election.url"><a href="${election.url}">[More Information]</a></p>
+ <table border="1" cellpadding="1">
+ <tr py:for="candidate in candidates">
+ <td><py:choose test="election.usefas"><py:when test="0">${candidate.name}</py:when><py:when test="1">${usernamemap[candidate.id]}</py:when></py:choose> <small py:if="candidate.url"><a href="${candidate.url}">[info]</a></small></td>
+ </tr>
+ <py:choose test="curtime > election.end_date"><py:when test="0">
+ <py:choose test="election.start_date > curtime"><py:when test="0">
+ <py:choose test="election.allow_nominations"><py:when test="1">
+ <tr>
+ <td><a href="${tg.url('/nominate/' + election.alias)}">Nominate Someone!</a></td>
+ </tr>
+ </py:when><py:when test="1">
+ <tr>
+ <td><a href="${tg.url('/vote/' + election.alias)}">Vote Now!</a></td>
+ </tr>
+ </py:when></py:choose>
+ </py:when></py:choose>
+ </py:when><py:when test="1">
+ <tr>
+ <td><a href="${tg.url('/results/' + election.alias)}">Show Results!</a></td>
+ </tr>
+ </py:when></py:choose>
+ </table>
+ <p>To vote in this election you must be a member of any one of the following groups:</p>
+ <ul>
+ <li py:for="g in votergroups"><py:choose test="g.group_name == 'anyany'"><py:when test="0"><py:choose test="g.group_name == 'anycla'"><py:when test="0">${g.group_name}</py:when><py:when test="1">Any non-CLA Group</py:when></py:choose></py:when><py:when test="1">Any Group</py:when></py:choose></li>
+ </ul>
+ </body>
+</html>
diff --git a/elections/templates/index.html b/elections/templates/index.html
index 312da00..73d2e09 100644
--- a/elections/templates/index.html
+++ b/elections/templates/index.html
@@ -1,12 +1,12 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:py="http://genshi.edgewall.org/"
- xmlns:xi="http://www.w3.org/2001/XInclude">
- <xi:include href="master.html" />
- <head>
- <title>${appTitle}</title>
- </head>
- <body>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <xi:include href="master.html" />
+ <head>
+ <title>${appTitle}</title>
+ </head>
+ <body>
<table>
<tr>
<th></th>
@@ -22,6 +22,6 @@
<td><a href="${tg.url('/about/' + str(election.alias))}">More Information</a></td>
<td><a py:if="curtime > election.end_date" href="${tg.url('/results/' + str(election.alias))}">Results</a></td>
</tr>
- </table>
- </body>
-</html>
+ </table>
+ </body>
+</html>
diff --git a/elections/templates/vote.html b/elections/templates/vote.html
index 66dd80d..8ee3ee8 100644
--- a/elections/templates/vote.html
+++ b/elections/templates/vote.html
@@ -14,37 +14,37 @@
else:
return "vtcold"
?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml"
- xmlns:py="http://genshi.edgewall.org/"
- xmlns:xi="http://www.w3.org/2001/XInclude">
- <xi:include href="master.html" />
- <head>
- <title>${appTitle} -- Cast Your Vote</title>
- </head>
- <body>
- <h1>${election.shortdesc}</h1>
- <p>${election.description}</p>
- <p py:if="election.url"><a href="${election.url}">[More Information]</a></p>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:py="http://genshi.edgewall.org/"
+ xmlns:xi="http://www.w3.org/2001/XInclude">
+ <xi:include href="master.html" />
+ <head>
+ <title>${appTitle} -- Cast Your Vote</title>
+ </head>
+ <body>
+ <h1>${election.shortdesc}</h1>
+ <p>${election.description}</p>
+ <p py:if="election.url"><a href="${election.url}">[More Information]</a></p>
<div>
- <form action="${tg.url('/vote/' + str(election.id))}" method="post">
- <table border="1" cellpadding="1">
- <tr py:for="candidate in candidates">
- <td><py:choose test="election.usefas"><py:when test="0">${candidate.name}</py:when><py:when test="1">${usernamemap[candidate.id]}</py:when></py:choose> <small py:if="candidate.url"><a href="${candidate.url}">[info]</a></small></td>
+ <form action="${tg.url('/vote/' + str(election.id))}" method="post">
+ <table border="1" cellpadding="1">
+ <tr py:for="candidate in candidates">
+ <td><py:choose test="election.usefas"><py:when test="0">${candidate.name}</py:when><py:when test="1">${usernamemap[candidate.id]}</py:when></py:choose> <small py:if="candidate.url"><a href="${candidate.url}">[info]</a></small></td>
<py:if test="nextaction=='vote'">
<td><select name="${candidate.id}">
<option py:for="option in range(0,len(candidates)+1)" value="$option">$option</option>
</select></td>
- </py:if>
+ </py:if>
<py:if test="nextaction=='confirm'">
<td><input type="hidden" name="${candidate.id}" value="${voteinfo[candidate.id]}" /><div class="${gradient(len(candidates),voteinfo[candidate.id])}">${voteinfo[candidate.id]}</div></td>
- </py:if>
- </tr>
- <tr>
- <td><input py:if="nextaction=='confirm'" type="button" value="Go Back" onClick="history.go(-1)" /></td>
- <td><input type="submit" name="${nextaction}" value="Submit" /></td>
- </tr>
- </table>
+ </py:if>
+ </tr>
+ <tr>
+ <td><input py:if="nextaction=='confirm'" type="button" value="Go Back" onClick="history.go(-1)" /></td>
+ <td><input type="submit" name="${nextaction}" value="Submit" /></td>
+ </tr>
+ </table>
</form>
</div>
<div>
@@ -53,6 +53,6 @@
<p>To cast your vote in this election simply select a value between 0 and ${len(candidates)} with 0 as 'least or no preference' and ${len(candidates)} as 'highest preference'.</p>
<p>At the end of the election, the highest ranking candidate(s) are marked as the winners.</p>
<p>For more information about Range Voting, visit the <a href="http://rangevoting.org/">Center for Range Voting</a>.</p>
- </div>
- </body>
-</html>
+ </div>
+ </body>
+</html>
15 years, 7 months