diff options
Diffstat (limited to 'src/app/mainHome.py')
| -rw-r--r-- | src/app/mainHome.py | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/src/app/mainHome.py b/src/app/mainHome.py new file mode 100644 index 0000000..a366c66 --- /dev/null +++ b/src/app/mainHome.py @@ -0,0 +1,155 @@ + +from PyQt5.QtWidgets import ( + QGroupBox, QPushButton, + QComboBox, QLineEdit, + QHBoxLayout, QWidget, + QVBoxLayout, QLabel, + QMessageBox +) +from src.app import ( + mainLogin, mainRegister, + mainMenuBar, windowRecherche, + mainLogout +) +from src.database.dbsearch import DbSearch + + +def core_search_id(mainWindow: object, jobId: int) -> None: + """""" + dbsearch: object = DbSearch(mainWindow) + resRecherche: list = dbsearch.get_all_pro_by_jobid(jobId) + if resRecherche: + core_search_main(mainWindow, resRecherche) + else: + QMessageBox.information( + mainWindow, + "Résultat", + "Aucun résultat." + ) + + +def core_search_name(mainWindow: object, name: str) -> None: + """""" + dbsearch: object = DbSearch(mainWindow) + resRecherche: tuple = dbsearch.get_pro_info_by_lastname(name) + if resRecherche: + core_search_main(mainWindow, resRecherche) + else: + QMessageBox.information( + mainWindow, + "Résultat", + "Aucun résultat." + ) + + +def core_search_main(mainWindow: object, resRecherche: tuple) -> None: + """""" + dbsearch: object = DbSearch(mainWindow) + results: list = [] + for i in resRecherche: + proInfo: dict = {} + proInfo["id"] = i[0] + resJobs = dbsearch.get_pro_job_by_proid(proInfo["id"]) + proInfo["text"] = list(i[1:]) + proInfo["text"].insert(2, ", ".join([j[2] for j in resJobs])) + proInfo["text"] = " - ".join(proInfo["text"]) + results.append(proInfo) + + windowRecherche.window_main(mainWindow, results) + + +def window_main(mainWindow, reloadMenu = False) -> None: + """""" + if reloadMenu: + mainMenuBar.menu_init(mainWindow) + + dbsearch: object = DbSearch(mainWindow) + # + if not mainWindow.userConnected: + connState: object = QLabel("Non connecté.") + else: + connState: object = QLabel( + f"Connecté: {mainWindow.userEmail} - {mainWindow.userStatus}" + ) + + if not mainWindow.userConnected: + btnConnexion: object = QPushButton("Connexion") + btnConnexion.clicked.connect(lambda: mainLogin.window_main(mainWindow)) + else: + btnDeconnexion: object = QPushButton("Déconnexion") + btnDeconnexion.clicked.connect(lambda: [ + mainLogout.core_logout(mainWindow), + window_main(mainWindow, True) + ] + ) + + btnInscription: object = QPushButton("Inscription") + btnInscription.clicked.connect(lambda: mainRegister.window_main(mainWindow)) + # + layUser: object = QHBoxLayout() + layUser.addStretch() + layUser.addWidget(btnInscription) + if not mainWindow.userConnected: + layUser.addWidget(btnConnexion) + else: + layUser.addWidget(btnDeconnexion) + + grpUser: object = QGroupBox("Gestion de l'utilisateur") + grpUser.setLayout(layUser) + # + labRechercheNom: object = QLabel("Par nom") + inputRechercheNom: object = QLineEdit(maxLength=128) + btnRechercheNom: object = QPushButton("Rechercher") + btnRechercheNom.clicked.connect( + lambda: + core_search_name( + mainWindow, + inputRechercheNom.text() + ) + ) + labRechercheCat: object = QLabel("Par emploi") + cmbRechercheCat: object = QComboBox() + alljobs: list = dbsearch.get_job_all() + for i in alljobs: + cmbRechercheCat.addItem("{0}".format(i[2]), i[0]) + btnRechercheCat: object = QPushButton("Rechercher") + btnRechercheCat.clicked.connect( + lambda: + core_search_id( + mainWindow, + cmbRechercheCat.currentData() + ) + ) + # + layRechercheNom: object = QVBoxLayout() + layRechercheNom.addWidget(labRechercheNom) + layRechercheNom.addWidget(inputRechercheNom) + layRechercheNom.addWidget(btnRechercheNom) + layRechercheCat: object = QVBoxLayout() + layRechercheCat.addWidget(labRechercheCat) + layRechercheCat.addWidget(cmbRechercheCat) + layRechercheCat.addWidget(btnRechercheCat) + # + layRecherche: object = QHBoxLayout() + layRecherche.addStretch() + layRecherche.addLayout(layRechercheNom) + layRecherche.addStretch() + layRecherche.addLayout(layRechercheCat) + layRecherche.addStretch() + # + grpRecherche: object = QGroupBox("Recherche") + grpRecherche.setLayout(layRecherche) + # + layMain: object = QVBoxLayout() + layMain.addWidget(connState) + layMain.addWidget(grpUser) + layMain.addStretch() + layMain.addWidget(grpRecherche) + layMain.addStretch() + # + if hasattr(mainWindow, "mainWidget"): + mainWindow.mainWidget.deleteLater() + + mainWindow.mainWidget = QWidget() + mainWindow.mainWidget.setLayout(layMain) + mainWindow.setCentralWidget(mainWindow.mainWidget) |
