0af93bc98f4a35402be8f10c16258858f7601deb
[biacv.git] / biacv_mainwindow.py
1 # class for main window
2
3 import PyQt4
4 import biacv_mainwindow_ui as bui
5
6 class Biacv_mainwindow (PyQt4.QtGui.QMainWindow, bui.Ui_biacv_mainwindow):
7 def __init__ (self):
8 PyQt4.QtGui.QMainWindow.__init__ (self)
9 self.setupUi (self)
10 self.currentfile = None
11
12 # update professional history button is clicked
13 def on_update_profession (self):
14 # get the selected item
15 selitems = self.professionlist.selectedItems ()
16 if selitems == []:
17 PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "No item selected.")
18 return
19 selitem = selitems[0]
20 # if designation is not set
21 if self.designation.text () == "":
22 PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "A required field is missing.")
23 return
24 # if currently employed in that position, leaving date is to be disabled
25 # and set to "current"
26 if self.currentemployment.isChecked ():
27 leavedatestr = "current"
28 else:
29 # if the leaving date is < join date
30 if self.leavedate.date () < self.joindate.date ():
31 PyQt4.QtGui.QMessageBox.critical (self, "Cannot add",
32 "Leaving date cannot be earlier than join date.")
33 return
34 leavedatestr = self.leavedate.date ().toString ("dd MMM, yyyy")
35
36 selitem.setText (0, self.designation.text ())
37 selitem.setText (1, self.joindate.date ().toString ("dd MMM, yyyy"))
38 selitem.setText (2, leavedatestr)
39 selitem.setText (3, self.organization.text ())
40 selitem.setText (4, self.additionalinfo.text ())
41
42 # delete professional history button is clicked
43 def on_delete_profession (self):
44 # get the selected items
45 selitems = self.professionlist.selectedItems ()
46 if selitems == []:
47 PyQt4.QtGui.QMessageBox.critical (self, "Cannot delete", "No item selected.")
48 return
49 # confirm deletion
50 ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm",
51 "Are you sure you wish to delete the selected item?",
52 PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No)
53 # if confirmed
54 if ans == PyQt4.QtGui.QMessageBox.Yes:
55 for item in selitems:
56 self.professionlist.takeTopLevelItem (self.professionlist.indexOfTopLevelItem (item))
57 self.reset_profession_fields ()
58
59 # add professional history button is clicked
60 def on_add_profession (self):
61 if self.designation.text () == "":
62 PyQt4.QtGui.QMessageBox.critical (self, "Cannot add", "A required field is missing.")
63 return
64 # if currently employed in that position, leaving date is to be disabled
65 # and set to "current"
66 if self.currentemployment.isChecked ():
67 leavedatestr = "current"
68 else:
69 # if the leaving date is < join date
70 if self.leavedate.date () < self.joindate.date ():
71 PyQt4.QtGui.QMessageBox.critical (self, "Cannot add",
72 "Leaving date cannot be earlier than join date.")
73 return
74 leavedatestr = self.leavedate.date ().toString ("dd MMM, yyyy")
75
76 professionitem = PyQt4.QtGui.QTreeWidgetItem (
77 [
78 self.designation.text (),
79 self.joindate.date ().toString ("dd MMM, yyyy"),
80 leavedatestr,
81 self.organization.text (),
82 self.additionalinfo.text ()
83 ]
84 )
85
86 self.professionlist.addTopLevelItem (professionitem)
87
88 self.reset_profession_fields ()
89
90 # when selection of profession list is changed
91 def on_select_profession (self):
92 self.set_profession_fields ()
93
94 # set the profession fields from the selected item in profession list
95 def set_profession_fields (self):
96 selitems = self.professionlist.selectedItems ()
97 if selitems == []:
98 return
99 selitem = selitems[0]
100 self.designation.setText (selitem.text (0))
101 self.joindate.setDate (PyQt4.QtCore.QDate.fromString (selitem.text(1), "dd MMM, yyyy"))
102 if selitem.text (2) == "current":
103 self.leavedate.setEnabled (False)
104 self.currentemployment.setChecked (True)
105 else:
106 self.leavedate.setDate (PyQt4.QtCore.QDate.fromString (selitem.text (2), "dd MMM, yyyy"))
107 self.leavedate.setEnabled (True)
108 self.currentemployment.setChecked (False)
109
110 self.organization.setText (selitem.text (3))
111 self.additionalinfo.setText (selitem.text (4))
112
113 def reset_profession_fields (self):
114 self.designation.setText ("")
115 self.joindate.setDate (PyQt4.QtCore.QDate (2000, 1, 1))
116 self.leavedate.setDate (PyQt4.QtCore.QDate (2003, 1, 1))
117 self.currentemployment.setChecked (False)
118 self.organization.setText ("")
119 self.additionalinfo.setText ("")
120
121 # current employment check box is changed
122 def on_change_currentemployment (self, val):
123 if val == True:
124 self.leavedate.setEnabled (False)
125 else:
126 self.leavedate.setEnabled (True)
127
128 # delete educational qualification
129 def on_delete_education (self):
130 # get the selected items in the education list
131 selitems = self.educationlist.selectedItems ()
132 # if no items are selected
133 if selitems == []:
134 PyQt4.QtGui.QMessageBox.critical (self, "Cannot delete", "No items selected.")
135 # delete the items after confirmation
136 else:
137 ans = PyQt4.QtGui.QMessageBox.question (self, "Confirm",
138 "Are you sure you wish to delete selected item?",
139 PyQt4.QtGui.QMessageBox.Yes, PyQt4.QtGui.QMessageBox.No)
140 if ans == PyQt4.QtGui.QMessageBox.Yes:
141 # remove the item selected
142 for item in selitems:
143 self.educationlist.takeTopLevelItem (self.educationlist.indexOfTopLevelItem (item))
144 self.reset_education_fields ()
145
146 # selection is changed
147 def on_select_education (self):
148 self.set_education_fields ()
149
150 # update educational qualification button
151 def on_update_education (self):
152 selitems = self.educationlist.selectedItems ()
153 # if no item is selected
154 if selitems == []:
155 PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "No item selected")
156 return
157 # if the qualification title is not set
158 if self.degree_name.text () == "":
159 PyQt4.QtGui.QMessageBox.critical (self, "Cannot update", "A required field is missing.")
160 return
161 selitem = selitems[0]
162
163 selitem.setText (0, self.degree_name.text ())
164 selitem.setText (1, self.yearofpassing.date ().toString ("MMM, yyyy"))
165 selitem.setText (2, self.institution.text ())
166 selitem.setText (3, self.university.text ())
167 selitem.setText (4, self.grade.text ())
168 selitem.setText (5, str (self.percentage.value ()))
169
170 # add educational qualification button
171 def on_add_education (self):
172 # check if the qualification title is set
173 if self.degree_name.text () == "":
174 PyQt4.QtGui.QMessageBox.critical (self, "Cannot add", "A required fields is missing.")
175 return
176 educationitem = PyQt4.QtGui.QTreeWidgetItem ([
177 self.degree_name.text (),
178 self.yearofpassing.date ().toString ("MMM, yyyy"),
179 self.institution.text (),
180 self.university.text (),
181 self.grade.text (),
182 str (self.percentage.value ())
183 ])
184 self.educationlist.addTopLevelItem (educationitem)
185 # clear the fields
186 self.reset_education_fields ()
187
188 # set fields in the education tab from current selected item
189 def set_education_fields (self):
190 selitems = self.educationlist.selectedItems ()
191 if selitems == []:
192 return
193 selitem = selitems[0]
194 # set the fields to the data in the selected item in the list
195 self.degree_name.setText (selitem.text (0))
196 self.yearofpassing.setDate (PyQt4.QtCore.QDate.fromString (selitem.text(1), "MMM, yyyy"))
197 self.institution.setText (selitem.text (2))
198 self.university.setText (selitem.text (3))
199 self.grade.setText (selitem.text(4))
200 self.percentage.setValue (self.percentage.valueFromText (selitem.text(5)))
201
202 # reset fields in the education tab
203 def reset_education_fields (self):
204 self.degree_name.setText ("")
205 self.yearofpassing.setDate (PyQt4.QtCore.QDate (1988, 1, 1))
206 self.institution.setText ("")
207 self.university.setText ("")
208 self.grade.setText ("")
209 self.percentage.setValue (50.0)
210