1 from PyQt4.QtCore import *
2 from PyQt4.QtGui import *
4 from ldapsearcher import LDAPSearcher
6 class PageNewUserData(QWizardPage):
7 def __init__(self, parent=None):
8 QWizardPage.__init__(self,parent)
9 self.setCommitPage(True)
10 self.setButtonText(QWizard.CommitButton, "Next")
11 # Create all the subwidgets
12 self.year_lab = QLabel("Year:")
13 self.month_lab = QLabel("Month:")
14 self.day_lab = QLabel("Day:")
15 self.forename_lab = QLabel("Preferred name:")
16 self.surname_lab = QLabel("Last name:")
17 self.email_lab = QLabel("Email:")
18 self.phone_lab = QLabel("Phone:")
19 self.major_lab = QLabel("Major:")
20 self.hometown_lab = QLabel("Hometown:")
21 self.room_lab = QLabel("Room number:")
22 self.bday_lab = QLabel("Birthday:")
23 self.dorm_lab = QLabel("Hall:")
25 self.surname = QLineEdit()
26 self.forename = QLineEdit()
27 self.phone = QLineEdit()
28 self.email = QLineEdit()
29 self.major = QLineEdit()
31 self.year = QComboBox()
32 self.month = QComboBox()
33 self.day = QComboBox()
35 self.dorm = QComboBox()
36 self.room = QLineEdit()
37 # Fill the comboboxes with values, set valid field types
38 years = QStringList(["1983","1984","1985","1986","1987","1988","1989","1990","1991","1992","1993","1994"])
39 months = QStringList(["January","February","March","April","May","June","July","August","September","October","November","December"])
40 days = QStringList(["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"])
41 dorms = QStringList(["","Clements","Lechner","McFadden"])
42 self.year.addItems(years)
43 self.month.addItems(months)
44 self.day.addItems(days)
45 self.year.setCurrentIndex(6) # Start in 1988 or so
46 self.dorm.addItems(dorms)
47 self.phone.setInputMask("(999)-999-9999")
48 self.major.setMaxLength(4)
49 self.room.setMaxLength(3)
51 # Register fields with QWizard
52 self.registerField("surname*", self.surname)
53 self.registerField("forename*", self.forename)
54 self.registerField("phone", self.phone)
55 self.registerField("email*", self.email)
56 self.registerField("major", self.major)
57 self.registerField("dorm*", self.dorm)
58 self.registerField("room*", self.room)
59 self.registerField("year", self.year)
60 self.registerField("month", self.month)
61 self.registerField("day", self.day)
65 self.layout = QGridLayout()
66 self.bday_layout = QHBoxLayout()
67 self.bday_layout.addWidget(self.year)
68 self.bday_layout.addWidget(self.month)
69 self.bday_layout.addWidget(self.day)
70 self.layout.addWidget(self.forename_lab, 1, 0)
71 self.layout.addWidget(self.forename, 1, 1)
72 self.layout.addWidget(self.surname_lab, 2, 0)
73 self.layout.addWidget(self.surname, 2, 1)
74 self.layout.addWidget(self.email_lab, 3, 0)
75 self.layout.addWidget(self.email, 3, 1)
76 self.layout.addWidget(self.phone_lab, 4, 0)
77 self.layout.addWidget(self.phone, 4, 1)
78 self.layout.addWidget(self.bday_lab,5,0)
79 self.layout.addLayout(self.bday_layout,5,1)
80 self.layout.addWidget(self.major_lab, 6, 0)
81 self.layout.addWidget(self.major, 6, 1)
82 self.layout.addWidget(self.dorm_lab, 7, 0)
83 self.layout.addWidget(self.dorm, 7, 1)
84 self.layout.addWidget(self.room_lab, 8, 0)
85 self.layout.addWidget(self.room, 8, 1)
86 self.setLayout(self.layout)
87 self.setTitle("Move-in Wizard")
88 self.setSubTitle("Enter your contact information:")
91 def initializePage(self):
93 ldapinfo = a.lookup(str(self.field("netid").toString()))
94 for key,value in ldapinfo.iteritems():
96 self.surname.setText(value)
97 elif(key == "givenName"):
98 self.forename.setText(value)
100 self.email.setText(value)
101 elif(key == "major"):
102 self.major.setText(value)
103 elif(key == "tamuEduPersonNetID"):
104 self.setField("netid",QVariant(QString(value)))
107 if __name__ == "__main__":
108 a = QApplication([""])
110 p = PageNewUserData()