0f0f9ada407a04206497ab8b9bad1d63c8c52632
2 # class for main window
5 import biacv_mainwindow_ui
as bui
6 import biacv_lang
as lang
8 class Biacv_mainwindow (PyQt4
.QtGui
.QMainWindow
, bui
.Ui_biacv_mainwindow
):
10 PyQt4
.QtGui
.QMainWindow
.__init
__ (self
)
12 self
.currentfile
= None
14 # update a language in the list of languages
15 def on_update_lang (self
):
16 # get the selected language
17 selitems
= self
.languageslist
.selectedItems ()
19 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_UPDATE
, lang
.ERROR_NO_SELECTION
)
21 # check if the language string is not empty
22 if self
.language
.text () == "":
23 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_UPDATE
, lang
.ERROR_REQ_MISSING
)
26 selitem
.setText (0, self
.language
.text ())
27 selitem
.setText (1, str (self
.canspeak
.isChecked ()))
28 selitem
.setText (2, str (self
.canreadwrite
.isChecked ()))
29 selitem
.setText (3, str (self
.isproficient
.isChecked ()))
31 # selecting a language from the list of languages
32 def on_select_lang (self
):
33 # set the language fields from the selected item
34 self
.set_language_fields ()
36 # delete a language from the list of languages known
37 def on_delete_lang (self
):
38 # get selected language
39 selitems
= self
.languageslist
.selectedItems ()
41 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_DELETE
, lang
.ERROR_REQ_MISSING
)
44 ans
= PyQt4
.QtGui
.QMessageBox
.question (self
, lang
.CONFIRM
, lang
.CONFIRM_DELETE
,
45 PyQt4
.QtGui
.QMessageBox
.Yes
, PyQt4
.QtGui
.QMessageBox
.No
)
46 if ans
== PyQt4
.QtGui
.QMessageBox
.Yes
:
48 self
.languageslist
.takeTopLevelItem (self
.languageslist
.indexOfTopLevelItem (item
))
50 self
.reset_language_fields ()
52 # add a language to the list of languages known
53 def on_add_lang (self
):
54 # check if the language is set
55 if self
.language
.text () == "":
56 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_ADD
, lang
.ERROR_REQ_MISSING
)
58 langitem
= PyQt4
.QtGui
.QTreeWidgetItem (
60 self
.language
.text (),
61 str (self
.canspeak
.isChecked ()),
62 str (self
.canreadwrite
.isChecked ()),
63 str (self
.isproficient
.isChecked ())
66 self
.languageslist
.addTopLevelItem (langitem
)
67 self
.reset_language_fields ()
69 # set the language fields from the selected item
70 def set_language_fields (self
):
71 selitems
= self
.languageslist
.selectedItems ()
75 self
.language
.setText (selitem
.text (0))
76 self
.canspeak
.setChecked (selitem
.text (1) == "True")
77 self
.canreadwrite
.setChecked (selitem
.text(2) == "True")
78 self
.isproficient
.setChecked (selitem
.text(3) == "True")
80 # reset the language fields
81 def reset_language_fields (self
):
82 self
.language
.setText ("")
83 self
.canspeak
.setChecked (True)
84 self
.canreadwrite
.setChecked (False)
85 self
.isproficient
.setChecked (False)
87 # update the skill set button event
88 def on_update_skill (self
):
89 # get the selected item
90 selitems
= self
.skillslist
.selectedItems ()
92 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_UPDATE
, lang
.ERROR_NO_SELECTION
)
94 if self
.skillsettitle
.text () == "":
95 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_UPDATE
, lang
.ERROR_REQ_MISSING
)
99 selitem
.setText (0, self
.skillsettitle
.text ())
100 selitem
.setText (1, self
.skilldescription
.toPlainText ())
102 # selecting a skill from the list event
103 def on_select_skill (self
):
104 self
.set_skill_fields ()
106 # set the skill fields from the selected skill from the list
107 def set_skill_fields (self
):
108 # get the selected items
109 selitems
= self
.skillslist
.selectedItems ()
112 selitem
= selitems
[0]
113 self
.skillsettitle
.setText (selitem
.text (0))
114 self
.skilldescription
.setPlainText (selitem
.text (1))
116 # delete skill set button is clicked
117 def on_delete_skill (self
):
118 # get the selected items
119 selitems
= self
.skillslist
.selectedItems ()
121 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_DELETE
, lang
.ERROR_NO_SELECTION
)
124 ans
= PyQt4
.QtGui
.QMessageBox
.question (self
, lang
.CONFIRM
, lang
.CONFIRM_DELETE
,
125 PyQt4
.QtGui
.QMessageBox
.Yes
, PyQt4
.QtGui
.QMessageBox
.No
)
127 if ans
== PyQt4
.QtGui
.QMessageBox
.Yes
:
128 for item
in selitems
:
129 self
.skillslist
.takeTopLevelItem (self
.skillslist
.indexOfTopLevelItem (item
))
131 self
.reset_skillset_fields ()
133 # add skill set button is clicked
134 def on_add_skill (self
):
135 # if the skill title is blank
136 if self
.skillsettitle
.text () == "":
137 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_ADD
, lang
.ERROR_REQ_MISSING
)
139 skillitem
= PyQt4
.QtGui
.QTreeWidgetItem (
141 self
.skillsettitle
.text (),
142 self
.skilldescription
.toPlainText ()
145 self
.skillslist
.addTopLevelItem (skillitem
)
146 self
.reset_skillset_fields ()
148 # clear the skill set fields
149 def reset_skillset_fields (self
):
150 self
.skillsettitle
.setText ("")
151 self
.skilldescription
.setPlainText ("")
153 # update professional history button is clicked
154 def on_update_profession (self
):
155 # get the selected item
156 selitems
= self
.professionlist
.selectedItems ()
158 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_UPDATE
, lang
.ERROR_NO_SELECTION
)
160 selitem
= selitems
[0]
161 # if designation is not set
162 if self
.designation
.text () == "":
163 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_UPDATE
, lang
.ERROR_REQ_MISSING
)
165 # if currently employed in that position, leaving date is to be disabled
166 # and set to "current"
167 if self
.currentemployment
.isChecked ():
168 leavedatestr
= "current"
170 # if the leaving date is < join date
171 if self
.leavedate
.date () < self
.joindate
.date ():
172 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_ADD
, lang
.ERROR_DATE
)
174 leavedatestr
= self
.leavedate
.date ().toString ("dd MMM, yyyy")
176 selitem
.setText (0, self
.designation
.text ())
177 selitem
.setText (1, self
.joindate
.date ().toString ("dd MMM, yyyy"))
178 selitem
.setText (2, leavedatestr
)
179 selitem
.setText (3, self
.organization
.text ())
180 selitem
.setText (4, self
.additionalinfo
.text ())
182 # delete professional history button is clicked
183 def on_delete_profession (self
):
184 # get the selected items
185 selitems
= self
.professionlist
.selectedItems ()
187 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_DELETE
, lang
.ERROR_NO_SELECTION
)
190 ans
= PyQt4
.QtGui
.QMessageBox
.question (self
, lang
.CONFIRM
, lang
.CONFIRM_DELETE
,
191 PyQt4
.QtGui
.QMessageBox
.Yes
, PyQt4
.QtGui
.QMessageBox
.No
)
193 if ans
== PyQt4
.QtGui
.QMessageBox
.Yes
:
194 for item
in selitems
:
195 self
.professionlist
.takeTopLevelItem (self
.professionlist
.indexOfTopLevelItem (item
))
196 self
.reset_profession_fields ()
198 # add professional history button is clicked
199 def on_add_profession (self
):
200 if self
.designation
.text () == "":
201 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_ADD
, lang
.ERROR_REQ_MISSING
)
203 # if currently employed in that position, leaving date is to be disabled
204 # and set to "current"
205 if self
.currentemployment
.isChecked ():
206 leavedatestr
= "current"
208 # if the leaving date is < join date
209 if self
.leavedate
.date () < self
.joindate
.date ():
210 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_ADD
, lang
.ERROR_DATE
)
212 leavedatestr
= self
.leavedate
.date ().toString ("dd MMM, yyyy")
214 professionitem
= PyQt4
.QtGui
.QTreeWidgetItem (
216 self
.designation
.text (),
217 self
.joindate
.date ().toString ("dd MMM, yyyy"),
219 self
.organization
.text (),
220 self
.additionalinfo
.text ()
224 self
.professionlist
.addTopLevelItem (professionitem
)
226 self
.reset_profession_fields ()
228 # when selection of profession list is changed
229 def on_select_profession (self
):
230 self
.set_profession_fields ()
232 # set the profession fields from the selected item in profession list
233 def set_profession_fields (self
):
234 selitems
= self
.professionlist
.selectedItems ()
237 selitem
= selitems
[0]
238 self
.designation
.setText (selitem
.text (0))
239 self
.joindate
.setDate (PyQt4
.QtCore
.QDate
.fromString (selitem
.text(1), "dd MMM, yyyy"))
240 if selitem
.text (2) == "current":
241 self
.leavedate
.setEnabled (False)
242 self
.currentemployment
.setChecked (True)
244 self
.leavedate
.setDate (PyQt4
.QtCore
.QDate
.fromString (selitem
.text (2), "dd MMM, yyyy"))
245 self
.leavedate
.setEnabled (True)
246 self
.currentemployment
.setChecked (False)
248 self
.organization
.setText (selitem
.text (3))
249 self
.additionalinfo
.setText (selitem
.text (4))
251 def reset_profession_fields (self
):
252 self
.designation
.setText ("")
253 self
.joindate
.setDate (PyQt4
.QtCore
.QDate (2000, 1, 1))
254 self
.leavedate
.setDate (PyQt4
.QtCore
.QDate (2003, 1, 1))
255 self
.currentemployment
.setChecked (False)
256 self
.organization
.setText ("")
257 self
.additionalinfo
.setText ("")
259 # current employment check box is changed
260 def on_change_currentemployment (self
, val
):
262 self
.leavedate
.setEnabled (False)
264 self
.leavedate
.setEnabled (True)
266 # delete educational qualification
267 def on_delete_education (self
):
268 # get the selected items in the education list
269 selitems
= self
.educationlist
.selectedItems ()
270 # if no items are selected
272 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_DELETE
, lang
.ERROR_NO_SELECTION
)
273 # delete the items after confirmation
275 ans
= PyQt4
.QtGui
.QMessageBox
.question (self
, lang
.CONFIRM
, lang
.CONFIRM_DELETE
,
276 PyQt4
.QtGui
.QMessageBox
.Yes
, PyQt4
.QtGui
.QMessageBox
.No
)
277 if ans
== PyQt4
.QtGui
.QMessageBox
.Yes
:
278 # remove the item selected
279 for item
in selitems
:
280 self
.educationlist
.takeTopLevelItem (self
.educationlist
.indexOfTopLevelItem (item
))
281 self
.reset_education_fields ()
283 # selection is changed
284 def on_select_education (self
):
285 self
.set_education_fields ()
287 # update educational qualification button
288 def on_update_education (self
):
289 selitems
= self
.educationlist
.selectedItems ()
290 # if no item is selected
292 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_UPDATE
, lang
.ERROR_NO_SELECTION
)
294 # if the qualification title is not set
295 if self
.degree_name
.text () == "":
296 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_UPDATE
, lang
.ERROR_REQ_MISSING
)
298 selitem
= selitems
[0]
300 selitem
.setText (0, self
.degree_name
.text ())
301 selitem
.setText (1, self
.yearofpassing
.date ().toString ("MMM, yyyy"))
302 selitem
.setText (2, self
.institution
.text ())
303 selitem
.setText (3, self
.university
.text ())
304 selitem
.setText (4, self
.grade
.text ())
305 selitem
.setText (5, str (self
.percentage
.value ()))
307 # add educational qualification button
308 def on_add_education (self
):
309 # check if the qualification title is set
310 if self
.degree_name
.text () == "":
311 PyQt4
.QtGui
.QMessageBox
.critical (self
, lang
.ERROR_ADD
, lang
.ERROR_REQ_MISSING
)
313 educationitem
= PyQt4
.QtGui
.QTreeWidgetItem ([
314 self
.degree_name
.text (),
315 self
.yearofpassing
.date ().toString ("MMM, yyyy"),
316 self
.institution
.text (),
317 self
.university
.text (),
319 str (self
.percentage
.value ())
321 self
.educationlist
.addTopLevelItem (educationitem
)
323 self
.reset_education_fields ()
325 # set fields in the education tab from current selected item
326 def set_education_fields (self
):
327 selitems
= self
.educationlist
.selectedItems ()
330 selitem
= selitems
[0]
331 # set the fields to the data in the selected item in the list
332 self
.degree_name
.setText (selitem
.text (0))
333 self
.yearofpassing
.setDate (PyQt4
.QtCore
.QDate
.fromString (selitem
.text(1), "MMM, yyyy"))
334 self
.institution
.setText (selitem
.text (2))
335 self
.university
.setText (selitem
.text (3))
336 self
.grade
.setText (selitem
.text(4))
337 self
.percentage
.setValue (self
.percentage
.valueFromText (selitem
.text(5)))
339 # reset fields in the education tab
340 def reset_education_fields (self
):
341 self
.degree_name
.setText ("")
342 self
.yearofpassing
.setDate (PyQt4
.QtCore
.QDate (1988, 1, 1))
343 self
.institution
.setText ("")
344 self
.university
.setText ("")
345 self
.grade
.setText ("")
346 self
.percentage
.setValue (50.0)