summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/globalMenu.py28
-rw-r--r--src/gui/include/__init__.py0
-rw-r--r--src/gui/include/connexionInfo.py10
-rw-r--r--src/gui/include/menu.py16
-rw-r--r--src/gui/pageHome.py33
-rw-r--r--src/gui/pageLogin.py7
-rw-r--r--src/gui/pageRegister.py22
-rw-r--r--src/gui/ressources/icon.ico (renamed from src/gui/include/ressources/icon.ico)bin41662 -> 41662 bytes
-rw-r--r--src/gui/windowAdmin.py180
9 files changed, 253 insertions, 43 deletions
diff --git a/src/gui/globalMenu.py b/src/gui/globalMenu.py
new file mode 100644
index 0000000..b558ef3
--- /dev/null
+++ b/src/gui/globalMenu.py
@@ -0,0 +1,28 @@
+
+from os.path import join
+from pathlib import Path
+from PyQt5.QtGui import QIcon
+from PyQt5.QtWidgets import QAction
+from src.gui import windowAPropos, windowAdmin
+
+def init(mainWindow):
+ logo = join(Path(__file__).parent, "ressources", "icon.ico")
+ mainWindow.setWindowIcon(QIcon(logo))
+ mainWindow.setWindowTitle("Alphajob")
+ menu = mainWindow.menuBar()
+ menu.clear() # Clear au cas où
+ menuOptions = menu.addMenu("Options")
+ btnApropos = QAction("A propos", mainWindow)
+ btnApropos.triggered.connect(lambda: windowAPropos.main(mainWindow))
+ menuOptions.addAction(btnApropos)
+ if mainWindow.userConnected and mainWindow.userStatus == "Admin":
+ menuAdmin = menu.addMenu("Admin")
+ btnEmplois = QAction("Gestion des emplois", mainWindow)
+ btnEmplois.triggered.connect(lambda: windowAdmin.admin_emplois(mainWindow))
+ btnUsers = QAction("Gestion des Utilisateurs", mainWindow)
+ btnUsers.triggered.connect(lambda: windowAdmin.admin_users(mainWindow))
+ btnMissions = QAction("Gestion des missions", mainWindow)
+ btnMissions.triggered.connect(lambda: windowAdmin.admin_missions(mainWindow))
+ menuAdmin.addAction(btnEmplois)
+ menuAdmin.addAction(btnUsers)
+ menuAdmin.addAction(btnMissions)
diff --git a/src/gui/include/__init__.py b/src/gui/include/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/src/gui/include/__init__.py
+++ /dev/null
diff --git a/src/gui/include/connexionInfo.py b/src/gui/include/connexionInfo.py
deleted file mode 100644
index 8130f6f..0000000
--- a/src/gui/include/connexionInfo.py
+++ /dev/null
@@ -1,10 +0,0 @@
-
-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
deleted file mode 100644
index e5a6ddd..0000000
--- a/src/gui/include/menu.py
+++ /dev/null
@@ -1,16 +0,0 @@
-
-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/pageHome.py b/src/gui/pageHome.py
index 99ca956..016d374 100644
--- a/src/gui/pageHome.py
+++ b/src/gui/pageHome.py
@@ -3,28 +3,43 @@ from PyQt5.QtWidgets import (
QGroupBox, QPushButton,
QComboBox, QLineEdit,
QHBoxLayout, QWidget,
- QVBoxLayout
+ QVBoxLayout, QLabel
)
from src.database import dbsearch
-from src.gui import pageLogin, pageRegister
-from src.gui.include import connexionInfo
+from src.gui import pageLogin, pageRegister, globalMenu
from src.core.coreSearch import core_search_id, core_search_name
+from src.core.coreUser import core_logout
-def main(mainWindow) -> None:
+def main(mainWindow, reloadMenu = False) -> None:
+ if reloadMenu:
+ globalMenu.init(mainWindow)
+
classSearch = dbsearch.DbSearch(mainWindow)
- connexionState = connexionInfo.get_text(mainWindow)
+ if not mainWindow.userConnected:
+ connexionState = QLabel("Non connecté.")
+ else:
+ connexionState = QLabel(f"Connecté: {mainWindow.userEmail} - {mainWindow.userStatus}")
+
+ if not mainWindow.userConnected:
+ btnConnexion = QPushButton("Connexion")
+ btnConnexion.clicked.connect(lambda: pageLogin.main(mainWindow))
+ else:
+ btnDeconnexion = QPushButton("Déconnexion")
+ btnDeconnexion.clicked.connect(lambda: core_logout(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)
+ if not mainWindow.userConnected:
+ layoutUser.addWidget(btnConnexion)
+ else:
+ layoutUser.addWidget(btnDeconnexion)
+
grpUtilisateur = QGroupBox("Gestion de l'utilisateur")
grpUtilisateur.setLayout(layoutUser)
@@ -64,7 +79,7 @@ def main(mainWindow) -> None:
layoutRecherche.addLayout(layoutRechercheCat)
layoutRecherche.addStretch()
- grpRecherche = QGroupBox("Recherche")
+ grpRecherche = QGroupBox("Recherche par nom ou emploi")
grpRecherche.setLayout(layoutRecherche)
layoutMain = QVBoxLayout()
diff --git a/src/gui/pageLogin.py b/src/gui/pageLogin.py
index d2b7f93..083ae84 100644
--- a/src/gui/pageLogin.py
+++ b/src/gui/pageLogin.py
@@ -4,17 +4,20 @@ from PyQt5.QtWidgets import (
QLineEdit, QWidget, QVBoxLayout, QGridLayout
)
from src.gui import pageHome, pageRegister
-from src.gui.include import connexionInfo
from src.core.coreUser import core_login
def main(mainWindow) -> None:
- connexionState = connexionInfo.get_text(mainWindow)
+ if not mainWindow.userConnected:
+ connexionState = QLabel("Non connecté.")
+ else:
+ connexionState = QLabel(f"Connecté: {mainWindow.userEmail} - {mainWindow.userStatus}")
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()
diff --git a/src/gui/pageRegister.py b/src/gui/pageRegister.py
index aef8ce1..f0fc392 100644
--- a/src/gui/pageRegister.py
+++ b/src/gui/pageRegister.py
@@ -4,23 +4,33 @@ from PyQt5.QtWidgets import (
QLineEdit, QWidget, QVBoxLayout, QComboBox, QGridLayout
)
from src.gui import pageHome, pageLogin
-from src.gui.include import connexionInfo
-from src.core.coreUser import core_register
+from src.core.coreUser import core_register, core_logout
def main(mainWindow) -> None:
- connexionState = connexionInfo.get_text(mainWindow)
+ if not mainWindow.userConnected:
+ connexionState = QLabel("Non connecté.")
+ else:
+ connexionState = QLabel(f"Connecté: {mainWindow.userEmail} - {mainWindow.userStatus}")
btnAccueil = QPushButton("Accueil")
btnAccueil.clicked.connect(lambda: pageHome.main(mainWindow))
- btnConnexion = QPushButton("Connexion")
- btnConnexion.clicked.connect(lambda: pageLogin.main(mainWindow))
+ if not mainWindow.userConnected:
+ btnConnexion = QPushButton("Connexion")
+ btnConnexion.clicked.connect(lambda: pageLogin.main(mainWindow))
+ else:
+ btnDeconnexion = QPushButton("Déconnexion")
+ btnDeconnexion.clicked.connect(lambda: core_logout(mainWindow))
layoutUser = QHBoxLayout()
layoutUser.addWidget(btnAccueil)
layoutUser.addStretch()
- layoutUser.addWidget(btnConnexion)
+ if not mainWindow.userConnected:
+ layoutUser.addWidget(btnConnexion)
+ else:
+ layoutUser.addWidget(btnDeconnexion)
+
grpUtilisateur = QGroupBox("Gestion de l'utilisateur")
grpUtilisateur.setLayout(layoutUser)
diff --git a/src/gui/include/ressources/icon.ico b/src/gui/ressources/icon.ico
index 7c550a3..7c550a3 100644
--- a/src/gui/include/ressources/icon.ico
+++ b/src/gui/ressources/icon.ico
Binary files differ
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()