Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
 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()
Exemplo n.º 4
0
 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()
Exemplo n.º 5
0
 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("")
Exemplo n.º 6
0
 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()