Esempio n. 1
0
    def __init__(self, name):
        self.name = name

        QtGui.QDialog.__init__(self)
        self.ui = Ui_Stu_reg_dialog()
        self.ui.setupUi(self)
        self.ui.Update_detail_btn.clicked.connect(self.update)
        self.ui.Id_detail_lineEdit.setEnabled(False)

        #show detial
        stu_query = QSqlQuery()
        stu_query.exec_("select * from Student where Student_name = '%s'" %
                        self.name)
        stu_query.next()

        self.ui.List_detail_btn.clicked.connect(self.show_list)

        #insert to combobox
        self.g_dict = {}
        guradian_query = QSqlQuery()
        guradian_query.exec_("select Guardian_name, Guardian_id from Guardian")

        while guradian_query.next():
            self.ui.Pguradian_detail_comboBox.addItem(guradian_query.value(0))
            self.g_dict[guradian_query.value(0)] = guradian_query.value(1)
            self.ui.Sguardian_detail_comboBox.addItem(guradian_query.value(0))

        if not isinstance(stu_query.value(1), QtCore.QPyNullVariant):
            StuAddress = stu_query.value(1)
            address_query = QSqlQuery()
            address_query.exec_(
                "select Street, City, State, Zipcode from Address where Address_id = %d"
                % StuAddress)
            address_query.next()

            #address
            self.ui.Address_detail_lineEdit.setText(address_query.value(0))

            #city
            self.ui.City_detail_lineEdit.setText(address_query.value(1))

            #state
            index = self.ui.State_detail_ComboBox.findText(
                address_query.value(2))
            self.ui.State_detail_ComboBox.setCurrentIndex(index)

            #zipcode
            self.ui.Zipcode_detail_lineEdit.setText(str(
                address_query.value(3)))

        if not isinstance(stu_query.value(8), QtCore.QPyNullVariant):
            StuPG = stu_query.value(8)
            guardian_query = QSqlQuery()
            guardian_query.exec_(
                "select Guardian_name from Guardian where Guardian_id = %d" %
                StuPG)
            guardian_query.next()
            text = guardian_query.value(0)
            index = self.ui.Pguradian_detail_comboBox.findText(
                guardian_query.value(0))
            self.ui.Pguradian_detail_comboBox.setCurrentIndex(index)

        if not isinstance(stu_query.value(9), QtCore.QPyNullVariant):
            StuSG = stu_query.value(9)
            guardian_query = QSqlQuery()
            guardian_query.exec_(
                "select Guardian_name from Guardian where Guardian_id = %d" %
                StuSG)
            guardian_query.next()
            text = guardian_query.value(0)
            index = self.ui.Sguardian_detail_comboBox.findText(
                guardian_query.value(0))
            self.ui.Sguardian_detail_comboBox.setCurrentIndex(index)

        if not isinstance(stu_query.value(0), QtCore.QPyNullVariant):
            self.id = stu_query.value(0)
            self.ui.Id_detail_lineEdit.setText(str(stu_query.value(0)))

        if not isinstance(stu_query.value(2), QtCore.QPyNullVariant):
            self.ui.Name_detail_lineEdit.setText(stu_query.value(2))
            self.orinName = stu_query.value(2)

        #gender
        if not isinstance(stu_query.value(3), QtCore.QPyNullVariant):
            index = self.ui.Gender_comboBox.findText(stu_query.value(3))
            self.ui.Gender_comboBox.setCurrentIndex(index)

        if not isinstance(stu_query.value(4), QtCore.QPyNullVariant):
            self.ui.Email_detail_lineEdit.setText(stu_query.value(4))
        if not isinstance(stu_query.value(5), QtCore.QPyNullVariant):
            self.ui.Birth_detail_dateEdit.setDate(stu_query.value(5))

        if not isinstance(stu_query.value(6), QtCore.QPyNullVariant):
            self.ui.Phone_detail_lineEdit.setText(stu_query.value(6))

        if not isinstance(stu_query.value(7), QtCore.QPyNullVariant):
            self.ui.Cphone_detail_lineEdit.setText(stu_query.value(7))

        if not isinstance(stu_query.value(10), QtCore.QPyNullVariant):
            self.ui.Econtact_detail_lineEdit.setText(stu_query.value(10))

        if not isinstance(stu_query.value(11), QtCore.QPyNullVariant):
            self.ui.Ephone_detail_lineEdit.setText(stu_query.value(11))

        if not isinstance(stu_query.value(12), QtCore.QPyNullVariant):
            self.ui.Medical_detail_textEdit.setText(stu_query.value(12))
