Beispiel #1
0
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.teacher = Ui_add_teacher()
        self.teacher.setupUi(self)

        self.conn()

        self.teacher.sel_teach = QSqlRelationalTableModel(db=self.db)
        self.teacher.sel_teach.setTable("Teacher")

        if not self.conn():
            QtGui.QMessageBox.warning(self, 'Error',
                                      'database contecting error')

        self.teacher.Submit_btn.clicked.connect(self.insert_teacher)
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.teacher = Ui_add_teacher()
        self.teacher.setupUi(self)

        self.conn()

        self.teacher.sel_teach = QSqlRelationalTableModel(db = self.db)
        self.teacher.sel_teach.setTable("Teacher")

        if not self.conn():
            QtGui.QMessageBox.warning(
                self, 'Error', 'database contecting error')


        self.teacher.Submit_btn.clicked.connect(self.insert_teacher)
Beispiel #3
0
class add_teacher(QtGui.QDialog):
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.teacher = Ui_add_teacher()
        self.teacher.setupUi(self)

        self.conn()

        self.teacher.sel_teach = QSqlRelationalTableModel(db=self.db)
        self.teacher.sel_teach.setTable("Teacher")

        if not self.conn():
            QtGui.QMessageBox.warning(self, 'Error',
                                      'database contecting error')

        self.teacher.Submit_btn.clicked.connect(self.insert_teacher)

    def check_existing_address(self):
        temp_id = 0
        existing_address_query = QSqlQuery()
        existing_address_query.exec_(
            "SELECT * FROM Address WHERE Street = '%s'\
                            AND City = '%s' AND State = '%s' AND Zipcode = '%s'"
            % (self.address, self.city, self.state, self.zip))
        while existing_address_query.next():
            result = existing_address_query.record()
            temp_id = int(result.value(0))
        print("check ", temp_id)

        return temp_id

    def insert_teacher(self):
        self.name = self.teacher.nameLineEdit.text()
        self.home = self.teacher.homePhoneLineEdit.text()
        if self.home != '':
            self.home = re.sub('[^0-9]+', '', self.home)
            self.home = re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1-",
                               "%d" % int(self.home[:-1])) + self.home[-1]

        self.cell = self.teacher.cellPhoneLineEdit.text()
        if self.cell != '':
            self.cell = re.sub('[^0-9]+', '', self.cell)
            self.cell = re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1-",
                               "%d" % int(self.cell[:-1])) + self.cell[-1]

        self.work = self.teacher.workPhoneLineEdit.text()
        if self.work != '':
            self.work = re.sub('[^0-9]+', '', self.work)
            self.work = re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1-",
                               "%d" % int(self.work[:-1])) + self.work[-1]

        self.address = self.teacher.addressLineEdit.text()
        self.city = self.teacher.cityLineEdit.text()
        self.state = self.teacher.stateComboBox.currentText()
        self.zip = self.teacher.zipcodeLineEdit.text()
        self.email = self.teacher.emailLineEdit.text()
        self.gender = self.teacher.genderComboBox.currentText()
        self.SSN = self.teacher.SSNLineEdit.text()
        self.pay = self.teacher.payRateDoubleSpinBox.value()
        self.medical = self.teacher.medicalTextEdit.toPlainText()
        self.DOB = self.teacher.DOBDateEdit.date()
        self.DOB = self.DOB.toPyDate()
        print(self.home, ' ', len(self.home))
        print("test:", re.match('^\d{5}(-\d{4})?$', self.zip))

        if self.name == '':
            QtGui.QMessageBox.warning(
                self, 'Error',
                "Please fill in required fields: Name, House Phone, Address, City, State, Zipcode, Gender, and Social security number(SSN).\
                    \nPhone number format: ###-###-#### \nAddress format: #'s Street \nSNN format: ###-##-####"
            )

        elif self.home == '' or len(self.home) < 10 or len(self.home) > 12:
            QtGui.QMessageBox.warning(
                self, 'Error',
                "Please enter vaild phone number.\nPhone number format: ###-###-####"
            )

        elif self.cell != '' and len(self.cell) < 10 or len(self.cell) > 12:
            QtGui.QMessageBox.warning(
                self, 'Error',
                "Please enter vaild phone number.\nPhone number format: ###-###-####"
            )

        elif self.work != '' and len(self.work) < 10 or len(self.work) > 12:
            QtGui.QMessageBox.warning(
                self, 'Error',
                "Please enter vaild phone number.\nPhone number format: ###-###-####"
            )

        elif self.address == '' or len(self.address) < 5:
            QtGui.QMessageBox.warning(
                self, 'Error',
                "Please fill in required fields: Name, DOB, House Phone, Address, City, State, Zipcode, Gender, and Social security number(SSN).\
                    \nPhone number format: ###-###-#### \nAddress format: #'s Street \nSNN format: ###-##-####"
            )

        elif self.city == '':
            QtGui.QMessageBox.warning(
                self, 'Error',
                "Please fill in required fields: Name, DOB, House Phone, Address, City, State, Zipcode, Gender, and Social security number(SSN).\
                    \nPhone number format: ###-###-#### \nAddress format: #'s Street \nSNN format: ###-##-####"
            )

        elif self.zip == '' or re.match('^\d{5}(-\d{4})?$', self.zip) == None:
            QtGui.QMessageBox.warning(self, 'Error',
                                      "Please enter a vaild zipcode")

        elif self.SSN == '' or re.match('^\d{3}-\d{2}-\d{4}$',
                                        self.SSN) == None:
            QtGui.QMessageBox.warning(
                self, 'Error',
                "Please enter a vaild SSN. SNN format: ###-##-####")
        else:
            self.address_exist = self.check_existing_address()
            results_msg = "Pending Insert: \n Name:'%s' \n DOB:'%s' \n Home phone:'%s' \n Cell phone:'%s'\
                \n Work phone:'%s' \n Address:'%s' \n City:'%s' \n State:'%s' \
                \n Zipcode: '%s' \n Email:'%s' \n Gender:'%s' \n SSN:'%s' \n Pay:'%s' \n Medical:'%s'" \
                      %( self.name, str(self.DOB), self.home, self.cell, self.work,\
                         self.address, self.city, self.state, self.zip, \
                         self.email, self.gender, self.SSN, str(self.pay), self.medical)
            reply = QtGui.QMessageBox.question(self, 'Message', results_msg,
                                               QtGui.QMessageBox.Yes,
                                               QtGui.QMessageBox.No)
            if reply == QtGui.QMessageBox.Yes:
                if self.address_exist == 0:
                    self.id_query = QSqlQuery()
                    self.id_query.exec_(
                        "SELECT Address_id FROM Address ORDER BY Address_id DESC LIMIT 1"
                    )
                    while self.id_query.next():
                        self.record = self.id_query.record()
                        self.address_id = self.record.value(0)
                        self.address_id += 1

                    self.Insert_Address_query = QSqlQuery()
                    self.Insert_Address_query.exec_("Insert into Address (Address_id, Street,\
                                            City, State, zipcode) values('%u','%s','%s','%s','%s')" \
                                        %( int(self.address_id), self.address, self.city, self.state, self.zip))

                else:
                    self.exist_msg = "Address already exist, setting teacher to existing address."
                    self.exist_reply = QtGui.QMessageBox.information(
                        self, 'Already Exist', self.exist_msg,
                        QtGui.QMessageBox.Ok)

                    self.address_id = self.address_exist
                    print(self.address_id)

                self.id_query = QSqlQuery()
                self.id_query.exec_(
                    "SELECT Teacher_id FROM Teacher ORDER BY Teacher_id DESC LIMIT 1"
                )
                while self.id_query.next():
                    self.record = self.id_query.record()
                    self.Teacher_id = self.record.value(0)
                    self.Teacher_id += 1
                    print(self.Teacher_id)

                Insert_Teacher_query = QSqlQuery()
                Insert_Teacher_query.exec_("Insert into Teacher (Teacher_id,Teacher_name,\
                    Teacher_home_phone, Teacher_cell_phone, Teacher_work_phone,\
                    Teacher_address, Teacher_email, Teacher_sex, Teacher_SSN, \
                    Teacher_pay_rate, Teacher_medical_information, Teacher_date_of_birth)\
                    values(%d,'%s', '%s', '%s','%s',%d,'%s','%s', '%s', '%s', '%s','%s')"
                %(int(self.Teacher_id), self.name, self.home, self.cell, self.work,\
                  int(self.address_id), self.email, self.gender, self.SSN, self.pay,\
                  self.medical, self.DOB))

                self.create_account()

    def create_account(self):
        id_query = QSqlQuery()
        id_query.exec_(
            "SELECT User_id FROM Account ORDER BY User_id DESC LIMIT 1")
        while id_query.next():
            result = id_query.record()
            print("record: ", result.value(0))
            user_id = result.value(0)
            user_id += 1
            print("User id: ", user_id)

            username = self.name
            pword = "rcdancearts"
            access = 2
            stu_id = 0
            teach_id = int(self.Teacher_id)

            print("test: ",int(user_id), username, pword, access, stu_id, \
                             teach_id, 0)

            new_query = QSqlQuery()
            new_query.exec_("Insert into Account (User_id, User_name, User_password,\
               Access_level, Student_id, Teacher_id, Admin_id) values(%d,'%s','%s',%d,\
               %d,%d,%d)"                          % (int(user_id), username, pword, access, stu_id, \
                             teach_id, 0))

    def conn(self):
        self.db = QSqlDatabase.addDatabase("QMYSQL")
        self.db.setHostName("services1.mcs.sdsmt.edu")
        self.db.setDatabaseName("db_dancesoft_f15")
        self.db.setUserName("dancesoft_f15")
        self.db.setPassword("DanceSoft")
        return self.db.open()
