summaryrefslogtreecommitdiff
path: root/src/app/windowAdmin.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/app/windowAdmin.py')
-rw-r--r--src/app/windowAdmin.py142
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()