def __init__(self): super(Ui, self).__init__() # Call the inherited classes __init__ method uic.loadUi(join(dirname(__file__), 'UI/login.ui'), self) # Load the .ui file self.show() # Show the GUI self.loginButton.setStyleSheet( "QPushButton#loginButton{ color: white; background-color: #222628; } QPushButton#loginButton::hover{ background-color: #4e5152;} QPushButton#loginButton::pressed{background-color: black;}" ) self.db_import.triggered.connect(self.import_db) self.db_import.setShortcut(QtGui.QKeySequence("Ctrl+i")) self.loginButton.clicked.connect(self.login_button_clicked) self.user.returnPressed.connect(self.login_button_clicked) self.passwd.returnPressed.connect(self.login_button_clicked) if (not file_exists(CONFIG_FILE_PATH)): create_properties() sql_con = sqlite.sqlite_connector() # Agafem el connector de SQLite if (len(sql_con.get_users()) == 0): if comprobation_message( 'Primer inicio', 'No existe ninguna base de datos, la que había ha sido eliminada o no hay usuarios. ¿Quieres crear el primero?' ): # If OK is clicked in the button self.create_user_window = create_user.Create_user( first_user=True) else: if comprobation_message( 'Primer inicio', '¿Quieres importar una base de datos?'): import_db(self)
def check_patients_without_doctor(self): sql_con = sqlite.sqlite_connector() patients_without_doctor = sql_con.get_patients_no_doctor() sql_con.close() for patient in patients_without_doctor: if comprobation_message('Paciente sin médico', 'El paciente '+patient[1]+" "+patient[2]+' ('+patient[0]+'), no tiene ningún médico asignado ya que el que tenía se ha eliminado. ¿Quieres añadirle un nuevo médico ahora?'): self.new_window = edit_patient.Edit_patient(patient[0], True)
def add_patient(self): sql_con = sqlite.sqlite_connector() if (len(self.dni.text()) < 9): # Major que 9 no pot ser perque està controlat a l'interfície QtWidgets.QMessageBox.critical(self, 'ERROR', "Introduce un DNI válido.") elif(self.dni_letters[int(self.dni.text()[:-1]) % 23] != self.dni.text()[-1]): QtWidgets.QMessageBox.critical(self, 'ERROR', "Letra del DNI errónea") elif(self.nom.text() == ""): QtWidgets.QMessageBox.critical(self, 'ERROR', "Es obligatorio introducir un nombre.") elif(not self.check_mail): QtWidgets.QMessageBox.critical(self, 'ERROR', "El e-mail no és correcto.") else: try: sql_con.add_patient(self.dni.text(), self.nom.text(), self.cognom.text(), self.medicos.currentText(), self.direccio.text(), self.telefon.text(), self.mail.text(), self.sip.text(), self.altura.text(), self.pes.text(), self.naiximent.text(), self.hombre.isChecked(), self.diagnostic.text(), self.fase.currentIndex(), self.imc.text(), self.grasa.text(), self.medicacio.toPlainText(), photo_to_blob(self.fotoCara.pixmap()), photo_to_blob(self.fotoCuerpo.pixmap())) QtWidgets.QMessageBox.information(self, 'Paciente añadido', "¡El paciente ha sido añadido con éxito!") if comprobation_message('Añadir otro paciente', '¿Quieres añadir otro paciente?'): # If OK is clicked in the button self.dni.setText("") self.nom.setText("") self.cognom.setText("") else: self.close() except sqlite.sqlite3.IntegrityError as e: QtWidgets.QMessageBox.critical(self, 'ERROR', "Ya existe un paciente con este DNI") print(e) finally: sql_con.close()
def delete_patient(self): if comprobation_message('Comprobación', '¿Estás seguro de querer eliminar al paciente '+self.patient_item.text()+' (DNI: '+self.patients_dni[self.model.indexFromItem(self.patient_item).row()]+')?'): sql_con = sqlite.sqlite_connector() sql_con.delete_patient(self.patients_dni[self.model.indexFromItem(self.patient_item).row()]) sql_con.close() QtWidgets.QMessageBox.information(self, 'Confirmación', "El paciente ha sido eliminado con éxito.") self.refresh_list() self.borrarPaciente.hide()
def create_user(self): dni = self.user.text() passwd = self.passwd.text() if (len(dni) < 9 ): # Major que 9 no pot ser perque està controlat a l'interfície QtWidgets.QMessageBox.critical(self, 'ERROR', "El DNI debe ser de 9 dígitos.") elif (self.dni_letters[int(dni[:-1]) % 23] != dni[-1]): QtWidgets.QMessageBox.critical(self, 'ERROR', "Letra del DNI errónea") elif (len(passwd) < 8): QtWidgets.QMessageBox.critical( self, 'ERROR', "La contraseña no puede ser menor a 8 carácteres.") elif (passwd != self.repeat_pass.text()): QtWidgets.QMessageBox.critical(self, 'ERROR', "Las contraseñas no coinciden.") else: try: sql_con = sqlite.sqlite_connector() if (self.first_user): sql_con.create_initial_table() # Creem les taules inicials sql_con.create_user(dni, passwd, self.adminCheck.isChecked()) QtWidgets.QMessageBox.information( self, 'Usuario añadido', "¡El usuario ha sido añadido con éxito!") if comprobation_message('Añadir otro usuario', '¿Quieres añadir otro usuario?' ): # If OK is clicked in the button self.user.setText("") self.passwd.setText("") self.repeat_pass.setText("") try: self.adminCheck.toggled.disconnect(self.set_true) except TypeError: pass else: self.close() except sqlite.sqlite3.IntegrityError: QtWidgets.QMessageBox.critical( self, 'ERROR', "Ya existe un usuario con este DNI") finally: self.user.setText("") self.passwd.setText("") self.repeat_pass.setText("")
def delete_user(self): if self.current_user == self.dni: # Arreglar aço QtWidgets.QMessageBox.critical( self, 'ERROR', "No puedes eliminar tu propio usuario.") else: if comprobation_message( 'Comprobación', '¿Estás seguro de querer eliminar al usuario ' + self.dni + '?'): sql_con = sqlite.sqlite_connector() if (sql_con.delete_user(self.dni)): QtWidgets.QMessageBox.information( self, 'Confirmación', "El usuario ha sido eliminado con éxito.") self.refresh_list() else: QtWidgets.QMessageBox.critical( self, 'ERROR', "El usuario no puede eliminarse porque es el único administrador." ) sql_con.close()