diff options
author | Thorsten Behrens <tbehrens@suse.com> | 2012-08-09 22:42:53 +0200 |
---|---|---|
committer | Thorsten Behrens <tbehrens@suse.com> | 2012-08-10 00:02:39 +0200 |
commit | 78eec967c985da53b1ed20415779efc479265a5e (patch) | |
tree | 6594d6b2d6adaf30e8d526133e398a5c97f1e092 | |
parent | d950d8a3eb8449e502ba03ae8074027fe9853460 (diff) |
Setting up site for 2012 MC election.
-rw-r--r-- | configure.in | 1 | ||||
-rw-r--r-- | vote/2012-mc/Makefile.am | 14 | ||||
-rw-r--r-- | vote/2012-mc/candidates.wml | 81 | ||||
-rw-r--r-- | vote/2012-mc/index.wml | 60 | ||||
-rwxr-xr-x | vote/2012-mc/mkical.py | 252 | ||||
-rw-r--r-- | vote/2012-mc/rules.wml | 138 | ||||
-rw-r--r-- | vote/2012-mc/timeline.ics | 71 | ||||
-rw-r--r-- | vote/2012-mc/voting-instructions.txt | 39 | ||||
-rw-r--r-- | vote/Makefile.am | 3 | ||||
-rw-r--r-- | vote/index.wml | 17 | ||||
-rw-r--r-- | vote/overview-mc.wml | 143 |
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@documentfoundation.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@documentfoundation.org</a> + (public list) or to us at <a + href="mailto:elections@documentfoundation.org">elections@documentfoundation.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@documentfoundation.org">elections@documentfoundation.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 & 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@documentfoundation.org">board-discuss@documentfoundation.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@documentfoundation.org">elections@documentfoundation.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@documentfoundation.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@documentfoundation.org">elections@documentfoundation.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@documentfoundation.org">elections@documentfoundation.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@documentfoundation.org">elections@documentfoundation.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@documentfoundation.org">board-discuss@documentfoundation.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> |