from PyQt5.QtWidgets import ( QDialog, QGroupBox, QLabel, QLineEdit, QVBoxLayout, QHBoxLayout, QGridLayout, QPushButton, QComboBox, QMessageBox ) from src.database.dbadmin import DbAdmin from src.database.dbsearch import DbSearch from src.database.dbmission import DbMission def core_ajout_emploi(mainWindow: object, nomEn: str, nomFr: str) -> int: """""" dbadmin: object = DbAdmin(mainWindow) success: int = dbadmin.register_job_category(nomEn, nomFr) if success: QMessageBox.information( mainWindow, "Ajout d'un emploi", "Emploi ajouté!" ) return 1 else: QMessageBox.warning( mainWindow, "Ajout d'un emploi", "Impossible d'ajouter cet emploi" ) return 0 def core_suppr_emploi(mainWindow: object, jobId: int) -> int: """""" dbadmin: object = DbAdmin(mainWindow) success: int = dbadmin.del_job_category_by_jobid(jobId) if success: QMessageBox.information( mainWindow, "Suppresion d'un emploi", "Emploi supprimé!" ) return 1 else: QMessageBox.warning( mainWindow, "Suppresion d'un emploi", "Impossible de supprimer cet emploi" ) return 0 def core_suppr_user(mainWindow: object, userId: int) -> int: """""" dbadmin: object = DbAdmin(mainWindow) success: int = dbadmin.del_user_by_userid(userId) if success: QMessageBox.information( mainWindow, "Suppresion d'un utilisateur", "Utilisateur supprimé!" ) return 1 else: QMessageBox.warning( mainWindow, "Suppresion d'un utilisateur", "Impossible de supprimer cet utilisateur" ) return 0 def core_suppr_mission(mainWindow: object, missionId: int) -> int: """""" dbadmin: object = DbAdmin(mainWindow) success: int = dbadmin.del_mission_by_missionid(missionId) if success: QMessageBox.information( mainWindow, "Suppresion d'une mission", "Mission supprimé!" ) return 1 else: QMessageBox.warning( mainWindow, "Suppresion d'une mission", "Impossible de supprimer cette mission" ) return 0 class window_admin_emplois(): """""" def cmb_populate(self, mainWindow: object , cmb: object) -> None: """""" # Instanciation DB dbsearch: object = DbSearch(mainWindow) allJobs: object = dbsearch.get_job_all() cmb.clear() for i in allJobs: cmb.addItem(f"{i[2]}", i[0]) def __init__(self, mainWindow: object) -> None: """""" # Fenêtre dial: object = QDialog(parent=mainWindow) dial.setWindowTitle("Admin - Emplois") # Widgets Ajout labAjoutEn: object = QLabel("Nom en Anglais") inpAjoutEn: object = QLineEdit(maxLength=128) labAjoutFr: object = QLabel("Nom en Français") inpAjoutFr: object = QLineEdit(maxLength=128) btnAjout: object = QPushButton("Enregistrer") btnAjout.clicked.connect( lambda: [ core_ajout_emploi( mainWindow, inpAjoutEn.text(), inpAjoutFr.text() ), self.cmb_populate(mainWindow, cmbSuppr) ] ) # Layout Ajout layAjout: object = QGridLayout() layAjout.addWidget(labAjoutEn, 0, 0) layAjout.addWidget(inpAjoutEn, 0, 1) layAjout.addWidget(labAjoutFr, 1, 0) layAjout.addWidget(inpAjoutFr, 1, 1) layAjout.addWidget(btnAjout, 2, 1) # Grp Ajout grpAjout: object = QGroupBox("Ajout d'un emploi") grpAjout.setLayout(layAjout) # Widgets Suppr labSuppr: object = QLabel("Emploi à supprimmer") cmbSuppr: object = QComboBox() self.cmb_populate(mainWindow, cmbSuppr) btnSuppr: object = QPushButton("Supprimer") btnSuppr.clicked.connect( lambda: [ core_suppr_emploi( mainWindow, cmbSuppr.currentData() ), self.cmb_populate(mainWindow, cmbSuppr) ] ) # Layouts Suppr laySuppr: object = QGridLayout() laySuppr.addWidget(labSuppr, 0, 0) laySuppr.addWidget(cmbSuppr, 0, 1) laySuppr.addWidget(btnSuppr, 1, 1) # Grp Suppr grpSuppr: object = QGroupBox("Suppression d'un emploi") grpSuppr.setLayout(laySuppr) # Layout Main & show layMain: object = QVBoxLayout() layMain.addWidget(grpAjout) layMain.addWidget(grpSuppr) dial.setLayout(layMain) dial.show() def window_admin_users(mainWindow: object) -> None: """""" # Instanciation DB dbadmin: object = DbAdmin(mainWindow) allUsers: object = dbadmin.get_all_users_account() # Fenêtre dial: object = QDialog(parent=mainWindow) dial.setWindowTitle("Admin - Utilisateurs") # Widgets Users labCmdUser: object = QLabel("Id à supprimer") inpCmdUser: object = QLineEdit(maxLength=128) btnSuppr: object = QPushButton("Supprimer") btnSuppr.clicked.connect( lambda: [ core_suppr_user( mainWindow, inpCmdUser.text() ), dial.close() ] ) labUsers: list = [] for i in allUsers: labUsers.append(QLabel(f"ID:{i[0]} Mail:{i[1]} Inscr.{i[4]} Status:{i[5]}")) # Layouts Users layCmd: object = QHBoxLayout() layCmd.addStretch() layCmd.addWidget(labCmdUser) layCmd.addWidget(inpCmdUser) layCmd.addWidget(btnSuppr) layCmd.addStretch() layUsers: object = QVBoxLayout() for i in range(len(labUsers)): layUsers.addWidget(labUsers[i]) laySuppr: object = QVBoxLayout() laySuppr.addLayout(layCmd) laySuppr.addLayout(layUsers) # Grp Users grpUser: object = QGroupBox("Suppression d'un utilisateur") grpUser.setLayout(laySuppr) # Layout Main & Show layMain: object = QVBoxLayout() layMain.addWidget(grpUser) dial.setLayout(layMain) dial.show() def window_admin_missions(mainWindow: object): """""" # Instanciation DB dbmission: object = DbMission(mainWindow) dbsearch: object = DbSearch(mainWindow) # Fenêtre dial: object = QDialog(parent=mainWindow) dial.setWindowTitle("Admin - Missions") # Widgets Users labCmdMission: object = QLabel("Id à supprimer") inpCmdMission: object = QLineEdit() btnSuppr: object = QPushButton("Supprimer") btnSuppr.clicked.connect( lambda: [ core_suppr_mission( mainWindow, inpCmdMission.text() ), dial.close() ] ) allMissions: object = dbmission.get_all_missions() labMissions: list = [] for i in allMissions: jobName = dbsearch.get_job_by_jobid(i[10])[0][2] labMissions.append( QLabel( f"ID:{i[0]} date:{i[1].strftime('%m/%d/%Y')} Emploi:{jobName} sujet:{i[2]} clientId:{i[8]} proId:{i[9]}" ) ) # Layouts Missions layCmd: object = QHBoxLayout() layCmd.addStretch() layCmd.addWidget(labCmdMission) layCmd.addWidget(inpCmdMission) layCmd.addWidget(btnSuppr) layCmd.addStretch() layMissions: object = QVBoxLayout() for i in range(len(labMissions)): layMissions.addWidget(labMissions[i]) laySuppr: object = QVBoxLayout() laySuppr.addLayout(layCmd) laySuppr.addLayout(layMissions) # Grp Missions grpMission: object = QGroupBox("Suppression d'une mission") grpMission.setLayout(laySuppr) # Layout Main & Show layMain: object = QVBoxLayout() layMain.addWidget(grpMission) dial.setLayout(layMain) dial.show()