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.py268
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()