diff options
Diffstat (limited to 'src/app/windowAdmin.py')
| -rw-r--r-- | src/app/windowAdmin.py | 142 |
1 files changed, 105 insertions, 37 deletions
diff --git a/src/app/windowAdmin.py b/src/app/windowAdmin.py index af27e54..c09dea4 100644 --- a/src/app/windowAdmin.py +++ b/src/app/windowAdmin.py @@ -1,4 +1,11 @@ +############################################################################ +# # +# Description: Fenêtres et functions permettant d'administrer la BDD # +# # +############################################################################ + +# Import des éléments de PyQt5 from PyQt5.QtWidgets import ( QDialog, QGroupBox, QLabel, QLineEdit, QVBoxLayout, @@ -6,14 +13,20 @@ from PyQt5.QtWidgets import ( QPushButton, QComboBox, QMessageBox ) +# Import des éléments locals 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: - """""" + """ + Fonction permettant d'ajouter un emploi dans la BDD + avec une fonction de DbAdmin + """ + # Instanciation des méthodes permettant de gérer la BDD en tant qu'admin dbadmin: object = DbAdmin(mainWindow) + # Tentative d'enregistrement du nouveau job avec son nom EN et FR success: int = dbadmin.register_job_category(nomEn, nomFr) if success: QMessageBox.information( @@ -32,8 +45,13 @@ def core_ajout_emploi(mainWindow: object, nomEn: str, nomFr: str) -> int: def core_suppr_emploi(mainWindow: object, jobId: int) -> int: - """""" + """ + Fonction permettant de supprimer un emploi de la BDD + avec une fonction de DbAdmin + """ + # Instanciation des méthodes permettant de gérer la BDD en tant qu'admin dbadmin: object = DbAdmin(mainWindow) + # Tentative de suppression d'un emploi avec son ID success: int = dbadmin.del_job_category_by_jobid(jobId) if success: QMessageBox.information( @@ -52,8 +70,13 @@ def core_suppr_emploi(mainWindow: object, jobId: int) -> int: def core_suppr_user(mainWindow: object, userId: int) -> int: - """""" + """ + Fonction permettant de supprimer un utilisateur de la BDD + avec une fonction de DbAdmin + """ + # Instanciation des méthodes permettant de gérer la BDD en tant qu'admin dbadmin: object = DbAdmin(mainWindow) + # Tentative de suppression d'un emploi avec son ID success: int = dbadmin.del_user_by_userid(userId) if success: QMessageBox.information( @@ -72,8 +95,13 @@ def core_suppr_user(mainWindow: object, userId: int) -> int: def core_suppr_mission(mainWindow: object, missionId: int) -> int: - """""" + """ + Fonction permettant de supprimer une mission de la BDD + avec une fonction de DbAdmin + """ + # Instanciation des méthodes permettant de gérer la BDD en tant qu'admin dbadmin: object = DbAdmin(mainWindow) + # Tentative de suppression d'un emploi avec son ID success: int = dbadmin.del_mission_by_missionid(missionId) if success: QMessageBox.information( @@ -92,24 +120,34 @@ def core_suppr_mission(mainWindow: object, missionId: int) -> int: class window_admin_emplois(): - """""" + """ + Fenêtre permettant de gérer les emplois de la BDD, + permet de pouvoir en ajouter ou en supprimer + """ def cmb_populate(self, mainWindow: object , cmb: object) -> None: - """""" - # Instanciation DB + """ + Méthode permettant de peupler le combobox avec + tous les emplois de la BDD + """ + # Instanciation des méthodes de recherche dans la BDD dbsearch: object = DbSearch(mainWindow) allJobs: object = dbsearch.get_job_all() + # On éfface les éléments présent dans le ComboBox cmb.clear() + # On repeuple avec les nouveaux éléments for i in allJobs: cmb.addItem(f"{i[2]}", i[0]) def __init__(self, mainWindow: object) -> None: - """""" - # Fenêtre + """ + Affichage de la fenêtre + """ + # Instanciation d'une nouvealle fenêtre simple dial: object = QDialog(parent=mainWindow) + # Attribution du titre de cette fenêtre dial.setWindowTitle("Admin - Emplois") - - # Widgets Ajout + # Widgets pour ajouter un nouveau job labAjoutEn: object = QLabel("Nom en Anglais") inpAjoutEn: object = QLineEdit(maxLength=128) labAjoutFr: object = QLabel("Nom en Français") @@ -125,18 +163,17 @@ class window_admin_emplois(): self.cmb_populate(mainWindow, cmbSuppr) ] ) - # Layout Ajout + # GridLayout pour l'ajout d'un nouveau job 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 + # GroupBox pour ce GridLayout grpAjout: object = QGroupBox("Ajout d'un emploi") grpAjout.setLayout(layAjout) - - # Widgets Suppr + # Widgets pour supprimer un job labSuppr: object = QLabel("Emploi à supprimmer") cmbSuppr: object = QComboBox() self.cmb_populate(mainWindow, cmbSuppr) @@ -147,35 +184,38 @@ class window_admin_emplois(): mainWindow, cmbSuppr.currentData() ), + # self. = this. = faire appel à une méthode ou une var qui appartient à notre classe self.cmb_populate(mainWindow, cmbSuppr) ] ) - # Layouts Suppr + # GridLayouts pour supprimer un job laySuppr: object = QGridLayout() laySuppr.addWidget(labSuppr, 0, 0) laySuppr.addWidget(cmbSuppr, 0, 1) laySuppr.addWidget(btnSuppr, 1, 1) - # Grp Suppr + # GroupBox pour ce GridLayout grpSuppr: object = QGroupBox("Suppression d'un emploi") grpSuppr.setLayout(laySuppr) - - # Layout Main & show + # Layout principal auquel on donne les deux GroupBox layMain: object = QVBoxLayout() layMain.addWidget(grpAjout) layMain.addWidget(grpSuppr) dial.setLayout(layMain) + # On affiche la fenêtre dial.show() def window_admin_users(mainWindow: object) -> None: - """""" - # Instanciation DB + """ + Fenêtre permettant de supprimer un utilisateur de la BDD + """ + # Instanciation des méthodes permettant de gérer la BDD en tant qu'admin dbadmin: object = DbAdmin(mainWindow) - allUsers: object = dbadmin.get_all_users_account() - # Fenêtre + # Instanciation d'une nouvealle fenêtre simple dial: object = QDialog(parent=mainWindow) + # Attribution du titre de cette fenêtre dial.setWindowTitle("Admin - Utilisateurs") - # Widgets Users + # Widgets pour supprimer un utilisateur labCmdUser: object = QLabel("Id à supprimer") inpCmdUser: object = QLineEdit(maxLength=128) btnSuppr: object = QPushButton("Supprimer") @@ -188,41 +228,60 @@ def window_admin_users(mainWindow: object) -> None: dial.close() ] ) + # Création d'une liste qui stockera tous les QLabel pour chaque utilisateur labUsers: list = [] + # Récupération de tous les utilisateurs + allUsers: object = dbadmin.get_all_users_account() for i in allUsers: - labUsers.append(QLabel(f"ID:{i[0]} Mail:{i[1]} Inscr.{i[4]} Status:{i[5]}")) - # Layouts Users + if i[5] == 0: + status = "Admin" + elif i[5] == 1: + status = "Pro" + elif i[5] == 2: + status = "Client" + + # On formate une ligne avec les infos utiles + labUsers.append(QLabel(f"ID:{i[0]} Mail:{i[1]} Inscr.{i[4]} Status:{status}")) + # Layout pour la partie "commande" (Qlabel + QlineEdit + QPushButon) layCmd: object = QHBoxLayout() layCmd.addStretch() layCmd.addWidget(labCmdUser) layCmd.addWidget(inpCmdUser) layCmd.addWidget(btnSuppr) layCmd.addStretch() + # Layout pour tous les utilisateurs layUsers: object = QVBoxLayout() for i in range(len(labUsers)): layUsers.addWidget(labUsers[i]) + + # Layout pour accueillir le layout des commandes et des utilisateurs laySuppr: object = QVBoxLayout() laySuppr.addLayout(layCmd) laySuppr.addLayout(layUsers) - # Grp Users + # GroupeBox principal grpUser: object = QGroupBox("Suppression d'un utilisateur") grpUser.setLayout(laySuppr) - # Layout Main & Show + # Layout principal layMain: object = QVBoxLayout() layMain.addWidget(grpUser) dial.setLayout(layMain) + # Affichage de la fenêtre dial.show() def window_admin_missions(mainWindow: object): - """""" - # Instanciation DB + """ + Fenêtre permettant de supprimer une mission de la BDD + """ + # Instanciation des méthodes pour faire des + # recherches dans la BDD dbmission: object = DbMission(mainWindow) dbsearch: object = DbSearch(mainWindow) - # Fenêtre + # Instanciation d'une nouvealle fenêtre simple dial: object = QDialog(parent=mainWindow) + # Attribution du titre de cette fenêtre dial.setWindowTitle("Admin - Missions") - # Widgets Users + # Widgets pour supprimer un mission labCmdMission: object = QLabel("Id à supprimer") inpCmdMission: object = QLineEdit() btnSuppr: object = QPushButton("Supprimer") @@ -232,37 +291,46 @@ def window_admin_missions(mainWindow: object): mainWindow, inpCmdMission.text() ), + # On ferme la fenêtre une fois la mission supprimer + # pour ne pas avoir à la rafraichir dial.close() ] ) - allMissions: object = dbmission.get_all_missions() + # Création d'une liste qui stockera tous les QLabel pour chaque mission labMissions: list = [] + # Récupération de toutes les missions + allMissions: object = dbmission.get_all_missions() for i in allMissions: + # On récupère le nom FR ([2]), du job de la mission (i[10]) du premier resultat renvoyé par MySQL ([0]) jobName = dbsearch.get_job_by_jobid(i[10])[0][2] + # On formate une ligne avec les infos utiles et en formatant les dates avec strftime 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]}" + f"ID:{i[0]} Emise le:{i[1].strftime('%m/%d/%Y')} Job:{jobName} Sujet:{i[2]} IdClient:{i[8]} IdPro:{i[9]}" ) ) - # Layouts Missions + # Layout pour la partie "commande" (Qlabel + QlineEdit + QPushButon) layCmd: object = QHBoxLayout() layCmd.addStretch() layCmd.addWidget(labCmdMission) layCmd.addWidget(inpCmdMission) layCmd.addWidget(btnSuppr) layCmd.addStretch() + # Layout pour toutes les missions layMissions: object = QVBoxLayout() for i in range(len(labMissions)): layMissions.addWidget(labMissions[i]) + # Layout pour accueillir le layout des commandes et des missions laySuppr: object = QVBoxLayout() laySuppr.addLayout(layCmd) laySuppr.addLayout(layMissions) - # Grp Missions + # GroupeBox principal grpMission: object = QGroupBox("Suppression d'une mission") grpMission.setLayout(laySuppr) - # Layout Main & Show + # Layout principal layMain: object = QVBoxLayout() layMain.addWidget(grpMission) dial.setLayout(layMain) + # Affichage de la fenêtre dial.show() |