Esempio n. 2
0
class Stu_reg_dialog(QtGui.QDialog):
    def __init__(self, name):
        self.name = name

        QtGui.QDialog.__init__(self)
        self.ui = Ui_Stu_reg_dialog()
        self.ui.setupUi(self)
        self.ui.Update_detail_btn.clicked.connect(self.update)
        self.ui.Id_detail_lineEdit.setEnabled(False)

        #show detial
        stu_query = QSqlQuery()
        stu_query.exec_("select * from Student where Student_name = '%s'" %
                        self.name)
        stu_query.next()

        self.ui.List_detail_btn.clicked.connect(self.show_list)

        #insert to combobox
        self.g_dict = {}
        guradian_query = QSqlQuery()
        guradian_query.exec_("select Guardian_name, Guardian_id from Guardian")

        while guradian_query.next():
            self.ui.Pguradian_detail_comboBox.addItem(guradian_query.value(0))
            self.g_dict[guradian_query.value(0)] = guradian_query.value(1)
            self.ui.Sguardian_detail_comboBox.addItem(guradian_query.value(0))

        if not isinstance(stu_query.value(1), QtCore.QPyNullVariant):
            StuAddress = stu_query.value(1)
            address_query = QSqlQuery()
            address_query.exec_(
                "select Street, City, State, Zipcode from Address where Address_id = %d"
                % StuAddress)
            address_query.next()

            #address
            self.ui.Address_detail_lineEdit.setText(address_query.value(0))

            #city
            self.ui.City_detail_lineEdit.setText(address_query.value(1))

            #state
            index = self.ui.State_detail_ComboBox.findText(
                address_query.value(2))
            self.ui.State_detail_ComboBox.setCurrentIndex(index)

            #zipcode
            self.ui.Zipcode_detail_lineEdit.setText(str(
                address_query.value(3)))

        if not isinstance(stu_query.value(8), QtCore.QPyNullVariant):
            StuPG = stu_query.value(8)
            guardian_query = QSqlQuery()
            guardian_query.exec_(
                "select Guardian_name from Guardian where Guardian_id = %d" %
                StuPG)
            guardian_query.next()
            text = guardian_query.value(0)
            index = self.ui.Pguradian_detail_comboBox.findText(
                guardian_query.value(0))
            self.ui.Pguradian_detail_comboBox.setCurrentIndex(index)

        if not isinstance(stu_query.value(9), QtCore.QPyNullVariant):
            StuSG = stu_query.value(9)
            guardian_query = QSqlQuery()
            guardian_query.exec_(
                "select Guardian_name from Guardian where Guardian_id = %d" %
                StuSG)
            guardian_query.next()
            text = guardian_query.value(0)
            index = self.ui.Sguardian_detail_comboBox.findText(
                guardian_query.value(0))
            self.ui.Sguardian_detail_comboBox.setCurrentIndex(index)

        if not isinstance(stu_query.value(0), QtCore.QPyNullVariant):
            self.id = stu_query.value(0)
            self.ui.Id_detail_lineEdit.setText(str(stu_query.value(0)))

        if not isinstance(stu_query.value(2), QtCore.QPyNullVariant):
            self.ui.Name_detail_lineEdit.setText(stu_query.value(2))
            self.orinName = stu_query.value(2)

        #gender
        if not isinstance(stu_query.value(3), QtCore.QPyNullVariant):
            index = self.ui.Gender_comboBox.findText(stu_query.value(3))
            self.ui.Gender_comboBox.setCurrentIndex(index)

        if not isinstance(stu_query.value(4), QtCore.QPyNullVariant):
            self.ui.Email_detail_lineEdit.setText(stu_query.value(4))
        if not isinstance(stu_query.value(5), QtCore.QPyNullVariant):
            self.ui.Birth_detail_dateEdit.setDate(stu_query.value(5))

        if not isinstance(stu_query.value(6), QtCore.QPyNullVariant):
            self.ui.Phone_detail_lineEdit.setText(stu_query.value(6))

        if not isinstance(stu_query.value(7), QtCore.QPyNullVariant):
            self.ui.Cphone_detail_lineEdit.setText(stu_query.value(7))

        if not isinstance(stu_query.value(10), QtCore.QPyNullVariant):
            self.ui.Econtact_detail_lineEdit.setText(stu_query.value(10))

        if not isinstance(stu_query.value(11), QtCore.QPyNullVariant):
            self.ui.Ephone_detail_lineEdit.setText(stu_query.value(11))

        if not isinstance(stu_query.value(12), QtCore.QPyNullVariant):
            self.ui.Medical_detail_textEdit.setText(stu_query.value(12))

    def show_list(self):
        self.ui.class_list = Class_list_dialog(self.id)
        self.ui.class_list.show()

    def update(self):
        self.StuID = self.ui.Id_detail_lineEdit.text()
        self.StuName = self.ui.Name_detail_lineEdit.text()
        self.StuGender = self.ui.Gender_comboBox.currentText()
        self.StuEmail = self.ui.Email_detail_lineEdit.text()
        self.StuBirth = self.ui.Birth_detail_dateEdit.date()
        self.StuBirth = self.StuBirth.toPyDate()

        self.StuPhone = self.ui.Phone_detail_lineEdit.text()
        self.StuCphone = self.ui.Cphone_detail_lineEdit.text()

        self.StuEcon = self.ui.Econtact_detail_lineEdit.text()
        self.StuEphone = self.ui.Ephone_detail_lineEdit.text()
        self.StuAddress = self.ui.Address_detail_lineEdit.text()
        self.StuAddress = self.StuAddress.upper()
        self.StuCity = self.ui.City_detail_lineEdit.text()
        self.StuCity = self.StuCity.upper()
        self.StuState = self.ui.State_detail_ComboBox.currentText()
        self.StuMedical = self.ui.Medical_detail_textEdit.toPlainText()
        self.StuZipcode = self.ui.Zipcode_detail_lineEdit.text()

        self.StuPG = self.g_dict[
            self.ui.Pguradian_detail_comboBox.currentText()]
        self.StuSG = self.g_dict[
            self.ui.Sguardian_detail_comboBox.currentText()]

        name_query = QSqlQuery()
        name_query.exec_("select Student_name from Student")

        #needs error checking
        #if name empty
        if self.StuName == "":
            QtGui.QMessageBox.warning(self, 'Error',
                                      "student name cannot be empty!")
            return
        elif self.StuName != "" and self.orinName != self.StuName:
            while name_query.next():
                if (name_query.value(0) == self.StuName):
                    QtGui.QMessageBox.warning(self, 'Error',
                                              "student name cannot be same!")
                    return

        #email
        if self.StuEmail != "" and \
        re.match('^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$', self.StuEmail ) == None:
            QtGui.QMessageBox.warning(self, 'Error',
                                      "please enter a valid email address!")
            return

        #check if the home phone is valid
        if self.StuPhone == "":
            QtGui.QMessageBox.warning(self, 'Error',
                                      "home phone cannot be empty!")
            return
        elif self.StuPhone != "" and re.match('^[2-9]\d{2}-\d{3}-\d{4}$',
                                              self.StuPhone) == None:
            QtGui.QMessageBox.warning(
                self, 'Error',
                "please enter a valid home phone number in XXX-XXX-XXXX format!"
            )
            return

        #check if the cell phone is valid
        if self.StuCphone != "" and re.match('^[2-9]\d{2}-\d{3}-\d{4}$',
                                             self.StuCphone) == None:
            QtGui.QMessageBox.warning(
                self, 'Error',
                "please enter a valid cell phone number in XXX-XXX-XXXX format!"
            )
            return

        #check emer phone is valid
        if self.StuEphone != "" and re.match('^[2-9]\d{2}-\d{3}-\d{4}$',
                                             self.StuEphone) == None:
            QtGui.QMessageBox.warning(
                self, 'Error',
                "please enter an valid emergency phone number in XXX-XXX-XXXX format!"
            )
            return

        #check address
        if self.StuAddress == "":
            QtGui.QMessageBox.warning(self, 'Error', "Adress cannot be empty!")
            return
        #check city
        if self.StuCity == "":
            QtGui.QMessageBox.warning(self, 'Error', "City cannot be empty!")
            return
        #ckeck zipcode
        if self.StuZipcode == "" or re.match('^\d{5}(-\d{4})?$',
                                             self.StuZipcode) == None:
            QtGui.QMessageBox.warning(self, 'Error',
                                      "Please enter a vaild zipcode")
            return
        elif self.StuZipcode != "" and not self.StuZipcode.isdigit():
            QtGui.QMessageBox.warning(self, 'Error',
                                      "please enter a valid zipcode!")
            return

        update_query = QSqlQuery()

        if update_query.exec_("Update Student, Address Set Student.Student_name = '%s', Student.Student_sex = '%s', Student.Student_email = '%s', \
                           Student.Student_date_of_birth = '%s', Student.Student_home_phone = '%s', Student.Student_cell_phone = '%s', Student.Student_Emergency_contact = '%s', Student.Emergency_contact_phone = '%s', \
                           Student.Student_medical_information = '%s', Student.Guardian_primary = %d, Student.Guardian_secondary = %d,\
                           Address.Street = '%s', Address.City = '%s', Address.State = '%s', Address.Zipcode = '%s'\
                           Where Student.Student_id = '%d' and Student.Student_address = Address.Address_id"\
                           %(self.StuName,  self.StuGender, self.StuEmail, self.StuBirth, self.StuPhone, self.StuCphone, self.StuEcon, self.StuEphone,\
                           self.StuMedical, self.StuPG, self.StuSG,self.StuAddress, self.StuCity, self.StuState, self.StuZipcode, int(self.StuID))):
            QtGui.QMessageBox.information(self, 'Success',
                                          'Update record successfully')
        else:
            QtGui.QMessageBox.warning(self, 'Error',
                                      'Update record unsuccessfully')
