summaryrefslogtreecommitdiff
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/__init__.py0
-rw-r--r--src/gui/globalMenu.py48
-rw-r--r--src/gui/pageHome.py101
-rw-r--r--src/gui/pageLogin.py68
-rw-r--r--src/gui/pageRegister.py84
-rw-r--r--src/gui/ressources/icon.icobin41662 -> 0 bytes
-rw-r--r--src/gui/windowAPropos.py14
-rw-r--r--src/gui/windowAdmin.py180
-rw-r--r--src/gui/windowMissions.py153
-rw-r--r--src/gui/windowRecherche.py62
-rw-r--r--src/gui/windowUserInfo.py195
11 files changed, 0 insertions, 905 deletions
diff --git a/src/gui/__init__.py b/src/gui/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/src/gui/__init__.py
+++ /dev/null
diff --git a/src/gui/globalMenu.py b/src/gui/globalMenu.py
deleted file mode 100644
index 4625a54..0000000
--- a/src/gui/globalMenu.py
+++ /dev/null
@@ -1,48 +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, windowAdmin, windowUserInfo, windowMissions
-
-def init(mainWindow):
- logo: str = join(Path(__file__).parent, "ressources", "icon.ico")
- mainWindow.setWindowIcon(QIcon(logo))
- mainWindow.setWindowTitle("Alphajob")
- menu: object = mainWindow.menuBar()
- menu.clear() # Clear au cas où
- if mainWindow.userConnected and mainWindow.userStatus == "Admin":
- menuAdmin: object = menu.addMenu("Admin")
- btnEmplois: object = QAction("Gestion des emplois", mainWindow)
- btnUsers: object = QAction("Gestion des Utilisateurs", mainWindow)
- btnMissions: object = QAction("Gestion des missions", mainWindow)
- btnEmplois.triggered.connect(lambda: windowAdmin.admin_emplois(mainWindow))
- btnUsers.triggered.connect(lambda: windowAdmin.admin_users(mainWindow))
- btnMissions.triggered.connect(lambda: windowAdmin.admin_missions(mainWindow))
- menuAdmin.addAction(btnEmplois)
- menuAdmin.addAction(btnUsers)
- menuAdmin.addAction(btnMissions)
- elif mainWindow.userConnected and (
- mainWindow.userStatus == "Pro" or mainWindow.userStatus == "Client"):
- # Infos
- menuUserInfos: object = menu.addMenu("Mes infos")
- btnMesInfos: object = QAction("Gérer ses infos", mainWindow)
- btnMesInfos.triggered.connect(lambda: windowUserInfo.modif_infos(mainWindow))
- menuUserInfos.addAction(btnMesInfos)
- # Missions
- menuMissions: object = menu.addMenu("Mes missions")
- btnPendingMission: object = QAction("Missions en attente", mainWindow)
- btnOngoignMission: object = QAction("Missions en cours", mainWindow)
- btnCompletedMission: object = QAction("Missions en terminées", mainWindow)
- btnPendingMission.triggered.connect(lambda: windowMissions.main(mainWindow, "pending"))
- btnOngoignMission.triggered.connect(lambda: windowMissions.main(mainWindow, "ongoing"))
- btnCompletedMission.triggered.connect(lambda: windowMissions.main(mainWindow, "completed"))
- menuMissions.addAction(btnPendingMission)
- menuMissions.addAction(btnOngoignMission)
- menuMissions.addAction(btnCompletedMission)
-
-
- menuOptions: object = menu.addMenu("Options")
- btnApropos: object = QAction("A propos", mainWindow)
- btnApropos.triggered.connect(lambda: windowAPropos.main(mainWindow))
- menuOptions.addAction(btnApropos)
diff --git a/src/gui/pageHome.py b/src/gui/pageHome.py
deleted file mode 100644
index 03f8d81..0000000
--- a/src/gui/pageHome.py
+++ /dev/null
@@ -1,101 +0,0 @@
-
-from PyQt5.QtWidgets import (
- QGroupBox, QPushButton,
- QComboBox, QLineEdit,
- QHBoxLayout, QWidget,
- QVBoxLayout, QLabel
-)
-from src.database import dbsearch
-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, reloadMenu = False) -> None:
- if reloadMenu:
- globalMenu.init(mainWindow)
-
- classSearch = dbsearch.DbSearch(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))
-
- btnInscription = QPushButton("Inscription")
- btnInscription.clicked.connect(lambda: pageRegister.main(mainWindow))
-
- layoutUser = QHBoxLayout()
- layoutUser.addStretch()
- layoutUser.addWidget(btnInscription)
- if not mainWindow.userConnected:
- layoutUser.addWidget(btnConnexion)
- else:
- layoutUser.addWidget(btnDeconnexion)
-
- grpUtilisateur = QGroupBox("Gestion de l'utilisateur")
- grpUtilisateur.setLayout(layoutUser)
-
- labRechercheNom = QLabel("Par nom")
- inputRechercheNom = QLineEdit()
- btnRechercheNom = QPushButton("Rechercher")
- btnRechercheNom.clicked.connect(
- lambda:
- core_search_name(
- mainWindow,
- inputRechercheNom.text()
- )
- )
- labRechercheCat = QLabel("Par emploi")
- 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:
- core_search_id(
- mainWindow,
- comboRechercheCat.currentData()
- )
- )
-
- layoutRechercheNom = QVBoxLayout()
- layoutRechercheNom.addWidget(labRechercheNom)
- layoutRechercheNom.addWidget(inputRechercheNom)
- layoutRechercheNom.addWidget(btnRechercheNom)
- layoutRechercheCat = QVBoxLayout()
- layoutRechercheCat.addWidget(labRechercheCat)
- 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
deleted file mode 100644
index e255dfb..0000000
--- a/src/gui/pageLogin.py
+++ /dev/null
@@ -1,68 +0,0 @@
-
-from PyQt5.QtWidgets import (
- QPushButton, QHBoxLayout, QGroupBox, QLabel,
- QLineEdit, QWidget, QVBoxLayout, QGridLayout
-)
-from src.gui import pageHome, pageRegister
-from src.core.coreUser import core_login
-
-
-def main(mainWindow) -> None:
- 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()
- 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:
- core_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
deleted file mode 100644
index f0fc392..0000000
--- a/src/gui/pageRegister.py
+++ /dev/null
@@ -1,84 +0,0 @@
-
-from PyQt5.QtWidgets import (
- QPushButton, QHBoxLayout, QGroupBox, QLabel,
- QLineEdit, QWidget, QVBoxLayout, QComboBox, QGridLayout
-)
-from src.gui import pageHome, pageLogin
-from src.core.coreUser import core_register, core_logout
-
-
-def main(mainWindow) -> None:
- 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))
-
- 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()
- if not mainWindow.userConnected:
- layoutUser.addWidget(btnConnexion)
- else:
- layoutUser.addWidget(btnDeconnexion)
-
- 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: core_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/ressources/icon.ico b/src/gui/ressources/icon.ico
deleted file mode 100644
index 7c550a3..0000000
--- a/src/gui/ressources/icon.ico
+++ /dev/null
Binary files differ
diff --git a/src/gui/windowAPropos.py b/src/gui/windowAPropos.py
deleted file mode 100644
index 9ecdfda..0000000
--- a/src/gui/windowAPropos.py
+++ /dev/null
@@ -1,14 +0,0 @@
-
-from PyQt5.QtWidgets import QMessageBox
-
-
-def main(mainWindow):
- QMessageBox.information(
- mainWindow,
- "A propos",
- "Logiciel pour mon dossier professionnel.\
- <br>Version: %s\
- <br>Auteur: Debulois Quentin\
- <br>Code source: \
- <a href='https://git.debulois.fr/'>git.debulois.fr/</a>" % mainWindow.VERSION
- )
diff --git a/src/gui/windowAdmin.py b/src/gui/windowAdmin.py
deleted file mode 100644
index 3996615..0000000
--- a/src/gui/windowAdmin.py
+++ /dev/null
@@ -1,180 +0,0 @@
-
-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()
diff --git a/src/gui/windowMissions.py b/src/gui/windowMissions.py
deleted file mode 100644
index d6fe57b..0000000
--- a/src/gui/windowMissions.py
+++ /dev/null
@@ -1,153 +0,0 @@
-
-from PyQt5.QtWidgets import (
- QDialog, QGroupBox, QLabel,
- QVBoxLayout, QHBoxLayout,
- QPushButton, QMessageBox,
- QLineEdit, QComboBox
-)
-from src.database.dbmission import DbMission
-
-
-def review_mission(dial: object, dbmission: object, missionId: int) -> None:
- dialReview = QDialog(parent=dial)
-
- lineNote = QHBoxLayout()
- labNote = QLabel("Note: ")
- cmbNote = QComboBox()
- for i in range(6):
- cmbNote.addItem(str(i), i)
- lineNote.addWidget(labNote)
- lineNote.addStretch()
- lineNote.addWidget(cmbNote)
-
- lineReview = QHBoxLayout()
- labReview = QLabel("Avis: ")
- inpReview = QLineEdit()
- lineReview.addWidget(labReview)
- lineReview.addStretch()
- lineReview.addWidget(inpReview)
-
- lineBtn = QHBoxLayout()
- btnValider = QPushButton("Valider")
- btnValider.clicked.connect(
- lambda:
- [dbmission.review_mission(missionId, inpReview.text(), cmbNote.currentData()),
- dbmission.validate_mission_client_by_missionid(missionId),
- QMessageBox.information(
- dial,
- "Mission",
- "La mission a été validée"
- ),
- dialReview.close()]
- )
- lineBtn.addStretch()
- lineBtn.addWidget(btnValider)
- lineBtn.addStretch()
-
-
- layReview = QVBoxLayout()
- layReview.addLayout(lineNote)
- layReview.addLayout(lineReview)
- layReview.addLayout(lineBtn)
-
- grpMain = QGroupBox("Donnez votre avis")
- grpMain.setLayout(layReview)
- layMain = QVBoxLayout()
- layMain.addWidget(grpMain)
-
- dialReview.setLayout(layMain)
- dialReview.show()
-
-
-def validate_mission(mainWindow: object, dial: object, missionId: int, status: str) -> None:
- dbmission: object = DbMission(mainWindow)
- if status == "acceptedByPro":
- dbmission.accept_mission_by_missionid(missionId)
- QMessageBox.information(
- dial,
- "Mission",
- "La mission a bien été acceptée"
- )
- elif status == "validatedByPro":
- dbmission.validate_mission_pro_by_missionid(missionId)
- QMessageBox.information(
- dial,
- "Mission",
- "La mission a été validée"
- )
- elif status == "validatedByClient":
- review_mission(dial, dbmission, missionId)
-
- dial.close()
-
-
-def get_missions_status(mainWindow: object, status: str) -> list:
- dbmission: object = DbMission(mainWindow)
- if mainWindow.userStatus == "Pro":
- missionsAll: list = dbmission.get_mission_by_proid(mainWindow.userId)
- elif mainWindow.userStatus == "Client":
- missionsAll: list = dbmission.get_mission_by_clientid(mainWindow.userId)
-
- if status == "pending":
- missionsPending = [list(i) for i in missionsAll if i[5] == None]
- return missionsPending
- elif status == "ongoing":
- missionsOngoing = [list(i) for i in missionsAll if i[5] != None and (i[6] == None or i[7] == None)]
- return missionsOngoing
- elif status == "completed":
- missionsCompleted = [list(i) for i in missionsAll if (i[6] != None and i[7] != None)]
- return missionsCompleted
-
-
-def main(mainWindow: object, status: str) -> None:
- missions: list = get_missions_status(mainWindow, status)
- dial: object = QDialog(parent = mainWindow)
-
- linesMission: list = []
- for mission in missions:
- line = QHBoxLayout()
- labMission = QLabel(" - ".join([str(i) for i in mission[1:] if i != None]))
- line.addWidget(labMission)
- if status == "pending" and mainWindow.userStatus == "Pro":
- btnValidate = QPushButton("Valider")
- btnValidate.clicked.connect(
- lambda checked, missionId=mission[0]:
- validate_mission(mainWindow, dial, missionId, "acceptedByPro")
- )
- line.addStretch()
- line.addWidget(btnValidate)
- elif status == "ongoing" and mainWindow.userStatus == "Pro" and mission[7] == None:
- btnValidate = QPushButton("Valider")
- btnValidate.clicked.connect(
- lambda checked, missionId=mission[0]:
- validate_mission(mainWindow, dial, missionId, "validatedByPro")
- )
- line.addStretch()
- line.addWidget(btnValidate)
- elif status == "ongoing" and mainWindow.userStatus == "Client" and mission[6] == None:
- btnValidate = QPushButton("Valider")
- btnValidate.clicked.connect(
- lambda checked, missionId=mission[0]:
- validate_mission(mainWindow, dial, missionId, "validatedByClient")
- )
- line.addStretch()
- line.addWidget(btnValidate)
-
- linesMission.append(line)
-
- layMission = QVBoxLayout()
- for i in linesMission:
- layMission.addLayout(i)
-
- if status == "pending":
- grpMain = QGroupBox("Missions en attente")
- elif status == "ongoing":
- grpMain = QGroupBox("Missions en cours")
- elif status == "completed":
- grpMain = QGroupBox("Missions terminées")
-
- grpMain.setLayout(layMission)
- layMain = QVBoxLayout()
- layMain.addWidget(grpMain)
- dial.setLayout(layMain)
- dial.show()
diff --git a/src/gui/windowRecherche.py b/src/gui/windowRecherche.py
deleted file mode 100644
index dd71f08..0000000
--- a/src/gui/windowRecherche.py
+++ /dev/null
@@ -1,62 +0,0 @@
-
-from PyQt5.QtWidgets import (
- QDialog, QVBoxLayout, QHBoxLayout,
- QLabel, QPushButton, QMessageBox
-)
-from src.database import dbsearch
-# https://docs.python.org/3/faq/programming.html#why-do-lambdas-defined-in-a-loop-with-different-values-all-return-the-same-result
-# https://stackoverflow.com/questions/53751106/create-lambda-functions-in-a-loop-for-pyqt5-signals?noredirect=1
-
-
-def more_infos(mainWindow, proId):
- search: object = dbsearch.DbSearch(mainWindow)
- resRecherche: list = search.get_user_info_by_userid(proId)[0][1:]
- label: list = [
- "Nom",
- "Prénom",
- "Diplôme",
- "Capacités",
- "Description",
- "Téléphone",
- "Adresse",
- "Code postale",
- "Ville",
- ]
- text: list = []
- for i in range(len(resRecherche)):
- text.append(f"{label[i]}: {resRecherche[i]}")
-
- QMessageBox.information(
- mainWindow,
- "Informations du pro",
- "\n".join(text)
- )
-
-def main(mainWindow: object, results: list) -> None:
- dial = QDialog(parent = mainWindow)
- dial.setWindowTitle("Recherche")
- layoutsResult: list = []
- for i in results:
- layoutLine = QHBoxLayout()
- color = results.index(i) % 2
- if color:
- colored = QLabel(i["text"])
- colored.setStyleSheet("background-color: rgb(230,200,200); border-radius: 3px")
- layoutLine.addWidget(colored)
- else:
- layoutLine.addWidget(QLabel(i["text"]))
- btnInfos = QPushButton("Infos")
- btnInfos.clicked.connect(
- lambda checked, proId = i['id']:
- more_infos(mainWindow, proId)
- )
- layoutLine.addStretch()
- layoutLine.addWidget(btnInfos)
- layoutsResult.append(layoutLine)
-
- layoutMain = QVBoxLayout()
- for layout in layoutsResult:
- layoutMain.addLayout(layout)
-
- dial.setLayout(layoutMain)
- dial.show()
diff --git a/src/gui/windowUserInfo.py b/src/gui/windowUserInfo.py
deleted file mode 100644
index e0a9b08..0000000
--- a/src/gui/windowUserInfo.py
+++ /dev/null
@@ -1,195 +0,0 @@
-
-from PyQt5.QtWidgets import (
- QDialog, QGroupBox, QLabel,
- QLineEdit, QVBoxLayout, QHBoxLayout,
- QPushButton, QComboBox, QMessageBox
-)
-from src.database.dbuser import DbUser
-from src.database.dbsearch import DbSearch
-
-
-def add_job(jobName: str, jobId: int, listMyJobs: list, layMyJobs: object) -> None:
- if jobId not in listMyJobs:
- listMyJobs.append(jobId)
- lineMyJobs: object = QHBoxLayout()
- labJob: object = QLabel(jobName)
- btnRemoveJob: object = QPushButton("Supprimer")
- btnRemoveJob.clicked.connect(
- lambda checked, jId=jobId, layItem=lineMyJobs: [
- listMyJobs.remove(jId),
- delete_job(layItem)
- ]
- )
- lineMyJobs.addWidget(labJob)
- lineMyJobs.addStretch()
- lineMyJobs.addWidget(btnRemoveJob)
- layMyJobs.addLayout(lineMyJobs)
-
-
-def delete_job(layLineJob: object) -> None:
- lab: object = layLineJob.itemAt(0).widget()
- btn: object = layLineJob.itemAt(2).widget()
- lab.deleteLater()
- btn.deleteLater()
- layLineJob.deleteLater()
-
-
-def validate(mainWindow: object, dial: object, layoutLines: list, oldJobs: list = None, newJobs: list = None) -> None:
- user: object = DbUser(mainWindow = mainWindow)
- userInfos: list = []
- for i in layoutLines:
- if i != "selectJobs" and i != "myJobs":
- lineInput: object = layoutLines[i].itemAt(2).widget()
- userInfos.append(lineInput.text())
-
- if mainWindow.userStatus == "Pro":
- isPro: bool = True
- else:
- isPro: bool = False
-
- if "" in userInfos:
- QMessageBox.warning(
- dial,
- "Mes informations",
- "Veuillez renseigner tous les champs"
- )
- return
-
- user.update_user_infos(userInfos, mainWindow.userId, isPro, oldJobs, newJobs)
- QMessageBox.information(
- dial,
- "Mes informations",
- "Modification enregistrée"
- )
-
-
-# https://stackoverflow.com/questions/3077192/get-a-layouts-widgets-in-pyqt
-def modif_infos(mainWindow: object) -> None:
- dial: object = QDialog(parent = mainWindow)
- dial.setWindowTitle("Mes infos")
-
- search: object = DbSearch(mainWindow)
- infos: list = search.get_user_info_by_userid(mainWindow.userId)
-
- if infos:
- champsClients: dict = {
- "Nom": infos[0][1],
- "Prénom": infos[0][2],
- "Téléphone": infos[0][6],
- "Addresse": infos[0][7],
- "Code postal": infos[0][8],
- "ville": infos[0][9]
- }
- champsPro: dict = {
- "Diplôme": infos[0][3],
- "Capacités": infos[0][4],
- "Description": infos[0][5]
- }
- else:
- champsClients: list = [
- "Nom",
- "Prénom",
- "Téléphone",
- "Addresse",
- "Code postal",
- "ville"
- ]
- champsPro: list =[
- "Diplôme",
- "Capacités",
- "Description"
- ]
-
- layoutLines: list = {}
- for i in champsClients:
- layoutLines[i] = QHBoxLayout()
- layoutLines[i].addWidget(QLabel(i))
- layoutLines[i].addStretch()
- if infos:
- if i == "Téléphone":
- layoutLines[i].addWidget(QLineEdit(champsClients[i], maxLength=10))
- elif i == "Code postal":
- layoutLines[i].addWidget(QLineEdit(champsClients[i], maxLength=6))
- else:
- layoutLines[i].addWidget(QLineEdit(champsClients[i], maxLength=128))
- else:
- if i == "Téléphone":
- layoutLines[i].addWidget(QLineEdit(maxLength=10))
- elif i == "Code postal":
- layoutLines[i].addWidget(QLineEdit(maxLength=6))
- else:
- layoutLines[i].addWidget(QLineEdit(maxLength=128))
-
- if mainWindow.userStatus == "Pro":
- allJobs: object = search.get_job_all()
- labSelectJobs: object = QLabel("Les emplois:")
- cmbAllJobs: object = QComboBox()
- lineSelectJobs: object = QHBoxLayout()
- for i in allJobs:
- cmbAllJobs.addItem(f"{i[2]}", i[0])
- btnSelectJobs = QPushButton("Ajouter")
- btnSelectJobs.clicked.connect(
- lambda :
- add_job(
- cmbAllJobs.currentText(),
- cmbAllJobs.currentData(),
- newJobs,
- layMyJobs
- )
- )
- lineSelectJobs.addWidget(labSelectJobs)
- lineSelectJobs.addStretch()
- lineSelectJobs.addWidget(cmbAllJobs)
- lineSelectJobs.addStretch()
- lineSelectJobs.addWidget(btnSelectJobs)
- layoutLines["selectJobs"] = lineSelectJobs
-
- myJobs: object = search.get_pro_job_by_proid(mainWindow.userId)
- layMyJobs: object = QVBoxLayout()
- newJobs: list = []
- for i in myJobs:
- add_job(i[2], i[0], newJobs, layMyJobs)
- oldJobs: list = newJobs.copy() # Sinon pointer !!!
-
- layoutLines["myJobs"] = layMyJobs
-
- for i in champsPro:
- layoutLines[i] = QHBoxLayout()
- layoutLines[i].addWidget(QLabel(i))
- layoutLines[i].addStretch()
- if infos:
- layoutLines[i].addWidget(QLineEdit(champsPro[i], maxLength=256))
- else:
- layoutLines[i].addWidget(QLineEdit(maxLength=256))
-
- modifLayout: object = QVBoxLayout()
- for i in layoutLines:
- modifLayout.addLayout(layoutLines[i])
-
- btnModif: object = QPushButton("modifer")
- btnModif.clicked.connect(
- lambda:
- validate(
- mainWindow,
- dial,
- layoutLines,
- oldJobs,
- newJobs
- ) if mainWindow.userStatus == "Pro"
- else validate(
- mainWindow,
- dial,
- layoutLines
- )
- )
- layoutBtn: object = QHBoxLayout()
- layoutBtn.addStretch()
- layoutBtn.addWidget(btnModif)
- modifLayout.addLayout(layoutBtn)
-
- grpMain: object = QGroupBox("Mes infos")
- grpMain.setLayout(modifLayout)
- mainLayout: object = QVBoxLayout()
- mainLayout.addWidget(grpMain)
- dial.setLayout(mainLayout)
- dial.show()