diff options
Diffstat (limited to 'src/app/windowAdmin.py')
| -rw-r--r-- | src/app/windowAdmin.py | 268 |
1 files changed, 268 insertions, 0 deletions
diff --git a/src/app/windowAdmin.py b/src/app/windowAdmin.py new file mode 100644 index 0000000..af27e54 --- /dev/null +++ b/src/app/windowAdmin.py @@ -0,0 +1,268 @@ + +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() |