Esempio n. 3
0
class Stu_reg_dialog(QtGui.QDialog):
    def __init__(self, name):
        self.name = name

        QtGui.QDialog.__init__(self)
        self.ui = Ui_Stu_reg_dialog()
        self.ui.setupUi(self)
        self.ui.Update_detail_btn.clicked.connect(self.update)
        self.ui.Id_detail_lineEdit.setEnabled(False)

        #show detial
        stu_query = QSqlQuery()
        stu_query.exec_("select * from Student where Student_name = '%s'" %
                        self.name)
        stu_query.next()

        self.ui.List_detail_btn.clicked.connect(self.show_list)

        if not isinstance(stu_query.value(1), QtCore.QPyNullVariant):
            StuAddress = stu_query.value(1)
            address_query = QSqlQuery()
            address_query.exec_(
                "select Street, City, State, Zipcode from Address where Address_id = %d"
                % StuAddress)
            address_query.next()
            self.ui.Address_detail_lineEdit.setText(address_query.value(0))
            self.ui.City_detail_lineEdit.setText(address_query.value(1))
            self.ui.State_detail_lineEdit.setText(address_query.value(2))

        if not isinstance(stu_query.value(8), QtCore.QPyNullVariant):
            StuPG = stu_query.value(8)
            guardian_query = QSqlQuery()
            guardian_query.exec_(
                "select Guardian_name from Guardian where Guardian_id = %d" %
                StuPG)
            guardian_query.next()
            self.ui.Pguradian_detail_lineEdit.setText(guardian_query.value(0))
        if not isinstance(stu_query.value(9), QtCore.QPyNullVariant):
            StuSG = stu_query.value(9)
            guardian_query = QSqlQuery()
            guardian_query.exec_(
                "select Guardian_name from Guardian where Guardian_id = %d" %
                StuSG)
            guardian_query.next()
            self.ui.Sguardian_detail_lineEdit.setText(guardian_query.value(0))

        if not isinstance(stu_query.value(0), QtCore.QPyNullVariant):
            self.id = stu_query.value(0)
            self.ui.Id_detail_lineEdit.setText(str(stu_query.value(0)))

        if not isinstance(stu_query.value(2), QtCore.QPyNullVariant):
            self.ui.Name_detail_lineEdit.setText(stu_query.value(2))

        if not isinstance(stu_query.value(3), QtCore.QPyNullVariant):
            self.ui.Gender_detail_lineEdit.setText(stu_query.value(3))

        if not isinstance(stu_query.value(4), QtCore.QPyNullVariant):
            self.ui.Email_detail_lineEdit.setText(stu_query.value(4))
        if not isinstance(stu_query.value(5), QtCore.QPyNullVariant):
            self.ui.Birth_detail_dateEdit.setDate(stu_query.value(5))

        if not isinstance(stu_query.value(6), QtCore.QPyNullVariant):
            self.ui.Phone_detail_lineEdit.setText(stu_query.value(6))

        if not isinstance(stu_query.value(10), QtCore.QPyNullVariant):
            self.ui.Econtact_detail_lineEdit.setText(stu_query.value(10))

        if not isinstance(stu_query.value(11), QtCore.QPyNullVariant):
            self.ui.Ephone_detail_lineEdit.setText(stu_query.value(11))

        if not isinstance(stu_query.value(12), QtCore.QPyNullVariant):
            self.ui.Medical_detail_textEdit.setText(stu_query.value(12))

        if not isinstance(stu_query.value(13), QtCore.QPyNullVariant):
            self.ui.Tuition_detail_lineEdit.setText(str(stu_query.value(13)))

    def show_list(self):
        self.ui.class_list = Class_list_dialog(self.id)
        self.ui.class_list.show()

    def update(self):
        self.StuID = self.ui.Id_detail_lineEdit.text()
        self.StuName = self.ui.Name_detail_lineEdit.text()
        self.StuGender = self.ui.Gender_detail_lineEdit.text()
        self.StuEmail = self.ui.Email_detail_lineEdit.text()
        self.StuBirth = self.ui.Birth_detail_dateEdit.date()
        self.StuPhone = self.ui.Phone_detail_lineEdit.text()
        self.StuPG = self.ui.Pguradian_detail_lineEdit.text()
        self.StuSG = self.ui.Sguardian_detail_lineEdit.text()
        self.StuEcon = self.ui.Econtact_detail_lineEdit.text()
        self.StuEphone = self.ui.Ephone_detail_lineEdit.text()
        self.StuTuition = self.ui.Tuition_detail_lineEdit.text()
        self.StuAddress = self.ui.Address_detail_lineEdit.text()
        self.StuCity = self.ui.City_detail_lineEdit.text()
        self.StuState = self.ui.State_detail_lineEdit.text()
        self.StuMedical = self.ui.Medical_detail_textEdit.toPlainText()

        update_query = QSqlQuery()

        if update_query.exec_("Update Student, Address, Guardian Set Student.Student_name = '%s', Student.Student_sex = '%s', Student.Student_email = '%s', \
                           Student.Student_date_of_birth = '%s', Student.Student_home_phone = '%s', Student.Student_Emergency_contact = '%s', Student.Emergency_contact_phone = '%s', \
                           Student.Student_medical_information = '%s', Student.Tuition = '%s', \
                           Address.Street = '%s', Address.City = '%s', Address.State = '%s', Guardian.Guardian_name = '%s'\
                           Where Student.Student_id = '%d' and Student.Student_address = Address.Address_id and Student.Guardian_primary = Guardian.Guardian_id"\
                           %(self.StuName,  self.StuGender, self.StuEmail, self.StuBirth.toString("yyyy-MM-dd"), self.StuPhone,  self.StuEcon, self.StuEphone,\
                           self.StuMedical, self.StuTuition, self.StuAddress, self.StuCity, self.StuState, self.StuPG, int(self.StuID)))\
            and update_query.exec_("Update Student, Guardian Set Guardian.Guardian_name = '%s '\
                                    Where Student.Student_id = '%d' and Student.Guardian_secondary = Guardian.Guardian_id" \
                                   %(self.StuSG, int(self.StuID))):
            QtGui.QMessageBox.information(self, 'Success',
                                          'Update record successfully')
        else:
            QtGui.QMessageBox.warning(self, 'Error',
                                      'Update record unsuccessfully')
