]> git.zarvox.org Git - wp3.git/blob - pagenewuserdata.py
Merge branch 'master' of rabbit:/home/zarvox/wp3
[wp3.git] / pagenewuserdata.py
1 from PyQt4.QtCore import *
2 from PyQt4.QtGui import *
3
4 from ldapsearcher import LDAPSearcher
5
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:")
24                 # Personal info
25                 self.surname = QLineEdit()
26                 self.forename = QLineEdit()
27                 self.phone = QLineEdit()
28                 self.email = QLineEdit()
29                 self.major = QLineEdit()
30                 # Birthday
31                 self.year = QComboBox()
32                 self.month = QComboBox()
33                 self.day = QComboBox()
34                 # Residence locations
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)
50
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)
62                 
63
64                 # Set up layout
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:")
89
90
91         def initializePage(self):
92                 a = LDAPSearcher()
93                 ldapinfo = a.lookup(str(self.field("netid").toString()))
94                 for key,value in ldapinfo.iteritems():
95                         if(key == "sn"):
96                                 self.surname.setText(value)
97                         elif(key == "givenName"):
98                                 self.forename.setText(value)
99                         elif(key == "mail"):
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)))
105
106
107 if __name__ == "__main__":
108         a = QApplication([""])
109         wiz = QWizard()
110         p = PageNewUserData()
111         wiz.addPage(p)
112         wiz.resize(400,300)
113         wiz.show()
114         a.exec_()
115