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