Esempio n. 4
0
    def __init__(self, name):
        self.name = name

        QtGui.QDialog.__init__(self)
        self.ui = Ui_Stu_reg_dialog()
        self.ui.setupUi(self)
        self.ui.Update_detail_btn.clicked.connect(self.update)
        self.ui.Id_detail_lineEdit.setEnabled(False)

        #show detial
        stu_query = QSqlQuery()
        stu_query.exec_("select * from Student where Student_name = '%s'" %
                        self.name)
        stu_query.next()

        self.ui.List_detail_btn.clicked.connect(self.show_list)

        if not isinstance(stu_query.value(1), QtCore.QPyNullVariant):
            StuAddress = stu_query.value(1)
            address_query = QSqlQuery()
            address_query.exec_(
                "select Street, City, State, Zipcode from Address where Address_id = %d"
                % StuAddress)
            address_query.next()
            self.ui.Address_detail_lineEdit.setText(address_query.value(0))
            self.ui.City_detail_lineEdit.setText(address_query.value(1))
            self.ui.State_detail_lineEdit.setText(address_query.value(2))

        if not isinstance(stu_query.value(8), QtCore.QPyNullVariant):
            StuPG = stu_query.value(8)
            guardian_query = QSqlQuery()
            guardian_query.exec_(
                "select Guardian_name from Guardian where Guardian_id = %d" %
                StuPG)
            guardian_query.next()
            self.ui.Pguradian_detail_lineEdit.setText(guardian_query.value(0))
        if not isinstance(stu_query.value(9), QtCore.QPyNullVariant):
            StuSG = stu_query.value(9)
            guardian_query = QSqlQuery()
            guardian_query.exec_(
                "select Guardian_name from Guardian where Guardian_id = %d" %
                StuSG)
            guardian_query.next()
            self.ui.Sguardian_detail_lineEdit.setText(guardian_query.value(0))

        if not isinstance(stu_query.value(0), QtCore.QPyNullVariant):
            self.id = stu_query.value(0)
            self.ui.Id_detail_lineEdit.setText(str(stu_query.value(0)))

        if not isinstance(stu_query.value(2), QtCore.QPyNullVariant):
            self.ui.Name_detail_lineEdit.setText(stu_query.value(2))

        if not isinstance(stu_query.value(3), QtCore.QPyNullVariant):
            self.ui.Gender_detail_lineEdit.setText(stu_query.value(3))

        if not isinstance(stu_query.value(4), QtCore.QPyNullVariant):
            self.ui.Email_detail_lineEdit.setText(stu_query.value(4))
        if not isinstance(stu_query.value(5), QtCore.QPyNullVariant):
            self.ui.Birth_detail_dateEdit.setDate(stu_query.value(5))

        if not isinstance(stu_query.value(6), QtCore.QPyNullVariant):
            self.ui.Phone_detail_lineEdit.setText(stu_query.value(6))

        if not isinstance(stu_query.value(10), QtCore.QPyNullVariant):
            self.ui.Econtact_detail_lineEdit.setText(stu_query.value(10))

        if not isinstance(stu_query.value(11), QtCore.QPyNullVariant):
            self.ui.Ephone_detail_lineEdit.setText(stu_query.value(11))

        if not isinstance(stu_query.value(12), QtCore.QPyNullVariant):
            self.ui.Medical_detail_textEdit.setText(stu_query.value(12))

        if not isinstance(stu_query.value(13), QtCore.QPyNullVariant):
            self.ui.Tuition_detail_lineEdit.setText(str(stu_query.value(13)))
