#!/usr/local/bin/python
import cgi
import string
import os
import sys
import random
import time
MAX_STUDENTS = 105
#--------------------
def studentComp(s1, s2):
if (s1["QHouse"] >= s2["QHouse"] and s1["QCollege"] >= s2["QCollege"]):
return 0
else:
return -1
#--------------------
def writeToFile(students):
filename = "Mayhouse." + time.time()
file = open(file,"w")
file.write(students)
file.close()
#--------------------
def doLotto(students):
random.shuffle(students)
students.sort(studentComp)
students.reverse()
# writeToFile(students)
def main():
print "Content-type: text/html\n"
form = cgi.FieldStorage()
if form.has_key("numStudents"):
num_students = form["numStudents"].value
else:
print "
ERROR: Missing number of students
"
print " See Administrator
"
sys.abort()
students = []
student = {"firstName":None , "lastName":None , "QCollege":None, "QHouse":None}
num = 1
while num <= MAX_STUDENTS:
key1 = "firstName" + repr(num) ; key2 = "lastName" + repr(num)
key3 = "QHouse" + repr(num) ; key4 = "QCollege" + repr(num)
k1p = 0; k2p = 0; k3p = 0; k4p = 0;
if form.has_key(key1):
student["firstName"] = form[key1].value
k1p = 1
if form.has_key(key2):
student["lastName"] = form[key2].value
k2p = 1
if form.has_key(key3):
student["QHouse"] = int(form[key3].value)
k3p = 1
if form.has_key(key4):
student["QCollege"] = int(form[key4].value)
k4p = 1
#must use copy here since objects are handled by reference otherwise
if k1p and k2p and k3p and k4p:
students.append(student.copy())
num = num + 1
#lotto is abstracted from interface
doLotto(students)
#now we have sorted list -- handle output
## javascript stuff
# print results
print ""
print ""
## end javascript stuff
print ""
print " Lottery Results
"
print ""
print ""
print "| " + "Last Name" + " | "
print "" + "First Name" + " | "
print "" + "Quarters in House" + " | "
print "" + "Quarters in College" + " | "
print "" + "Rank" + " | "
print "
"
count = 1
for s in students:
print ""
print "| " + s['lastName'] + " | "
print "" + s['firstName'] + " | "
print "" + repr(s['QHouse']) + " | "
print "" + repr(s['QCollege']) + " | "
print "" + repr(count) + " | "
print "
"
count = count + 1
print "
"
print ""
print ""
print ""
#--------------------
main()