diff options
Diffstat (limited to 'src/gui/windowAdmin.py')
| -rw-r--r-- | src/gui/windowAdmin.py | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/src/gui/windowAdmin.py b/src/gui/windowAdmin.py new file mode 100644 index 0000000..3996615 --- /dev/null +++ b/src/gui/windowAdmin.py @@ -0,0 +1,180 @@ + +from PyQt5.QtWidgets import ( + QDialog, QGroupBox, QLabel, + QLineEdit, QVBoxLayout, QHBoxLayout, + QGridLayout, QPushButton, QComboBox +) +from src.database import dbsearch, dbadmin, dbmission +from src.core import coreAdmin + + +class admin_emplois(): + def cmb_populate(self, mainWindow: object , cmb: object) -> None: + # Instanciation DB + search: object = dbsearch.DbSearch(mainWindow) + allJobs: object = search.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() + labAjoutFr: object = QLabel("Nom en Français") + inpAjoutFr: object = QLineEdit() + btnAjout: object = QPushButton("Enregistrer") + btnAjout.clicked.connect( + lambda: [ + coreAdmin.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: [ + coreAdmin.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 + layoutMain: object = QVBoxLayout() + layoutMain.addWidget(grpAjout) + layoutMain.addWidget(grpSuppr) + dial.setLayout(layoutMain) + dial.show() + + +def admin_users(mainWindow: object) -> None: + # Instanciation DB + admin: object = dbadmin.DbAdmin(mainWindow) + allUsers: object = admin.get_all_users_account() + + # Fenêtre + dial: object = QDialog(parent = mainWindow) + dial.setWindowTitle("Admin - Utilisateurs") + + # Widgets Users + labUserId: object = QLabel("Id à supprimer") + inpUserId: object = QLineEdit() + btnSuppr: object = QPushButton("Supprimer") + btnSuppr.clicked.connect( + lambda: [ + coreAdmin.core_suppr_user( + mainWindow, + inpUserId.text() + ), + dial.close() + ] + ) + labAllUsers: list = [] + for i in allUsers: + labAllUsers.append(QLabel(f"ID:{i[0]} Mail:{i[1]} Inscr.{i[4]} Status:{i[5]}")) + # Layouts Users + layUsersCmd: object = QHBoxLayout() + layUsersCmd.addStretch() + layUsersCmd.addWidget(labUserId) + layUsersCmd.addWidget(inpUserId) + layUsersCmd.addWidget(btnSuppr) + layUsersCmd.addStretch() + layUsers: object = QVBoxLayout() + for i in range(len(labAllUsers)): + layUsers.addWidget(labAllUsers[i]) + layUserMain: object = QVBoxLayout() + layUserMain.addLayout(layUsersCmd) + layUserMain.addLayout(layUsers) + # Grp Users + grpUser: object = QGroupBox("Suppression d'un utilisateur") + grpUser.setLayout(layUserMain) + + # Layout Main & Show + layoutMain: object = QVBoxLayout() + layoutMain.addWidget(grpUser) + dial.setLayout(layoutMain) + dial.show() + + +def admin_missions(mainWindow: object): + # Instanciation DB + mission: object = dbmission.DbMission(mainWindow) + search: object = dbsearch.DbSearch(mainWindow) + + # Fenêtre + dial: object = QDialog(parent = mainWindow) + dial.setWindowTitle("Admin - Missions") + + # Widgets Users + labMissionId: object = QLabel("Id à supprimer") + inpMissionId: object = QLineEdit() + btnSuppr: object = QPushButton("Supprimer") + btnSuppr.clicked.connect( + lambda: [ + coreAdmin.core_suppr_mission( + mainWindow, + inpMissionId.text() + ), + dial.close() + ] + ) + allMissions: object = mission.get_all_missions() + labAllMissions: list = [] + for i in allMissions: + emploi = search.get_job_by_jobid(i[10])[0][2] + labAllMissions.append(QLabel(f"ID:{i[0]} date:{i[1].strftime('%m/%d/%Y')} Emploi:{emploi} sujet:{i[2]} clientId:{i[8]} proId:{i[9]} ")) + # Layouts Missions + layMissionsCmd: object = QHBoxLayout() + layMissionsCmd.addStretch() + layMissionsCmd.addWidget(labMissionId) + layMissionsCmd.addWidget(inpMissionId) + layMissionsCmd.addWidget(btnSuppr) + layMissionsCmd.addStretch() + layMissions: object = QVBoxLayout() + for i in range(len(labAllMissions)): + layMissions.addWidget(labAllMissions[i]) + layMissionMain: object = QVBoxLayout() + layMissionMain.addLayout(layMissionsCmd) + layMissionMain.addLayout(layMissions) + # Grp Missions + grpMission: object = QGroupBox("Suppression d'une mission") + grpMission.setLayout(layMissionMain) + + # Layout Main & Show + layoutMain: object = QVBoxLayout() + layoutMain.addWidget(grpMission) + dial.setLayout(layoutMain) + dial.show() |
