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