summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThorsten Behrens <tbehrens@suse.com>2012-08-09 22:42:53 +0200
committerThorsten Behrens <tbehrens@suse.com>2012-08-10 00:02:39 +0200
commit78eec967c985da53b1ed20415779efc479265a5e (patch)
tree6594d6b2d6adaf30e8d526133e398a5c97f1e092
parentd950d8a3eb8449e502ba03ae8074027fe9853460 (diff)
Setting up site for 2012 MC election.
-rw-r--r--configure.in1
-rw-r--r--vote/2012-mc/Makefile.am14
-rw-r--r--vote/2012-mc/candidates.wml81
-rw-r--r--vote/2012-mc/index.wml60
-rwxr-xr-xvote/2012-mc/mkical.py252
-rw-r--r--vote/2012-mc/rules.wml138
-rw-r--r--vote/2012-mc/timeline.ics71
-rw-r--r--vote/2012-mc/voting-instructions.txt39
-rw-r--r--vote/Makefile.am3
-rw-r--r--vote/index.wml17
-rw-r--r--vote/overview-mc.wml143
11 files changed, 814 insertions, 5 deletions
diff --git a/configure.in b/configure.in
index b03f82b..981746b 100644
--- a/configure.in
+++ b/configure.in
@@ -17,4 +17,5 @@ vote/Makefile
vote/include/Makefile
vote/2011/Makefile
vote/2012-confpoll/Makefile
+vote/2012-mc/Makefile
])
diff --git a/vote/2012-mc/Makefile.am b/vote/2012-mc/Makefile.am
new file mode 100644
index 0000000..46c4e39
--- /dev/null
+++ b/vote/2012-mc/Makefile.am
@@ -0,0 +1,14 @@
+SUBDIRS =
+
+urlpath = /vote/2012-mc
+
+page_SCRIPTS = \
+ index.html \
+ candidates.html\
+ rules.html
+
+page_DATA = \
+ timeline.ics
+ mkical.py
+
+include $(top_srcdir)/rules.common
diff --git a/vote/2012-mc/candidates.wml b/vote/2012-mc/candidates.wml
new file mode 100644
index 0000000..02bf82f
--- /dev/null
+++ b/vote/2012-mc/candidates.wml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+
+ <head>
+ <title>The Document Foundation 2012 Membership Committee Elections Candidates</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ </head>
+
+ <body>
+ <h1>Candidates for The Document Foundation 2012 Membership Committee Elections</h1>
+
+ <p>
+ Below you will find a list of candidates who are running for the
+ The Document Foundation Membership Committee. A short summary statement from
+ each candidate and a link to their full candidacy announcement is
+ provided to help you learn more about them. We encourage all voters
+ to read the full candidacy statements and related discussions on
+ <a href="http://listarchives.documentfoundation.org/www/discuss/">discuss&#64;documentfoundation&#46;org</a>.
+ </p>
+
+ <p> When deciding who you should vote for, please carefully
+ consider the various tasks Membership Committee seat holders must
+ perform. This <a href="../overview-mc.html">overview</a> may be
+ helpful. Keep in mind that the committee will decide on granting
+ membership, and renewal thereof, and also plays an important role
+ as a counter-balance to the board of directors. It is a good idea
+ to strive for a well-balanced committee, consisting of people with
+ various backgrounds, skills, and perspectives. </p>
+
+ <p>
+ Additional elections details can be found in the
+ <a href="http://www.documentfoundation.org/statutes.pdf">Document Foundation Statutes</a>.
+ </p>
+
+ <p>
+ If you have any questions, please send them to either
+ <a href="http://listarchives.documentfoundation.org/www/discuss/">discuss&#64;documentfoundation&#46;org</a>
+ (public list) or to us at <a
+ href="mailto:elections&#64;documentfoundation&#46;org">elections&#64;documentfoundation&#46;org</a> (private).
+ </p>
+
+ <h2>Candidates for The Document Foundation Membership Committee</h2>
+
+ <ol>
+ <li><strong>Mr. No Name</strong><br />
+ Affiliation: <em>A Corp.</em><br />
+ <blockquote>
+ Random thoughts of relevance, some biography, and a
+ statement of what I want to achieve in the committee.
+ </blockquote>
+ <!-- Verified Member -->
+ </li>
+ </ol>
+
+
+
+
+
+ <h2>Additional Elections-related Information</h2>
+
+ <p>
+ Note, that according to the regulations around avoidance of a
+ conflict of interest in <a
+ href="http://www.documentfoundation.org/statutes.pdf">§8 (4) of the Statutes</a>,
+ there is a 2-person maximum on the number of people affiliated
+ with any one company that can be on the committee and their deputies:
+ if more than 2 persons from one company get elected, only the
+ top 2 vote getters will get on. You will be able to vote for up
+ to 7 candidates of your choice, with no restrictions, except
+ that you cannot vote more than once for the same candidate.
+ </p>
+
+ <p>
+ If you have any futher question, please consult the
+ <a href="rules.html">Rules for this election</a> or write to
+ <a href="mailto:elections@documentfoundation.org">elections@documentfoundation.org</a>.
+ </p>
+
+ </body>
+</html>
diff --git a/vote/2012-mc/index.wml b/vote/2012-mc/index.wml
new file mode 100644
index 0000000..f66310c
--- /dev/null
+++ b/vote/2012-mc/index.wml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+
+ <head>
+ <title>The Document Foundation 2012 Membership Committee Elections</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ <meta name="author" content="Thorsten Behrens" />
+ </head>
+
+ <body>
+
+ <h1>The Document Foundation 2012 Membership Committee Elections</h1>
+
+ <p>
+ The Document Foundation Membership currently elects the
+ Membership Committee during summer of every other year. Any
+ member can nominate
+ themself to run in the elections. The overall elections process
+ is overseen by the Board of Directors, which can
+ be reached at <a
+ href="mailto:elections&#64;documentfoundation&#46;org">elections&#64;documentfoundation&#46;org</a>.
+ </p>
+
+ <p>
+ The elections results from the 2012 Membership Committee elections
+ will be archived here for public access.
+ </p>
+
+ <h2>2012 Membership Committee Elections Materials:</h2>
+ <ul>
+ <li>
+ <a href="../results.php?election_id=3">Detailed election results</a>
+ </li>
+ <li>
+ <a href="../votes.php?election_id=3">List of all votes</a>
+ </li>
+ <li>
+ <a href="../vote.php?election_id=3">Interface to vote</a>
+ </li>
+ <li>
+ <a href="candidates.html">List of candidates for the Membership Committee</a>
+ </li>
+
+ <li>
+ <a href="http://www.documentfoundation.org/foundation/members/">List of registered voters</a>
+ </li>
+
+ <li>
+ <a href="rules.html">Elections Rules and Timeline</a> (webcal <a
+ href="webcal://elections.documentfoundation.org/voting/vote/2012-mc/timeline.ics">timeline</a>)
+ </li>
+
+ <li>
+ <a href="../overview-mc.html">Overview of the Membership Committee work</a>
+ </li>
+ </ul>
+
+ </body>
+</html>
diff --git a/vote/2012-mc/mkical.py b/vote/2012-mc/mkical.py
new file mode 100755
index 0000000..296c083
--- /dev/null
+++ b/vote/2012-mc/mkical.py
@@ -0,0 +1,252 @@
+#!/usr/bin/env python
+'''
+This Python script creates a simple iCal file based on hardcoded events
+in this file.
+'''
+
+import calendar
+import datetime
+import logging
+import math
+import os
+import vobject
+
+
+#### Configure these variables
+YEAR = 2012
+CANDIDATES_OPENED_DATE = (YEAR, 8, 10) # In 2012, begin earlier in May
+CANDIDATES_CLOSED_DATE = (YEAR, 9, 1)
+CANDIDATES_ANNOUNCED_DATE = (YEAR, 9, 3)
+VOTING_OPENED_DATE = (YEAR, 9, 9)
+VOTING_CLOSED_DATE = (YEAR, 9, 16)
+PRELIMINARY_RESULTS_DATE = (YEAR, 9, 17)
+CHALLENGE_CLOSED_DATE = (YEAR, 9, 21)
+
+
+
+### I'm sorry that these functions clutter your calendar-creating experience
+### Please scroll down a bit to edit the description texts
+
+#### Application Data
+def c(multilinestring):
+ '''
+ A helper functions which cleans up a multiline string, so that
+ it doesn't contain any newlines or multiple whitespaces
+ '''
+ stripped = [l.strip() for l in multilinestring.splitlines()]
+ ret = " ".join (stripped)
+ return ret
+
+def d(year, month, day):
+ '''
+ Just a tiny wrapper around datetime.datetime to create a datetime object
+ '''
+ return datetime.date(year, month, day)
+
+
+
+CANDIDATES_OPENED = (
+ d(*CANDIDATES_OPENED_DATE),
+ 'Announcements and list of candidates opens',
+ c("""If you are a member of The Document Foundation and are interested
+ in running for election, you may nominate yourself by sending an
+ e-mail to elections@documentfoundation.org with your name, e-mail
+ address, corporate affiliation (if any), and a description of why
+ you'd like to serve, before
+ %s (23:59 UTC).""" % d(*CANDIDATES_CLOSED_DATE)) + '''
+ ''' + c("""
+ You should also send a summary of your candidacy announcement
+ (75 words or less) to discuss@documentfoundation.org. """) + '''
+ '''
+)
+
+CANDIDATES_CLOSED = (
+ d(*CANDIDATES_CLOSED_DATE),
+ 'List of candidates closed',
+ CANDIDATES_OPENED[2] # Get the same text again
+)
+
+CANDIDATES_ANNOUNCED = (
+ d(*CANDIDATES_ANNOUNCED_DATE),
+ 'List of candidates announced',
+ 'You may now start to send your questions to the candidates'
+)
+
+VOTING_OPENED = (
+ d(*VOTING_OPENED_DATE),
+ 'Instructions to vote are sent',
+ 'Please read your email and follow these instructions and submit your vote by %s' % d(*VOTING_CLOSED_DATE)
+)
+VOTING_CLOSED = (
+ d(*VOTING_CLOSED_DATE),
+ 'Votes must be returned',
+ 'Preliminary results are announced on %s' % d(*PRELIMINARY_RESULTS_DATE)
+)
+
+
+PRELIMINARY_RESULTS = (
+ d(*PRELIMINARY_RESULTS_DATE),
+ 'Preliminary results are announced',
+ 'The preliminary results can be challenged until %s' % d(*CHALLENGE_CLOSED_DATE)
+)
+
+CHALLENGE_CLOSED = (
+ d(*CHALLENGE_CLOSED_DATE),
+ 'Challenges to the results closed',
+ "If there weren't any challenges, preliminary results are valid"
+)
+
+
+
+
+def create_ical(eventlist):
+ '''Generates an ical stream based on the list given as eventlist.
+ The list shall contain elements with a tuple with a
+ (date, string, string) object, serving as date when the event takes place,
+ summary and description respectively.
+ '''
+ log = logging.getLogger('create_ical')
+
+ cal = vobject.iCalendar()
+ cal.add('method').value = 'PUBLISH'
+ cal.add('calscale').value = 'GREGORIAN'
+ cal.add('x-wr-timezone').value = 'UTC'
+
+ for (timestamp, summary, description) in eventlist:
+ log.debug('creating %s, %s', timestamp, description)
+ vevent = cal.add('vevent')
+ vevent.add('dtstart').value = timestamp
+ vevent.add('dtend').value = timestamp + datetime.timedelta(1)
+ vevent.add('summary').value = summary
+ vevent.add('description').value = description
+
+ stream = cal.serialize()
+ return stream
+
+
+def wraptext(s, width):
+ '''Wraps a string @s at @width characters.
+
+ >>> wraptext('fooo', 2)
+ ['fo','oo']
+ '''
+ l = len(s)
+ nr_frames = int(math.ceil(float(l)/width))
+ print nr_frames
+ frames = []
+ for i in xrange(nr_frames):
+ start, end = i*width, (i+1) * width
+ frames.append(s[start:end])
+ # One could (and prolly should) yield that
+ return frames
+
+def ordinal(n):
+ n = int(n)
+ if 10 <= n % 100 < 20:
+ return str(n) + 'th'
+ else:
+ return str(n) + {1 : 'st', 2 : 'nd', 3 : 'rd'}.get(n % 10, "th")
+
+
+def cal_for_month(month, events, width=80, year=datetime.datetime.now().year):
+ '''Generates a textual calendar for the @month in @year.
+ It will return a string with the calendar on the left hand side and the
+ events on the right hand side.
+ @events shall be a list with tuples: timestamp, summary, description.
+
+ Returns a string with the calendar
+ '''
+ log = logging.getLogger('cal_for_month')
+
+ cal = calendar.TextCalendar()
+ calstrings = cal.formatmonth(year, month, 3).splitlines()
+
+ for (timestamp, summary, description) in events:
+ log.debug('creating %s, %s', timestamp, summary)
+ year, month, day = timestamp.year, timestamp.month, timestamp.day
+ maxwidth = max([len(cs) for cs in calstrings])
+ rightwidth = 80 - maxwidth
+ for i, line in enumerate(calstrings):
+ needles = (" %d " % day,
+ " %d\n" % day)
+ replacement = "(%d)" % day
+ # Find the day so that we can highlight it and add a comment
+ day_in_week = False
+ for needle in needles:
+ if needle in line+"\n":
+ # k, this looks a bit weird but we have that corner
+ # case with the day being at the end of the line
+ # which in turn will have been split off
+ day_in_week = True
+ break # Set the needle to the found one
+ if day_in_week == False: # Nothing found, try next week
+ log.debug('Day (%d) not found in %s', day, line)
+ continue
+ else:
+ log.debug('Day (%d) found in %s', day, line)
+ new_line = (line+"\n").replace(needle, replacement).rstrip()
+ new_line += " %s (%s)" % (summary, ordinal(day))
+ # Replace in-place for two events in the same week
+ # FIXME: This has bugs :-(
+ calstrings[i] = new_line
+
+ return os.linesep.join(calstrings)
+
+def create_textcal(eventlist):
+ '''Generates a multiline string containing a calendar with the
+ events written on the side
+ The list shall contain elements with a tuple with a
+ (date, string, string) object, serving as date when the event takes place,
+ summary and description respectively.
+ '''
+ log = logging.getLogger('textcal')
+ log.debug('Generating from %s', eventlist)
+ months = set(map(lambda x: x[0].month, eventlist))
+ year = set(map(lambda x: x[0].year, eventlist)).pop()
+
+ final_cal = []
+ for month in months:
+ events = filter(lambda x: x[0].month == month, eventlist)
+ log.debug('Events for %d: %s', month, events)
+ month_cal = cal_for_month(month, events, year=year)
+ final_cal.append(month_cal)
+
+ return os.linesep.join(final_cal)
+
+if __name__ == "__main__":
+ from optparse import OptionParser
+ parser = OptionParser("usage: %prog [options]")
+ parser.add_option("-l", "--loglevel", dest="loglevel", help="Sets the loglevel to one of debug, info, warn, error, critical",
+ default=None)
+ parser.add_option("-i", "--ical",
+ action="store_true", dest="ical", default=False,
+ help="print iCal file to stdout")
+ parser.add_option("-t", "--textcal",
+ action="store_true", dest="tcal", default=False,
+ help="print textual calendar to stdout")
+ (options, args) = parser.parse_args()
+
+ loglevel = {'debug': logging.DEBUG, 'info': logging.INFO,
+ 'warn': logging.WARNING, 'error': logging.ERROR,
+ 'critical': logging.CRITICAL}.get(options.loglevel, logging.WARNING)
+ logging.basicConfig( level=loglevel )
+ log = logging.getLogger()
+
+ eventlist = [
+ CANDIDATES_OPENED,
+ CANDIDATES_CLOSED,
+ CANDIDATES_ANNOUNCED,
+ VOTING_OPENED,
+ VOTING_CLOSED,
+ PRELIMINARY_RESULTS,
+ CHALLENGE_CLOSED,
+ ]
+
+ if not any([options.ical, options.tcal]):
+ parser.error("You want to select either ical or textcal output. See --help for details")
+ if options.ical:
+ ical = create_ical( eventlist )
+ print ical
+ if options.tcal:
+ tcal = create_textcal( eventlist )
+ print tcal
diff --git a/vote/2012-mc/rules.wml b/vote/2012-mc/rules.wml
new file mode 100644
index 0000000..c57afc6
--- /dev/null
+++ b/vote/2012-mc/rules.wml
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+
+ <head>
+ <title>The Document Foundation 2012 Membership Committee Elections Rules</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ </head>
+
+ <body>
+
+ <h1>Rules &amp; Timeline for The Document Foundation 2012 Membership Committee Elections</h1>
+
+ <h2>Elections Rules</h2>
+
+ <ol>
+ <li>
+ See the <a href="http://www.documentfoundation.org/statutes.pdf">The Document
+ Foundation Statutes</a> §12, II for general rules.
+ </li>
+ <li>
+ There are 5 committee seats and 2 deputy roles that are to be filled during these elections.
+ </li>
+ <li>
+ <a href="http://www.documentfoundation.org/foundation/members/">Members</a> of The Document Foundation as of 2012-07-01
+ are eligible to vote in the elections. For future elections, anyone who has made a
+ contribution to The Document Foundation can apply for membership by completing the
+ <a href="http://www.documentfoundation.org/foundation/application-for-tdf-community-membership/">application</a>.
+ </li>
+ <li>
+ Any eligible voter is also eligible to be elected to the Membership Committee.
+ To announce your candidacy, send a message to
+ <a href="mailto:board-discuss&#64;documentfoundation&#46;org">board-discuss&#64;documentfoundation&#46;org</a>
+ with your full name, e-mail, corporate affiliation (if any), and a
+ description of your reasons for wanting to serve as a committee member.
+ Candidacies must be announced prior to 2012-09-01, 23:59 UTC.
+ </li>
+ <li>
+ All candidates should mail a summary of their candidacy announcement
+ (see previous rule) to
+ <a href="mailto:elections&#64;documentfoundation&#46;org">elections&#64;documentfoundation&#46;org</a>.
+ Summaries should be no more than 75 words of continuous text (i.e. no
+ bullet lists or multiple paragraphs) and must be received by the
+ nomination deadline given above. A compilation of the summaries will
+ be mailed to all registered voters several days prior to the
+ elections, and published on this site.
+ </li>
+ <li>
+ All discussion related to the elections should be held on
+ <a href="http://listarchives.documentfoundation.org/www/discuss/">discuss&#64;documentfoundation&#46;org</a>.
+ Members are invited to ask questions to one or all candidates on that
+ list.
+ </li>
+ <li>
+ Instructions explaining how to vote will be sent via e-mail to all
+ eligible voters on
+ 2012-09-09,
+
+ and votes must be returned by 2012-09-16, 23:59 UTC.
+ </li>
+ <li>
+ Votes will be held confidential during the elections, but an
+ anonymized archive of all submitted votes will be made publicly
+ accessible at its conclusion.
+ </li>
+ <li>
+ The Document Foundation Board of Directors is
+ responsible for counting the votes.
+ </li>
+ <li>
+ The 5 members and 2 deputy seats voted for most as counted by a single transferable
+ vote system will be elected, except that no more than one third of
+ the members of the committee may be from the same company. That means
+ that, with 5 seats and 2 deputies, no more than one seat holder may be
+ from the same company, but that it is permissible for one of the
+ deputies to also be from that same company if elected.
+ </li>
+ <li>
+ In the event of a tie for the final seat on the committee or the
+ final deputy slot, the Board of Directors will schedule
+ run-off elections as soon as possible.
+ </li>
+ <li>
+ The Board of Directors will announce preliminary results as soon as
+ possible after the elections close, along with instructions on how to
+ access the votes archive and how to independently verify the vote
+ count.
+ </li>
+ <li>
+ Any eligible voter may challenge the preliminary results by e-mailing
+ <a
+ href="mailto:elections&#64;documentfoundation&#46;org">elections&#64;documentfoundation&#46;org</a>
+ prior to 2012-09-21.
+
+ The decision of the Board of Directors as
+ to any challenge shall be final. Once any challenges have been
+ resolved, the Board of Directors shall announce the final results.
+ </li>
+ <li>
+ Any questions regarding these procedures should be directed to the
+ Board of Directors by e-mail to <a
+ href="mailto:elections&#64;documentfoundation&#46;org">elections&#64;documentfoundation&#46;org</a>.
+ Within the limits of the statutes, the board shall have the power to make any necessary changes or
+ clarifications to these rules at any point during the elections.
+ </li>
+ </ol>
+
+ <h2>Timeline</h2>
+ <p><small>(all deadlines are 23:59 UTC unless noted otherwise)</small></p>
+ <ul>
+ <li>
+ 2012-07-25, 00:00 UTC: Announcement of elections
+ </li>
+ <li>
+ 2012-08-10, 00:00 UTC: Nomination of candidates opens.
+ </li>
+ <li>
+ 2012-09-01: Last day to announce candidacies, submit summary statements.
+ </li>
+ <li>
+ 2012-09-03: Final list of candidates is published.
+ </li>
+ <li>
+ 2012-09-09: Instructions mailed to eligible voters, voting begins.
+ </li>
+ <li>
+ 2012-09-16: Voting closes.
+ </li>
+ <li>
+ 2012-09-17: Preliminary results are announced.
+ </li>
+ <li>
+ 2012-09-21: Last day to challenge preliminary results, announcement of final results.
+ </li>
+ </ul>
+
+ </body>
+</html>
diff --git a/vote/2012-mc/timeline.ics b/vote/2012-mc/timeline.ics
new file mode 100644
index 0000000..9ab7552
--- /dev/null
+++ b/vote/2012-mc/timeline.ics
@@ -0,0 +1,71 @@
+BEGIN:VCALENDAR
+VERSION:2.0
+CALSCALE:GREGORIAN
+METHOD:PUBLISH
+PRODID:-//PYVOBJECT//NONSGML Version 1//EN
+BEGIN:VEVENT
+UID:20120809T204226Z-72732@thinkpad.bad.example
+DTSTART;VALUE=DATE:20120810
+DTEND;VALUE=DATE:20120811
+DESCRIPTION:If you are a member of The Document Foundation and are interes
+ ted in running for election\, you may nominate yourself by sending an e-ma
+ il to elections@documentfoundation.org with your name\, e-mail address\, c
+ orporate affiliation (if any)\, and a description of why you'd like to ser
+ ve\, before 2012-09-01 (23:59 UTC).\n You should also send a summary o
+ f your candidacy announcement (75 words or less) to discuss@documentfounda
+ tion.org.\n
+SUMMARY:Announcements and list of candidates opens
+END:VEVENT
+BEGIN:VEVENT
+UID:20120809T204226Z-92041@thinkpad.bad.example
+DTSTART;VALUE=DATE:20120901
+DTEND;VALUE=DATE:20120902
+DESCRIPTION:If you are a member of The Document Foundation and are interes
+ ted in running for election\, you may nominate yourself by sending an e-ma
+ il to elections@documentfoundation.org with your name\, e-mail address\, c
+ orporate affiliation (if any)\, and a description of why you'd like to ser
+ ve\, before 2012-09-01 (23:59 UTC).\n You should also send a summary o
+ f your candidacy announcement (75 words or less) to discuss@documentfounda
+ tion.org.\n
+SUMMARY:List of candidates closed
+END:VEVENT
+BEGIN:VEVENT
+UID:20120809T204226Z-5986@thinkpad.bad.example
+DTSTART;VALUE=DATE:20120903
+DTEND;VALUE=DATE:20120904
+DESCRIPTION:You may now start to send your questions to the candidates
+SUMMARY:List of candidates announced
+END:VEVENT
+BEGIN:VEVENT
+UID:20120809T204226Z-20227@thinkpad.bad.example
+DTSTART;VALUE=DATE:20120909
+DTEND;VALUE=DATE:20120910
+DESCRIPTION:Please read your email and follow these instructions and submi
+ t your vote by 2012-09-16
+SUMMARY:Instructions to vote are sent
+END:VEVENT
+BEGIN:VEVENT
+UID:20120809T204226Z-15331@thinkpad.bad.example
+DTSTART;VALUE=DATE:20120916
+DTEND;VALUE=DATE:20120917
+DESCRIPTION:Preliminary results are announced on 2012-09-17
+SUMMARY:Votes must be returned
+END:VEVENT
+BEGIN:VEVENT
+UID:20120809T204226Z-92233@thinkpad.bad.example
+DTSTART;VALUE=DATE:20120917
+DTEND;VALUE=DATE:20120918
+DESCRIPTION:The preliminary results can be challenged until 2012-09-21
+SUMMARY:Preliminary results are announced
+END:VEVENT
+BEGIN:VEVENT
+UID:20120809T204226Z-76844@thinkpad.bad.example
+DTSTART;VALUE=DATE:20120921
+DTEND;VALUE=DATE:20120922
+DESCRIPTION:If there weren't any challenges\, preliminary results are vali
+ d
+SUMMARY:Challenges to the results closed
+END:VEVENT
+X-WR-TIMEZONE:UTC
+END:VCALENDAR
+
diff --git a/vote/2012-mc/voting-instructions.txt b/vote/2012-mc/voting-instructions.txt
new file mode 100644
index 0000000..d7209c0
--- /dev/null
+++ b/vote/2012-mc/voting-instructions.txt
@@ -0,0 +1,39 @@
+noreply@documentfoundation.org
+thb@documentfoundation.org
+Your Document Foundation 2012 Membership Committee Voting Token
+
+Dear $member,
+
+The election of The Document Foundation Membership Committee will soon
+be open.
+
+Voting will run from 2012-09-09 (Sunday) until 2012-09-16, 23:59 UTC.
+
+To vote, please go to
+https://elections.documentfoundation.org/vote.php?election_id=3
+and follow the instructions there.
+
+A list of candidates and their reasons for running is available at
+https://elections.documentfoundation.org/2012-mc/candidates.html
+
+When instructed to do so, enter the following details:
+
+ E-mail: $email
+ Vote token: $token
+
+The election has 4 steps - first, you must identify yourself using the
+voting token above. Then select your preferred candidates in order of
+preference. A third step will show you your choice, and ask you to
+confirm or return to the previous step. Finally, after confirming your
+choice, a unique identifier will be given to you which will allow you to
+verify after the election that your vote was counted correctly. To ensure
+anonymity, no link will be kept between this token and your identifiers,
+so please keep this token safe. Once you have voted, you will not be able
+to vote again.
+
+Thank you for your vote!
+
+Regards,
+ Thorsten Behrens
+ election secretary, on behalf of The Document Foundation Board of
+ Directors
diff --git a/vote/Makefile.am b/vote/Makefile.am
index f94cf4e..0cf09df 100644
--- a/vote/Makefile.am
+++ b/vote/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = include 2011 2012-confpoll
+SUBDIRS = include 2011 2012-confpoll 2012-mc
urlpath = /vote
@@ -9,6 +9,7 @@ page_SCRIPTS = \
votes.php \
vote.php \
overview.html \
+ overview-mc.html\
blt.php
page_DATA = \
diff --git a/vote/index.wml b/vote/index.wml
index c052662..37a9ef7 100644
--- a/vote/index.wml
+++ b/vote/index.wml
@@ -19,16 +19,25 @@
<h2>Election Materials</h2>
<p>
- The Document Foundation Membership elects the Board of Directors
- each year. Any member can nominate themself to run in the election.
- The overall election process is overseen by the Membership and Elections
- Committee, which can be reached at <a
+ The Document Foundation Membership holds its Board of
+ Directors and Membership Committee elections usually every two
+ years. Any member can nominate themself to run in the election.
+ </p>
+ <p>
+ In addition, sometimes the membership is asked to collectively
+ decide on important changes, or is polled e.g. for conference
+ locations.
+ </p>
+ <p>
+ The ones responsible for running the then-current election
+ can always be reached at <a
href="mailto:elections&#64;documentfoundation&#46;org">elections&#64;documentfoundation&#46;org</a>.
</p>
<ul>
<li><a href="2011/">Material from the 2011 BoD Elections</a></li>
<li><a href="2012-confpoll/">Material from the 2012 conference location poll</a></li>
+ <li><a href="2012-mc/">Material from the 2012 Membership Committee Elections</a></li>
</ul>
<!-- Do not close the body or html tag because we still add stuff to the footer -->
diff --git a/vote/overview-mc.wml b/vote/overview-mc.wml
new file mode 100644
index 0000000..3679d9f
--- /dev/null
+++ b/vote/overview-mc.wml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+
+ <head>
+ <title>The Document Foundation Elections: Overview of the Membership Committee</title>
+ <meta name="cvsdate" content="$Date$" />
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+ </head>
+
+ <body>
+
+ <h1>Elections: Overview of the Membership Committee</h1>
+
+ <h2>The Document Foundation Overview</h2>
+
+ <p> The Document Foundation has the mission of facilitating the
+ evolution of the LibreOffice Community into a new, open,
+ independent, and meritocratic organization. An independent
+ foundation is a better reflection of the values of our
+ contributors, users and supporters, and will enable a more
+ effective, efficient and transparent community. TDF will protect
+ past investments by building on the achievements of the first
+ decade with OpenOffice.org, will encourage wide participation
+ within the community, and will co-ordinate activity across the
+ community. </p>
+
+ <p> The Foundation will act as an official voice for the
+ LibreOffice project, providing a means of communication with the
+ press and with commercial and noncommercial organizations
+ interested in document processing software. The foundation may
+ produce educational materials and documentation to help the public
+ learn about The Document Foundation software. In addition, it may
+ sponsor technical conferences, represent the community at relevant
+ conferences sponsored by others, help create technical standards
+ for the project and promote the use and development of The
+ Document Foundation software. </p>
+
+ <p>
+ For more information, see the <a href="http://documentfoundation.org">The Document Foundation Web
+ Site</a>.
+ </p>
+
+ <h2>Who makes the Membership Committee</h2>
+
+ <p>
+ The Membership Committe is elected every two years by the
+ Foundation membership. Any member of The Document Foundation can be a candidate
+ for the elections.
+ </p>
+
+ <p>
+ Before deciding to run for the elections, we encourage you to contact a
+ current or past committee member to help you take an informed decision.
+ </p>
+
+ <h2>Becoming a Candidate for the Membership Committee</h2>
+
+ <p>
+ If you would like to become a candidate for the Membership Committee,
+ please:
+ </p>
+
+ <ol>
+ <li>Read this document.</li>
+ <li>
+ Read the <a href="http://www.documentfoundation.org/statutes.pdf">The Document Foundation
+ Statutes</a>.
+ </li>
+ <li>
+ Make sure you will have adequate time and interest in performing the
+ tasks described below.
+ </li>
+ <li>
+ Announce your candidacy by sending an email to <a
+ href="mailto:board-discuss&#64;documentfoundation&#46;org">board-discuss&#64;documentfoundation&#46;org</a>
+ with a description of how you have contributed to The Document Foundation and why you want
+ to be on the Membership Committee.
+ </li>
+ </ol>
+
+ <h2>Partial List of Tasks of the Membership Committee</h2>
+
+ <p>
+ The Membership Committee must perform a set of both technical and
+ non-technical tasks including:
+ </p>
+
+ <ol>
+ <li>
+ <p>Invite, track, review and decide on membership applications
+ and renewals. Formally report changes to membership to the
+ foundation authorities.</p>
+ </li>
+ <li>
+ <p>Setup, and manage board of directors and other elections.
+ </p>
+ </li>
+ <li>
+ <p>In case of disputes, represent the members of The Document
+ Foundation against the board of directors. Ultimately, the
+ membership committee can enact an impeachment of the board.
+ </p>
+ </li>
+ </ol>
+
+ <h2>Diversity of the Membership Committee</h2>
+
+ <p>
+ The Membership Committee should reflect the diversity of The Document Foundation project,
+ including leaders of the core The Document Foundation technologies, volunteer contributors
+ as well as representatives of companies which are making major
+ contributions to The Document Foundation, individuals from various geographic regions, and
+ representatives of other aspects of The Document Foundation. The committee is tasked with
+ assessing contribution from <em>all</em> areas of the Foundation and will work
+ best if the members are equally diverse in their skill set and expertise.
+ </p>
+
+ <h2>Personal Requirements</h2>
+
+ <p>
+ All Membership Committee seat holders must be willing to:
+ </p>
+
+ <ul>
+ <li>
+ Respect confidentiality of private information, when e.g. discussing or obtaining merits of membership applicants.
+ </li>
+ <li>
+ Be available for the regular Membership Committee calls, and
+ set aside time for the quarterly task of formally approving
+ and filing membership changes with the foundation authorities.
+ </li>
+ <li>
+ Act on behalf of all The Document Foundation members in the
+ best interest of The Document Foundation,
+ and not solely represent the interests of a specific company or
+ constituency.
+ </li>
+ </ul>
+
+ </body>
+</html>