class add_teacher(QtGui.QDialog):
    def __init__(self):
        QtGui.QDialog.__init__(self)
        self.teacher = Ui_add_teacher()
        self.teacher.setupUi(self)

        self.conn()

        self.teacher.sel_teach = QSqlRelationalTableModel(db = self.db)
        self.teacher.sel_teach.setTable("Teacher")

        if not self.conn():
            QtGui.QMessageBox.warning(
                self, 'Error', 'database contecting error')


        self.teacher.Submit_btn.clicked.connect(self.insert_teacher)

    def check_existing_address(self):
        temp_id = 0
        existing_address_query =QSqlQuery()
        existing_address_query.exec_("SELECT * FROM Address WHERE Street = '%s'\
                            AND City = '%s' AND State = '%s' AND Zipcode = '%s'" % (self.address, self.city, self.state, self.zip))
        while existing_address_query.next():
            result = existing_address_query.record()
            temp_id =  int(result.value(0))
        print("check ", temp_id)

        return temp_id

    def insert_teacher(self):
            self.name = self.teacher.nameLineEdit.text()
            self.home = self.teacher.homePhoneLineEdit.text()
            if self.home != '':
                self.home = re.sub('[^0-9]+', '', self.home)
                self.home = re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1-", "%d" % int(self.home[:-1])) + self.home[-1]
     
            self.cell = self.teacher.cellPhoneLineEdit.text()
            if self.cell != '':
                self.cell = re.sub('[^0-9]+', '', self.cell)
                self.cell = re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1-", "%d" % int(self.cell[:-1])) + self.cell[-1]
         
            self.work = self.teacher.workPhoneLineEdit.text()
            if self.work != '':
                self.work = re.sub('[^0-9]+', '', self.work)
                self.work = re.sub("(\d)(?=(\d{3})+(?!\d))", r"\1-", "%d" % int(self.work[:-1])) + self.work[-1]
          
            self.address = self.teacher.addressLineEdit.text()
            self.city = self.teacher.cityLineEdit.text()
            self.state = self.teacher.stateComboBox.currentText()
            self.zip = self.teacher.zipcodeLineEdit.text()
            self.email = self.teacher.emailLineEdit.text()
            self.gender = self.teacher.genderComboBox.currentText()
            self.SSN = self.teacher.SSNLineEdit.text()
            self.pay = self.teacher.payRateDoubleSpinBox.value()
            self.medical = self.teacher.medicalTextEdit.toPlainText()
            self.DOB = self.teacher.DOBDateEdit.date()
            self.DOB = self.DOB.toPyDate()
            print(self.home, ' ', len(self.home))
            print("test:",  re.match('^\d{5}(-\d{4})?$', self.zip))

            if self.name == '':
                QtGui.QMessageBox.warning(
                    self, 'Error', "Please fill in required fields: Name, House Phone, Address, City, State, Zipcode, Gender, and Social security number(SSN).\
                    \nPhone number format: ###-###-#### \nAddress format: #'s Street \nSNN format: ###-##-####" )
            
            elif self.home == '' or len(self.home) < 10 or len(self.home) > 12:
                QtGui.QMessageBox.warning(
                    self, 'Error', "Please enter vaild phone number.\nPhone number format: ###-###-####" )
                
            elif self.cell != '' and len(self.cell) < 10 or len(self.cell) > 12:
                QtGui.QMessageBox.warning(
                    self, 'Error', "Please enter vaild phone number.\nPhone number format: ###-###-####" )
                
            elif self.work != '' and len(self.work) < 10 or len(self.work) > 12:
                QtGui.QMessageBox.warning(
                    self, 'Error', "Please enter vaild phone number.\nPhone number format: ###-###-####" )

            elif self.address == '' or len(self.address) < 5:
                QtGui.QMessageBox.warning(
                    self, 'Error', "Please fill in required fields: Name, DOB, House Phone, Address, City, State, Zipcode, Gender, and Social security number(SSN).\
                    \nPhone number format: ###-###-#### \nAddress format: #'s Street \nSNN format: ###-##-####" )
                
            elif self.city == '':
                QtGui.QMessageBox.warning(
                    self, 'Error', "Please fill in required fields: Name, DOB, House Phone, Address, City, State, Zipcode, Gender, and Social security number(SSN).\
                    \nPhone number format: ###-###-#### \nAddress format: #'s Street \nSNN format: ###-##-####" )
                
            elif self.zip == '' or  re.match('^\d{5}(-\d{4})?$', self.zip) == None:
                QtGui.QMessageBox.warning(
                    self, 'Error', "Please enter a vaild zipcode")

            elif self.SSN == '' or  re.match('^\d{3}-\d{2}-\d{4}$', self.SSN) == None:
                QtGui.QMessageBox.warning(
                    self, 'Error', "Please enter a vaild SSN. SNN format: ###-##-####")
            else:
                self.address_exist = self.check_existing_address()
                results_msg = "Pending Insert: \n Name:'%s' \n DOB:'%s' \n Home phone:'%s' \n Cell phone:'%s'\
                \n Work phone:'%s' \n Address:'%s' \n City:'%s' \n State:'%s' \
                \n Zipcode: '%s' \n Email:'%s' \n Gender:'%s' \n SSN:'%s' \n Pay:'%s' \n Medical:'%s'" \
                          %( self.name, str(self.DOB), self.home, self.cell, self.work,\
                             self.address, self.city, self.state, self.zip, \
                             self.email, self.gender, self.SSN, str(self.pay), self.medical)
                reply = QtGui.QMessageBox.question(self, 'Message', 
                             results_msg, QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
                if reply == QtGui.QMessageBox.Yes:
                    if self.address_exist == 0:
                        self.id_query =QSqlQuery()
                        self.id_query.exec_("SELECT Address_id FROM Address ORDER BY Address_id DESC LIMIT 1")
                        while self.id_query.next():
                            self.record = self.id_query.record()
                            self.address_id = self.record.value(0)
                            self.address_id += 1

                        
                        self.Insert_Address_query = QSqlQuery()
                        self.Insert_Address_query.exec_("Insert into Address (Address_id, Street,\
                                            City, State, zipcode) values('%u','%s','%s','%s','%s')" \
                                            %( int(self.address_id), self.address, self.city, self.state, self.zip))

                    else:
                        self.exist_msg = "Address already exist, setting teacher to existing address."
                        self.exist_reply = QtGui.QMessageBox.information(self, 'Already Exist', 
                        self.exist_msg, QtGui.QMessageBox.Ok)

                        self.address_id = self.address_exist
                        print(self.address_id)
                         
                    self.id_query =QSqlQuery()
                    self.id_query.exec_("SELECT Teacher_id FROM Teacher ORDER BY Teacher_id DESC LIMIT 1")
                    while self.id_query.next():
                        self.record = self.id_query.record()
                        self.Teacher_id = self.record.value(0)
                        self.Teacher_id += 1
                        print(self.Teacher_id)

                    
                    Insert_Teacher_query = QSqlQuery()
                    Insert_Teacher_query.exec_("Insert into Teacher (Teacher_id,Teacher_name,\
                    Teacher_home_phone, Teacher_cell_phone, Teacher_work_phone,\
                    Teacher_address, Teacher_email, Teacher_sex, Teacher_SSN, \
                    Teacher_pay_rate, Teacher_medical_information, Teacher_date_of_birth)\
                    values(%d,'%s', '%s', '%s','%s',%d,'%s','%s', '%s', '%s', '%s','%s')"
                    %(int(self.Teacher_id), self.name, self.home, self.cell, self.work,\
                      int(self.address_id), self.email, self.gender, self.SSN, self.pay,\
                      self.medical, self.DOB))

                    self.create_account()

    def create_account(self):
        id_query =QSqlQuery()
        id_query.exec_("SELECT User_id FROM Account ORDER BY User_id DESC LIMIT 1")
        while id_query.next():
            result = id_query.record()
            print("record: ",result.value(0))
            user_id = result.value(0)
            user_id += 1
            print("User id: ",user_id)

            username = self.name
            pword = "rcdancearts"
            access = 2
            stu_id = 0
            teach_id = int(self.Teacher_id)

            print("test: ",int(user_id), username, pword, access, stu_id, \
                             teach_id, 0) 

            new_query = QSqlQuery()
            new_query.exec_("Insert into Account (User_id, User_name, User_password,\
               Access_level, Student_id, Teacher_id, Admin_id) values(%d,'%s','%s',%d,\
               %d,%d,%d)" % (int(user_id), username, pword, access, stu_id, \
                             teach_id, 0))

        

    def conn(self):
        self.db = QSqlDatabase.addDatabase("QMYSQL")
        self.db.setHostName("services1.mcs.sdsmt.edu")
        self.db.setDatabaseName("db_dancesoft_f15")
        self.db.setUserName("dancesoft_f15")
        self.db.setPassword("DanceSoft")
        return self.db.open()