diff options
Diffstat (limited to 'src/gui')
| -rw-r--r-- | src/gui/home.py | 24 | ||||
| -rw-r--r-- | src/gui/include/__init__.py | 0 | ||||
| -rw-r--r-- | src/gui/include/connexionInfo.py | 10 | ||||
| -rw-r--r-- | src/gui/include/menu.py | 16 | ||||
| -rw-r--r-- | src/gui/include/ressources/icon.ico (renamed from src/gui/ressources/icon.ico) | bin | 41662 -> 41662 bytes | |||
| -rw-r--r-- | src/gui/login.py | 42 | ||||
| -rw-r--r-- | src/gui/menu.py | 17 | ||||
| -rw-r--r-- | src/gui/pageHome.py | 74 | ||||
| -rw-r--r-- | src/gui/pageLogin.py | 64 | ||||
| -rw-r--r-- | src/gui/pageRegister.py | 74 | ||||
| -rw-r--r-- | src/gui/windowAPropos.py (renamed from src/gui/aPropos.py) | 2 |
11 files changed, 239 insertions, 84 deletions
diff --git a/src/gui/home.py b/src/gui/home.py deleted file mode 100644 index 554d561..0000000 --- a/src/gui/home.py +++ /dev/null @@ -1,24 +0,0 @@ - -from PyQt5 import QtWidgets -from src.gui import login - -def home_page(mainWindow): - label1 = QtWidgets.QLabel("Home page") - btnConnexion = QtWidgets.QPushButton("Connexion") - btnConnexion.clicked.connect(lambda: login.login_page(mainWindow)) - - inputRecherche = QtWidgets.QLineEdit("Nom d'un pro") - comboRecherche = QtWidgets.QComboBox() - - layoutMain = QtWidgets.QVBoxLayout() - - layoutMain.addWidget(btnConnexion) - layoutMain.addWidget(label1) - layoutMain.addWidget(inputRecherche) - layoutMain.addWidget(comboRecherche) - - if hasattr(mainWindow, "mainWidget"): - mainWindow.mainWidget.deleteLater() - mainWindow.mainWidget = QtWidgets.QWidget() - mainWindow.mainWidget.setLayout(layoutMain) - mainWindow.setCentralWidget(mainWindow.mainWidget) diff --git a/src/gui/include/__init__.py b/src/gui/include/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/gui/include/__init__.py diff --git a/src/gui/include/connexionInfo.py b/src/gui/include/connexionInfo.py new file mode 100644 index 0000000..8130f6f --- /dev/null +++ b/src/gui/include/connexionInfo.py @@ -0,0 +1,10 @@ + +from PyQt5.QtWidgets import QLabel + +def get_text(mainWindow) -> object: + if not mainWindow.userConnected: + connexionInfo = QLabel("Non connecté.") + else: + connexionInfo = QLabel(f"Connecté: {mainWindow.userEmail} - {mainWindow.userStatus}") + + return connexionInfo diff --git a/src/gui/include/menu.py b/src/gui/include/menu.py new file mode 100644 index 0000000..e5a6ddd --- /dev/null +++ b/src/gui/include/menu.py @@ -0,0 +1,16 @@ + +from os.path import join +from pathlib import Path +from PyQt5.QtGui import QIcon +from PyQt5.QtWidgets import QAction +from src.gui import windowAPropos + +def init(mainWindow): + logo = join(Path(__file__).parent, "ressources", "icon.ico") + mainWindow.setWindowIcon(QIcon(logo)) + menu = mainWindow.menuBar() + menuOptions = menu.addMenu("Options") + btnApropos = QAction("A propos", mainWindow) + btnApropos.triggered.connect(lambda: windowAPropos.main(mainWindow)) + menuOptions.addAction(btnApropos) + mainWindow.setWindowTitle("Alphajob") diff --git a/src/gui/ressources/icon.ico b/src/gui/include/ressources/icon.ico Binary files differindex 7c550a3..7c550a3 100644 --- a/src/gui/ressources/icon.ico +++ b/src/gui/include/ressources/icon.ico diff --git a/src/gui/login.py b/src/gui/login.py deleted file mode 100644 index 601cd18..0000000 --- a/src/gui/login.py +++ /dev/null @@ -1,42 +0,0 @@ - -from PyQt5 import QtWidgets -from src.core import user -from src.gui import home - - -def login_page(mainWindow): - btnAccueil = QtWidgets.QPushButton("Accueil") - btnAccueil.clicked.connect(lambda: home.home_page(mainWindow)) - leditMail = QtWidgets.QLineEdit("Email") - leditPassword = QtWidgets.QLineEdit("Password") - btnConnexion = QtWidgets.QPushButton("Connexion") - btnConnexion.clicked.connect( - lambda: user.login( - mainWindow, - leditMail.text(), - leditPassword.text() - ) - ) - - layoutMain = QtWidgets.QVBoxLayout() - layoutNavigation = QtWidgets.QHBoxLayout() - layoutPassword = QtWidgets.QHBoxLayout() - layoutPasswordWidgets = QtWidgets.QVBoxLayout() - - layoutMain.addLayout(layoutNavigation) - layoutNavigation.addWidget(btnAccueil) - layoutNavigation.addStretch() - - layoutMain.addLayout(layoutPassword) - layoutPassword.addStretch() - layoutPassword.addLayout(layoutPasswordWidgets) - layoutPassword.addStretch() - - layoutPasswordWidgets.addWidget(leditMail) - layoutPasswordWidgets.addWidget(leditPassword) - layoutPasswordWidgets.addWidget(btnConnexion) - - mainWindow.mainWidget.deleteLater() - mainWindow.mainWidget = QtWidgets.QWidget() - mainWindow.mainWidget.setLayout(layoutMain) - mainWindow.setCentralWidget(mainWindow.mainWidget)
\ No newline at end of file diff --git a/src/gui/menu.py b/src/gui/menu.py deleted file mode 100644 index 90dffcf..0000000 --- a/src/gui/menu.py +++ /dev/null @@ -1,17 +0,0 @@ - -from os.path import join -from pathlib import Path -from PyQt5.QtWidgets import QAction -from PyQt5.QtGui import QIcon -from src.gui import aPropos - -def init_menu(mainWindow): - logo = join(Path(__file__).parent, "ressources", "icon.ico") - print(logo) - mainWindow.setWindowIcon(QIcon(logo)) - menu = mainWindow.menuBar() - menuOptions = menu.addMenu("Options") - btnApropos = QAction("A propos", mainWindow) - btnApropos.triggered.connect(lambda: aPropos.a_propos(mainWindow)) - menuOptions.addAction(btnApropos) - mainWindow.setWindowTitle("Alphajob") diff --git a/src/gui/pageHome.py b/src/gui/pageHome.py new file mode 100644 index 0000000..7745aa5 --- /dev/null +++ b/src/gui/pageHome.py @@ -0,0 +1,74 @@ + +from PyQt5.QtWidgets import ( + QGroupBox, QPushButton, + QComboBox, QLineEdit, + QHBoxLayout, QWidget, + QVBoxLayout +) +from src.core import funcSearch +from src.database import dbsearch +from src.gui import pageLogin, pageRegister +from src.gui.include import connexionInfo + + +def main(mainWindow) -> None: + classSearch = dbsearch.DbSearch(mainWindow) + + connexionState = connexionInfo.get_text(mainWindow) + + btnConnexion = QPushButton("Connexion") + btnConnexion.clicked.connect(lambda: pageLogin.main(mainWindow)) + btnInscription = QPushButton("Inscription") + btnInscription.clicked.connect(lambda: pageRegister.main(mainWindow)) + + layoutUser = QHBoxLayout() + layoutUser.addStretch() + layoutUser.addWidget(btnConnexion) + layoutUser.addWidget(btnInscription) + grpUtilisateur = QGroupBox("Gestion de l'utilisateur") + grpUtilisateur.setLayout(layoutUser) + + inputRechercheNom = QLineEdit("Nom d'un pro") + btnRechercheNom = QPushButton("Rechercher") + comboRechercheCat = QComboBox() + alljobs = classSearch.get_job_all() + for i in alljobs: + comboRechercheCat.addItem("{0}".format(i[2]), i[0]) + btnRechercheCat = QPushButton("Rechercher") + btnRechercheCat.clicked.connect( + lambda: funcSearch.search_by_job_id( + mainWindow, + comboRechercheCat.currentData() + ) + ) + + layoutRechercheNom = QVBoxLayout() + layoutRechercheNom.addWidget(inputRechercheNom) + layoutRechercheNom.addWidget(btnRechercheNom) + layoutRechercheCat = QVBoxLayout() + layoutRechercheCat.addWidget(comboRechercheCat) + layoutRechercheCat.addWidget(btnRechercheCat) + + layoutRecherche = QHBoxLayout() + layoutRecherche.addStretch() + layoutRecherche.addLayout(layoutRechercheNom) + layoutRecherche.addStretch() + layoutRecherche.addLayout(layoutRechercheCat) + layoutRecherche.addStretch() + + grpRecherche = QGroupBox("Recherche") + grpRecherche.setLayout(layoutRecherche) + + layoutMain = QVBoxLayout() + layoutMain.addWidget(connexionState) + layoutMain.addWidget(grpUtilisateur) + layoutMain.addStretch() + layoutMain.addWidget(grpRecherche) + layoutMain.addStretch() + + if hasattr(mainWindow, "mainWidget"): + mainWindow.mainWidget.deleteLater() + + mainWindow.mainWidget = QWidget() + mainWindow.mainWidget.setLayout(layoutMain) + mainWindow.setCentralWidget(mainWindow.mainWidget) diff --git a/src/gui/pageLogin.py b/src/gui/pageLogin.py new file mode 100644 index 0000000..46e328a --- /dev/null +++ b/src/gui/pageLogin.py @@ -0,0 +1,64 @@ + +from PyQt5.QtWidgets import ( + QPushButton, QHBoxLayout, QGroupBox, QLabel, + QLineEdit, QWidget, QVBoxLayout, QGridLayout +) +from src.core import funcUser +from src.gui import pageHome, pageRegister +from src.gui.include import connexionInfo + + +def main(mainWindow) -> None: + connexionState = connexionInfo.get_text(mainWindow) + + btnAccueil = QPushButton("Accueil") + btnAccueil.clicked.connect(lambda: pageHome.main(mainWindow)) + btnInscription = QPushButton("Inscription") + btnInscription.clicked.connect(lambda: pageRegister.main(mainWindow)) + layoutUser = QHBoxLayout() + layoutUser.addWidget(btnAccueil) + layoutUser.addStretch() + layoutUser.addWidget(btnInscription) + grpUtilisateur = QGroupBox("Gestion de l'utilisateur") + grpUtilisateur.setLayout(layoutUser) + + labMail = QLabel("Email") + leditMail = QLineEdit() + labPassword = QLabel("Mot de passe") + leditPassword = QLineEdit() + leditPassword.setEchoMode(QLineEdit.Password) + btnConnexion = QPushButton("Connexion") + btnConnexion.clicked.connect( + lambda: funcUser.login( + mainWindow, + leditMail.text(), + leditPassword.text() + ) + ) + + LayoutInfoConnexion = QGridLayout() + LayoutInfoConnexion.addWidget(labMail, 0, 0) + LayoutInfoConnexion.addWidget(leditMail, 0, 1) + LayoutInfoConnexion.addWidget(labPassword, 1, 0) + LayoutInfoConnexion.addWidget(leditPassword, 1, 1) + LayoutInfoConnexion.addWidget(btnConnexion, 2, 1) + + layoutGroupConnexion = QHBoxLayout() + layoutGroupConnexion.addStretch() + layoutGroupConnexion.addLayout(LayoutInfoConnexion) + layoutGroupConnexion.addStretch() + + grpConnexion = QGroupBox("Connexion") + grpConnexion.setLayout(layoutGroupConnexion) + + layoutMain = QVBoxLayout() + layoutMain.addWidget(connexionState) + layoutMain.addWidget(grpUtilisateur) + layoutMain.addStretch() + layoutMain.addWidget(grpConnexion) + layoutMain.addStretch() + + mainWindow.mainWidget.deleteLater() + mainWindow.mainWidget = QWidget() + mainWindow.mainWidget.setLayout(layoutMain) + mainWindow.setCentralWidget(mainWindow.mainWidget)
\ No newline at end of file diff --git a/src/gui/pageRegister.py b/src/gui/pageRegister.py new file mode 100644 index 0000000..63cae28 --- /dev/null +++ b/src/gui/pageRegister.py @@ -0,0 +1,74 @@ + +from PyQt5.QtWidgets import ( + QPushButton, QHBoxLayout, QGroupBox, QLabel, + QLineEdit, QWidget, QVBoxLayout, QComboBox, QGridLayout +) +from src.core import funcUser +from src.gui import pageHome, pageLogin +from src.gui.include import connexionInfo + + +def main(mainWindow) -> None: + connexionState = connexionInfo.get_text(mainWindow) + + btnAccueil = QPushButton("Accueil") + btnAccueil.clicked.connect(lambda: pageHome.main(mainWindow)) + + btnConnexion = QPushButton("Connexion") + btnConnexion.clicked.connect(lambda: pageLogin.main(mainWindow)) + + layoutUser = QHBoxLayout() + layoutUser.addWidget(btnAccueil) + layoutUser.addStretch() + layoutUser.addWidget(btnConnexion) + grpUtilisateur = QGroupBox("Gestion de l'utilisateur") + grpUtilisateur.setLayout(layoutUser) + + labMail = QLabel("Email") + leditMail = QLineEdit() + labPassword = QLabel("Mot de passe") + leditPassword = QLineEdit() + leditPassword.setEchoMode(QLineEdit.Password) + labStatus = QLabel("Rôle") + comboStatus = QComboBox() + comboStatus.addItem("Admin", 0) + comboStatus.addItem("Pro", 1) + comboStatus.addItem("Client", 2) + + btnRegister = QPushButton("S'inscrire") + btnRegister.clicked.connect( + lambda: funcUser.register( + mainWindow, + leditMail.text(), + leditPassword.text(), + comboStatus.currentData() + ) + ) + + LayoutInfoConnexion = QGridLayout() + LayoutInfoConnexion.addWidget(labMail, 0, 0) + LayoutInfoConnexion.addWidget(leditMail, 0, 1) + LayoutInfoConnexion.addWidget(labPassword, 1, 0) + LayoutInfoConnexion.addWidget(leditPassword, 1, 1) + LayoutInfoConnexion.addWidget(labStatus, 2, 0) + LayoutInfoConnexion.addWidget(comboStatus, 2, 1) + LayoutInfoConnexion.addWidget(btnRegister, 3, 1) + + layoutGroupConnexion = QHBoxLayout() + layoutGroupConnexion.addStretch() + layoutGroupConnexion.addLayout(LayoutInfoConnexion) + layoutGroupConnexion.addStretch() + grpConnexion = QGroupBox("Inscription") + grpConnexion.setLayout(layoutGroupConnexion) + + layoutMain = QVBoxLayout() + layoutMain.addWidget(connexionState) + layoutMain.addWidget(grpUtilisateur) + layoutMain.addStretch() + layoutMain.addWidget(grpConnexion) + layoutMain.addStretch() + + mainWindow.mainWidget.deleteLater() + mainWindow.mainWidget = QWidget() + mainWindow.mainWidget.setLayout(layoutMain) + mainWindow.setCentralWidget(mainWindow.mainWidget) diff --git a/src/gui/aPropos.py b/src/gui/windowAPropos.py index 49cb663..9ecdfda 100644 --- a/src/gui/aPropos.py +++ b/src/gui/windowAPropos.py @@ -2,7 +2,7 @@ from PyQt5.QtWidgets import QMessageBox -def a_propos(mainWindow): +def main(mainWindow): QMessageBox.information( mainWindow, "A propos", |
