Merge branch 'master' of /users/j3parker/www

Conflicts:
	.htaccess
	srv/About/Constitution/index.md
This commit is contained in:
Jenny Wong 2012-02-24 16:49:41 -05:00
commit 1604893c31
12 changed files with 190 additions and 3 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
srv/*
bin/web
.nfs*
.htaccess
src/config.d

View File

@ -1,3 +1,5 @@
echo "<h1>Recent Changes</h1>"
echo "<p>This list was generated from the git log for the website. The git repository for this webpage can be accessed from FIXME.</p>"
echo "<ul>"
git log --pretty=format:'<li>%s - %aN (%ae) <b>(%cr)</b></li>' --abbrev-commit --date=relative
git log --pretty=format:'<li>%s - %aN (%ae) <b>(%cr)</b></li>' --abbrev-commit --date=relative --no-merges
echo "</ul>"

50
bin/exec_positions.py Executable file
View File

@ -0,0 +1,50 @@
#!/usr/bin/python
import ldap, time, operator
#
# globals
#
cscUri = "http://csclub.uwaterloo.ca/xsltproc"
cscTerms = ["Winter", "Spring", "Fall"]
cscShortTerms = ['w', 's', 'f']
cscLdapUri = "ldap://ldap1.csclub.uwaterloo.ca ldap://ldap2.csclub.uwaterloo.ca"
cscLdap = None
cscPeopleBase = 'ou=People,dc=csclub,dc=uwaterloo,dc=ca'
def cscLdapConnect():
global cscLdap
cscLdap = ldap.initialize(cscLdapUri)
cscLdap.simple_bind_s("", "")
cscLdapConnect()
def showExec(pretty, short):
print "<p><b>" + pretty + "</b><br>"
members = cscLdap.search_s(cscPeopleBase, ldap.SCOPE_SUBTREE,
'(&(objectClass=member)(position=%s))' % short)
if len(members) > 0:
(_, user) = members[0]
print user['cn'][0]
else:
print 'Seat Empty'
print "</p>"
print "<h1>The Executive</h1>"
showExec("President", "president")
showExec("Vice-President", "vice-president")
showExec("Treasurer", "treasurer")
showExec("Secretary", "secretary")
showExec("Systems Administrator", "sysadmin")
print "<h1>Other Positions</h1>"
showExec("Chief Returning Officer", "cro")
showExec("Office Manager", "offsck")
showExec("Librarian", "librarian")
print "<h1>Past Executive</h1>"
print "<p>For a partial list of past executives, see <a href=\"http://wiki.csclub.uwaterloo.ca/Past_Executive\">the relevent wiki page</a></p>"
print "<h1>Elections</h1>"
print "<p>Each term the CSC holds elections to determine the executive council. To find out when and where the next elections will be held, check the homepage and the <a href=\"http://csclub.uwaterloo.ca/newsgroup/thread.php?group=uw.csc\">uw.csc</a> newsgroup.<br>"
print "</p><p>For details on the election rules, see the <a href=\"../Constitution\">constitution</a>."
print "</p>"

43
bin/member_info.py Executable file
View File

@ -0,0 +1,43 @@
#!/usr/bin/python
import sys, os.path, ldap, time
uid = os.path.basename(sys.argv[1])
cscUri = "http://csclub.uwaterloo.ca/xsltproc"
cscTerms = ["Winter", "Spring", "Fall"]
cscShortTerms = ['w', 's', 'f']
cscLdapUri = "ldap://ldap1.csclub.uwaterloo.ca ldap://ldap2.csclub.uwaterloo.ca"
cscLdap = None
cscPeopleBase = 'ou=People,dc=csclub,dc=uwaterloo,dc=ca'
def cscLdapConnect():
global cscLdap
cscLdap = ldap.initialize(cscLdapUri)
cscLdap.simple_bind_s("", "")
cscLdapConnect()
curDate = time.strftime('%d-%m-%Y')
members = cscLdap.search_s(cscPeopleBase, ldap.SCOPE_SUBTREE,
'(&(objectClass=member)(uid=%s))' % uid)
if len(members) == 0:
print "<p>No such user <code>" + uid + "</code></p>"
sys.exit()
(_, user) = members[0]
print "<h1>Profile for " + user['cn'][0] + "</h1>"
print "<p>"
print "<ul>"
if "position" in user:
print "<li>Executive Position: "
for x in user['position']:
print x # edge case - could hold multiple positions!
print "</li>"
print "<li>Terms: "
for t in sorted(user['term']):
print t + " "
print "<br></li>"
print "<li>Website: <a href=\"http://csclub.uwaterloo.ca/~" + uid + "\">http://csclub.uwaterloo.ca/~" + uid + "</a></li>"
print "</ul>"
print "</p>"

42
bin/members.py Executable file
View File

@ -0,0 +1,42 @@
#!/usr/bin/python
import ldap, time, operator
#
# globals
#
cscUri = "http://csclub.uwaterloo.ca/xsltproc"
cscTerms = ["Winter", "Spring", "Fall"]
cscShortTerms = ['w', 's', 'f']
cscLdapUri = "ldap://ldap1.csclub.uwaterloo.ca ldap://ldap2.csclub.uwaterloo.ca"
cscLdap = None
cscPeopleBase = 'ou=People,dc=csclub,dc=uwaterloo,dc=ca'
def cscLdapConnect():
global cscLdap
cscLdap = ldap.initialize(cscLdapUri)
cscLdap.simple_bind_s("", "")
cscLdapConnect()
curDate = time.strftime('%d-%m-%Y')
year = time.localtime().tm_year
term = cscShortTerms[int(time.localtime().tm_mon - 1) / 4]
term2 = cscTerms[int(time.localtime().tm_mon - 1) / 4]
members = cscLdap.search_s(cscPeopleBase, ldap.SCOPE_SUBTREE,
'(&(objectClass=member)(term=%s%d))' % (term, year))
members.sort(key=lambda (_, y): y['cn'][0])
print "<h1>Members This Term</h1>"
print "<p>The members for " + term2 + " " + str(year) + " are listed here. We currently have " + str(len(members)) + " members.<br>"
print "Use of this list for solicitation of any form is prohibited. If you wish to get in touch with the membership as a whole please contact <a href=\"mailto:exec@csclub.uwaterloo.ca\">the Executive</a>.</p>"
print "<center>"
print "<table>"
print " <tr><td>Name</td><td>Program</td><td>Username</td>"
for (_, member) in members:
if not 'program' in member:
member['program'] = ['']
print " <tr>"
print " <td><a href=\"http://csclub.uwaterloo.ca/~j3parker/pub/csc/About/Members/" + member['uid'][0] + "\">" + member['cn'][0] + "</a></td>"
print " <td>" + member['program'][0] + "</td>"
print " <td>" + member['uid'][0] + "</td>"
print " </tr>"
print "</table>"
print "</center>"

View File

@ -67,6 +67,13 @@ void do_header() {
html_push("<div class=\"superHeader\">");
html_push("<div class=\"left\">");
html("<a href=\"http://wiki.csclub.uwaterloo.ca/\">wiki</a>");
html("<a href=\"http://git.csclub.uwaterloo.ca/\">git</a>");
html("<a href=\"http://mirror.csclub.uwaterloo.ca/\">mirror</a>");
html("<a href=\"http://csclub.uwaterloo.ca/stats\">stats</a>");
html("<a href=\"http://mail.csclub.uwaterloo.ca/\">webmail</a>");
html("<a href=\"http://csclub.uwaterloo.ca/newsgroup/\">newsgroups</a>");
html("<a href=\"http://csclub.uwaterloo.ca/mailman/\">mailman</a>");
html_pop("</div>");
html_push("<div class=\"right\">");
@ -77,7 +84,7 @@ void do_header() {
html_push("<div class=\"midHeader\">");
html_push("<h1 class=\"headerTitle\">");
html("<a href=\"" ~ url_root ~ "\">" ~ site_title ~ " <span id=\"headerSubTitle\">" ~ site_subtitle ~ "</span></a>");
html("<a href=\"" ~ url_root ~ "\"><img src=\"" ~ url_root ~ "pub/style/logo.png\" id=\"logo\"> <span id=\"headerSubTitle\">" ~ site_subtitle ~ "</span></a>");
html_pop("</h1>");
html_pop("</div>");

View File

@ -1,4 +1,4 @@
<h2>1. </h2>
<h2>1. Name</h2>
The name of this organization shall be the "Computer Science Club
of the University of Waterloo".

View File

@ -0,0 +1 @@
test

18
srv/About/index.md Normal file
View File

@ -0,0 +1,18 @@
## About the Office
The CSC Office is located at room MC3036/3037, in the Math & Computer Building of the University of Waterloo. The office is open whenever office staff are around to keep it open, which basically means it is open most of the time. You can check by taking a look through our [web-enabled camera](../Webcams). At the office we have lots of books, a few computer terminals, and most of the time an array of knowledgeable people to talk to and ask questions.
One of our most popular services at the office is providing anybody with free CD/DVD copies of Free Software and Open Source operating system distributions.
Another favourite is our $0.50 pop for members. We have a fridge in the office which is at most times stocked with many different kinds of pop cans.
We can always use good office staff, so if you're interested in helping out, just come by the office and chat to somebody there, and the office manager will probably give you something to do.
Our office phone number is (519) 888-4567 x33870, and you can mail us at the following address.
Computer Science Club
Math & Computer 3036/3037
University of Waterloo
200 University Avenue West
Waterloo, ON N2L 3G1
Canada

1
srv/Events/index.md Normal file
View File

@ -0,0 +1 @@
Events

7
srv/Library.md Normal file
View File

@ -0,0 +1,7 @@
rofl!!!
list
* cats
* web servers
* seaweed

15
srv/Webcams.md Normal file
View File

@ -0,0 +1,15 @@
Webcams
======
Spy on the office, see whether it's open or who is passing by the door!
Maltodextrin
-----
<center>
<img src="http://maltodextrin.csclub.uwaterloo.ca:8081" width="640" height="480" title="maltodextrin's Webcam"/>
</center>
Bit-Shifter
-----
<center>
<img src="http://bit-shifter.csclub.uwaterloo.ca:8081/webcam.jpg" width="640" height="480" title="bit-shifter's Webcam"/>
</center>