class Stu_reg_dialog(QtGui.QDialog):
    def __init__(self, name):
        self.name = name
        
        QtGui.QDialog.__init__(self)
        self.ui = Ui_Stu_reg_dialog()
        self.ui.setupUi(self)
        self.ui.Update_detail_btn.clicked.connect(self.update)
        self.ui.Id_detail_lineEdit.setEnabled(False)


        #show detial
        stu_query = QSqlQuery()
        stu_query.exec_("select * from Student where Student_name = '%s'" % self.name)
        stu_query.next()

        self.ui.List_detail_btn.clicked.connect(self.show_list)


        #insert to combobox
        self.g_dict = {}
        guradian_query = QSqlQuery()
        guradian_query.exec_("select Guardian_name, Guardian_id from Guardian")

        while guradian_query.next():
            self.ui.Pguradian_detail_comboBox.addItem(guradian_query.value(0))
            self.g_dict[guradian_query.value(0)] = guradian_query.value(1)
            self.ui.Sguardian_detail_comboBox.addItem(guradian_query.value(0))


        if not isinstance(stu_query.value(1), QtCore.QPyNullVariant):
            StuAddress = stu_query.value(1)
            address_query = QSqlQuery()
            address_query.exec_("select Street, City, State, Zipcode from Address where Address_id = %d" % StuAddress)
            address_query.next()

            #address
            self.ui.Address_detail_lineEdit.setText(address_query.value(0))

            #city
            self.ui.City_detail_lineEdit.setText(address_query.value(1))

            #state
            index = self.ui.State_detail_ComboBox.findText(address_query.value(2))
            self.ui.State_detail_ComboBox.setCurrentIndex(index)

            #zipcode
            self.ui.Zipcode_detail_lineEdit.setText(str(address_query.value(3)))
            
        
        if not isinstance(stu_query.value(8), QtCore.QPyNullVariant):
            StuPG = stu_query.value(8)
            guardian_query = QSqlQuery()
            guardian_query.exec_("select Guardian_name from Guardian where Guardian_id = %d"% StuPG)
            guardian_query.next()
            text = guardian_query.value(0)
            index = self.ui.Pguradian_detail_comboBox.findText(guardian_query.value(0))
            self.ui.Pguradian_detail_comboBox.setCurrentIndex(index)

            
        if not isinstance(stu_query.value(9), QtCore.QPyNullVariant):
            StuSG = stu_query.value(9)
            guardian_query = QSqlQuery()
            guardian_query.exec_("select Guardian_name from Guardian where Guardian_id = %d"% StuSG)
            guardian_query.next()
            text = guardian_query.value(0) 
            index = self.ui.Sguardian_detail_comboBox.findText(guardian_query.value(0))
            self.ui.Sguardian_detail_comboBox.setCurrentIndex(index)
        
        if not isinstance(stu_query.value(0), QtCore.QPyNullVariant):
            self.id = stu_query.value(0)
            self.ui.Id_detail_lineEdit.setText(str(stu_query.value(0)))
            
        if not isinstance(stu_query.value(2), QtCore.QPyNullVariant):
            self.ui.Name_detail_lineEdit.setText(stu_query.value(2))
            self.orinName = stu_query.value(2)

        #gender
        if not isinstance(stu_query.value(3), QtCore.QPyNullVariant):
            index = self.ui.Gender_comboBox.findText(stu_query.value(3))
            self.ui.Gender_comboBox.setCurrentIndex(index)
    
        if not isinstance(stu_query.value(4), QtCore.QPyNullVariant):
            self.ui.Email_detail_lineEdit.setText(stu_query.value(4))
        if not isinstance(stu_query.value(5), QtCore.QPyNullVariant):
            self.ui.Birth_detail_dateEdit.setDate(stu_query.value(5)) 

        if not isinstance(stu_query.value(6), QtCore.QPyNullVariant):
            self.ui.Phone_detail_lineEdit.setText(stu_query.value(6))
            
        if not isinstance(stu_query.value(7), QtCore.QPyNullVariant):
            self.ui.Cphone_detail_lineEdit.setText(stu_query.value(7))

        if not isinstance(stu_query.value(10), QtCore.QPyNullVariant):
            self.ui.Econtact_detail_lineEdit.setText(stu_query.value(10))
            
        if not isinstance(stu_query.value(11), QtCore.QPyNullVariant):
            self.ui.Ephone_detail_lineEdit.setText(stu_query.value(11))
            
        if not isinstance(stu_query.value(12), QtCore.QPyNullVariant):
            self.ui.Medical_detail_textEdit.setText(stu_query.value(12))
            
        

    def show_list(self):
        self.ui.class_list = Class_list_dialog(self.id)
        self.ui.class_list.show()
        
    def update(self):
        self.StuID = self.ui.Id_detail_lineEdit.text()
        self.StuName = self.ui.Name_detail_lineEdit.text()      
        self.StuGender = self.ui.Gender_comboBox.currentText()   
        self.StuEmail = self.ui.Email_detail_lineEdit.text()
        self.StuBirth = self.ui.Birth_detail_dateEdit.date()
        self.StuBirth = self.StuBirth.toPyDate()
        
        self.StuPhone = self.ui.Phone_detail_lineEdit.text()
        self.StuCphone = self.ui.Cphone_detail_lineEdit.text()
        
        self.StuEcon = self.ui.Econtact_detail_lineEdit.text()
        self.StuEphone = self.ui.Ephone_detail_lineEdit.text()
        self.StuAddress = self.ui.Address_detail_lineEdit.text()
        self.StuAddress = self.StuAddress.upper()
        self.StuCity = self.ui.City_detail_lineEdit.text()
        self.StuCity =  self.StuCity.upper()
        self.StuState = self.ui.State_detail_ComboBox.currentText()
        self.StuMedical = self.ui.Medical_detail_textEdit.toPlainText()
        self.StuZipcode = self.ui.Zipcode_detail_lineEdit.text()


        self.StuPG = self.g_dict[self.ui.Pguradian_detail_comboBox.currentText()]
        self.StuSG = self.g_dict[self.ui.Sguardian_detail_comboBox.currentText()]

        name_query = QSqlQuery()
        name_query.exec_("select Student_name from Student")
        

        #needs error checking
        #if name empty
        if self.StuName == "":
            QtGui.QMessageBox.warning(
                    self, 'Error', "student name cannot be empty!" )
            return
        elif self.StuName != "" and self.orinName != self.StuName:
            while name_query.next():
                if (name_query.value(0) == self.StuName):
                    QtGui.QMessageBox.warning(
                    self, 'Error', "student name cannot be same!" )
                    return 

        #email
        if self.StuEmail != "" and \
        re.match('^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$', self.StuEmail ) == None:
            QtGui.QMessageBox.warning(
                    self, 'Error', "please enter a valid email address!" )
            return
        
        #check if the home phone is valid
        if self.StuPhone == "":
            QtGui.QMessageBox.warning(
                    self, 'Error', "home phone cannot be empty!" )
            return
        elif self.StuPhone != "" and re.match('^[2-9]\d{2}-\d{3}-\d{4}$', self.StuPhone) == None:
            QtGui.QMessageBox.warning(
                    self, 'Error', "please enter a valid home phone number in XXX-XXX-XXXX format!")
            return

        #check if the cell phone is valid
        if self.StuCphone != "" and re.match('^[2-9]\d{2}-\d{3}-\d{4}$', self.StuCphone) == None:
            QtGui.QMessageBox.warning(
                    self, 'Error', "please enter a valid cell phone number in XXX-XXX-XXXX format!")
            return

        #check emer phone is valid
        if self.StuEphone != "" and re.match('^[2-9]\d{2}-\d{3}-\d{4}$', self.StuEphone) == None:
            QtGui.QMessageBox.warning(
                    self, 'Error', "please enter an valid emergency phone number in XXX-XXX-XXXX format!")
            return

        #check address
        if self.StuAddress == "":
            QtGui.QMessageBox.warning(
                    self, 'Error', "Adress cannot be empty!")
            return
        #check city
        if self.StuCity == "":
            QtGui.QMessageBox.warning(
                    self, 'Error', "City cannot be empty!")
            return
        #ckeck zipcode
        if self.StuZipcode == "" or re.match('^\d{5}(-\d{4})?$', self.StuZipcode) == None:
            QtGui.QMessageBox.warning(
                self, 'Error', "Please enter a vaild zipcode")
            return 
        elif self.StuZipcode != "" and not self.StuZipcode.isdigit():
            QtGui.QMessageBox.warning(
                    self, 'Error', "please enter a valid zipcode!")
            return 

        update_query = QSqlQuery()
        
        if update_query.exec_("Update Student, Address Set Student.Student_name = '%s', Student.Student_sex = '%s', Student.Student_email = '%s', \
                           Student.Student_date_of_birth = '%s', Student.Student_home_phone = '%s', Student.Student_cell_phone = '%s', Student.Student_Emergency_contact = '%s', Student.Emergency_contact_phone = '%s', \
                           Student.Student_medical_information = '%s', Student.Guardian_primary = %d, Student.Guardian_secondary = %d,\
                           Address.Street = '%s', Address.City = '%s', Address.State = '%s', Address.Zipcode = '%s'\
                           Where Student.Student_id = '%d' and Student.Student_address = Address.Address_id"\
                           %(self.StuName,  self.StuGender, self.StuEmail, self.StuBirth, self.StuPhone, self.StuCphone, self.StuEcon, self.StuEphone,\
                           self.StuMedical, self.StuPG, self.StuSG,self.StuAddress, self.StuCity, self.StuState, self.StuZipcode, int(self.StuID))):
            QtGui.QMessageBox.information(
                self, 'Success', 'Update record successfully')
        else:
                       QtGui.QMessageBox.warning(
                self, 'Error', 'Update record unsuccessfully')
    def __init__(self, name):
        self.name = name
        
        QtGui.QDialog.__init__(self)
        self.ui = Ui_Stu_reg_dialog()
        self.ui.setupUi(self)
        self.ui.Update_detail_btn.clicked.connect(self.update)
        self.ui.Id_detail_lineEdit.setEnabled(False)


        #show detial
        stu_query = QSqlQuery()
        stu_query.exec_("select * from Student where Student_name = '%s'" % self.name)
        stu_query.next()

        self.ui.List_detail_btn.clicked.connect(self.show_list)


        #insert to combobox
        self.g_dict = {}
        guradian_query = QSqlQuery()
        guradian_query.exec_("select Guardian_name, Guardian_id from Guardian")

        while guradian_query.next():
            self.ui.Pguradian_detail_comboBox.addItem(guradian_query.value(0))
            self.g_dict[guradian_query.value(0)] = guradian_query.value(1)
            self.ui.Sguardian_detail_comboBox.addItem(guradian_query.value(0))


        if not isinstance(stu_query.value(1), QtCore.QPyNullVariant):
            StuAddress = stu_query.value(1)
            address_query = QSqlQuery()
            address_query.exec_("select Street, City, State, Zipcode from Address where Address_id = %d" % StuAddress)
            address_query.next()

            #address
            self.ui.Address_detail_lineEdit.setText(address_query.value(0))

            #city
            self.ui.City_detail_lineEdit.setText(address_query.value(1))

            #state
            index = self.ui.State_detail_ComboBox.findText(address_query.value(2))
            self.ui.State_detail_ComboBox.setCurrentIndex(index)

            #zipcode
            self.ui.Zipcode_detail_lineEdit.setText(str(address_query.value(3)))
            
        
        if not isinstance(stu_query.value(8), QtCore.QPyNullVariant):
            StuPG = stu_query.value(8)
            guardian_query = QSqlQuery()
            guardian_query.exec_("select Guardian_name from Guardian where Guardian_id = %d"% StuPG)
            guardian_query.next()
            text = guardian_query.value(0)
            index = self.ui.Pguradian_detail_comboBox.findText(guardian_query.value(0))
            self.ui.Pguradian_detail_comboBox.setCurrentIndex(index)

            
        if not isinstance(stu_query.value(9), QtCore.QPyNullVariant):
            StuSG = stu_query.value(9)
            guardian_query = QSqlQuery()
            guardian_query.exec_("select Guardian_name from Guardian where Guardian_id = %d"% StuSG)
            guardian_query.next()
            text = guardian_query.value(0) 
            index = self.ui.Sguardian_detail_comboBox.findText(guardian_query.value(0))
            self.ui.Sguardian_detail_comboBox.setCurrentIndex(index)
        
        if not isinstance(stu_query.value(0), QtCore.QPyNullVariant):
            self.id = stu_query.value(0)
            self.ui.Id_detail_lineEdit.setText(str(stu_query.value(0)))
            
        if not isinstance(stu_query.value(2), QtCore.QPyNullVariant):
            self.ui.Name_detail_lineEdit.setText(stu_query.value(2))
            self.orinName = stu_query.value(2)

        #gender
        if not isinstance(stu_query.value(3), QtCore.QPyNullVariant):
            index = self.ui.Gender_comboBox.findText(stu_query.value(3))
            self.ui.Gender_comboBox.setCurrentIndex(index)
    
        if not isinstance(stu_query.value(4), QtCore.QPyNullVariant):
            self.ui.Email_detail_lineEdit.setText(stu_query.value(4))
        if not isinstance(stu_query.value(5), QtCore.QPyNullVariant):
            self.ui.Birth_detail_dateEdit.setDate(stu_query.value(5)) 

        if not isinstance(stu_query.value(6), QtCore.QPyNullVariant):
            self.ui.Phone_detail_lineEdit.setText(stu_query.value(6))
            
        if not isinstance(stu_query.value(7), QtCore.QPyNullVariant):
            self.ui.Cphone_detail_lineEdit.setText(stu_query.value(7))

        if not isinstance(stu_query.value(10), QtCore.QPyNullVariant):
            self.ui.Econtact_detail_lineEdit.setText(stu_query.value(10))
            
        if not isinstance(stu_query.value(11), QtCore.QPyNullVariant):
            self.ui.Ephone_detail_lineEdit.setText(stu_query.value(11))
            
        if not isinstance(stu_query.value(12), QtCore.QPyNullVariant):
            self.ui.Medical_detail_textEdit.setText(stu_query.value(12))