- use __init__ method to init the window and a frame instead of doing it in the demarrer
method
- adding login to the correct gui according to the user - add method for the gui of manager and cashier
This commit is contained in:
parent
7c5e52a59f
commit
bca747171d
1 changed files with 39 additions and 10 deletions
49
main.py
49
main.py
|
@ -9,15 +9,13 @@ class GesMag:
|
||||||
"""Programme de Gestion d'une caise de magasin."""
|
"""Programme de Gestion d'une caise de magasin."""
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
"""Instancie quelques variables pour plus de clareté."""
|
"""Instancie quelques variables pour plus de clareté."""
|
||||||
self.parent: Tk # Fenêtre affiché à l'utilisateur
|
self.parent = Tk() # Fenêtre affiché à l'utilisateur
|
||||||
self.f: Frame # Frame affiché à l'écran
|
self.f = Frame(self.parent) # Frame affiché à l'écran
|
||||||
|
|
||||||
def demarrer(self) -> None:
|
def demarrer(self) -> None:
|
||||||
"""Lance le programme GesMag."""
|
"""Lance le programme GesMag."""
|
||||||
print("Lancement de l'interface de gestion d'une caisse d'un magasin...")
|
|
||||||
self.font = ("Comfortaa", 14) # police par défaut
|
self.font = ("Comfortaa", 14) # police par défaut
|
||||||
Utilisateurs().creationTable() # on créer la base de donnée si elle n'existe pas déjà
|
Utilisateurs().creationTable() # on créer la base de donnée si elle n'existe pas déjà
|
||||||
self.parent = Tk() # on créer notre fenêtre principale
|
|
||||||
|
|
||||||
self._interfaceConnexion() # on créer la variable `self.f` qui est la frame a affiché
|
self._interfaceConnexion() # on créer la variable `self.f` qui est la frame a affiché
|
||||||
self.f.grid() # on affiche la frame
|
self.f.grid() # on affiche la frame
|
||||||
|
@ -64,10 +62,16 @@ class GesMag:
|
||||||
return
|
return
|
||||||
|
|
||||||
# Redirection vers la bonne interface
|
# Redirection vers la bonne interface
|
||||||
if Utilisateurs().verificationIdentifiants(utilisateur, motDePasse):
|
utilisateurBaseDeDonnee = Utilisateurs().verificationIdentifiants(utilisateur.lower(), motDePasse)
|
||||||
print("Bienvenue mon pote")
|
if utilisateurBaseDeDonnee[0] > 0:
|
||||||
|
if utilisateurBaseDeDonnee[1] == 0: # si le métier est "Manager"
|
||||||
|
self._interfaceManager(utilisateurBaseDeDonnee[0])
|
||||||
|
elif utilisateurBaseDeDonnee[1] == 1: # si le métier est "Caissier"
|
||||||
|
self._interfaceCaissier(utilisateurBaseDeDonnee[0])
|
||||||
|
else:
|
||||||
|
messagebox.showerror("Erreur", "Une erreur est survenue : métier inconnue.")
|
||||||
else:
|
else:
|
||||||
print(f"Bah nan frérot c'est pas bon, ça c'est la liste des utilisateurs : {Utilisateurs().listUtilisateurs()}")
|
messagebox.showerror("Erreur", "Utilisateur ou mot de passe incorrect.")
|
||||||
|
|
||||||
def dimensionsFenetre(self, nouveauX: int, nouveauY: int):
|
def dimensionsFenetre(self, nouveauX: int, nouveauY: int):
|
||||||
"""Permet de changer les dimensions de la fenêtre parent et la place au centre de l'écran."""
|
"""Permet de changer les dimensions de la fenêtre parent et la place au centre de l'écran."""
|
||||||
|
@ -80,13 +84,16 @@ class GesMag:
|
||||||
self.parent.geometry(f"{nouveauX}x{nouveauY}+{x}+{y}")
|
self.parent.geometry(f"{nouveauX}x{nouveauY}+{x}+{y}")
|
||||||
|
|
||||||
def _interfaceConnexion(self):
|
def _interfaceConnexion(self):
|
||||||
"""Affiche la fenêtre de connexion."""
|
"""Affiche l'interface de connexion."""
|
||||||
# Paramètres de la fenêtre
|
# Paramètres de la fenêtre
|
||||||
self.dimensionsFenetre(400, 600)
|
self.dimensionsFenetre(400, 600)
|
||||||
self.parent.title("Fenêtre de connexion")
|
self.parent.title("Fenêtre de connexion")
|
||||||
|
|
||||||
# Instanciation de la Frame, on va donc ajouter tout nos widgets à cet Frame
|
# Suppresssion de la dernière Frame
|
||||||
|
self.f.destroy()
|
||||||
|
# Instanciation d'une nouvelle Frame, on va donc ajouter tout nos widgets à cet Frame
|
||||||
self.f = Frame(self.parent)
|
self.f = Frame(self.parent)
|
||||||
|
self.f.pack()
|
||||||
|
|
||||||
# Affichage des labels et boutons
|
# Affichage des labels et boutons
|
||||||
tentativeDeConnexion = lambda _ = None: self.connexion(utilisateur.get(), motDpasse.get()) # lambda pour envoyer les informations entrés dans le formulaire
|
tentativeDeConnexion = lambda _ = None: self.connexion(utilisateur.get(), motDpasse.get()) # lambda pour envoyer les informations entrés dans le formulaire
|
||||||
|
@ -124,7 +131,29 @@ class GesMag:
|
||||||
|
|
||||||
Button(self.f, text="Quitter", font=self.font, command=quit).grid(column=0, row=6, columnspan=4, pady=20)
|
Button(self.f, text="Quitter", font=self.font, command=quit).grid(column=0, row=6, columnspan=4, pady=20)
|
||||||
|
|
||||||
|
def _interfaceCaissier(self, id: int):
|
||||||
|
"""Affiche l'interface du caissier."""
|
||||||
|
caissier = Utilisateurs().recuperationUtilisateur(id)[0]
|
||||||
|
self.parent.title(f"Caissier {caissier[3]} {caissier[4]}")
|
||||||
|
|
||||||
|
# Suppresssion de la dernière Frame
|
||||||
|
self.f.destroy()
|
||||||
|
# Instanciation d'une nouvelle Frame, on va donc ajouter tout nos widgets à cet Frame
|
||||||
|
self.f = Frame(self.parent)
|
||||||
|
self.f.pack()
|
||||||
|
|
||||||
|
def _interfaceManager(self, id: int):
|
||||||
|
"""Affiche l'interface du manager."""
|
||||||
|
manager = Utilisateurs().recuperationUtilisateur(id)[0]
|
||||||
|
self.parent.title(f"Manager {manager[3]} {manager[4]}")
|
||||||
|
|
||||||
|
# Suppresssion de la dernière Frame
|
||||||
|
self.f.destroy()
|
||||||
|
# Instanciation d'une nouvelle Frame, on va donc ajouter tout nos widgets à cet Frame
|
||||||
|
self.f = Frame(self.parent)
|
||||||
|
self.f.pack()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
""""Application "GesMag" pour le module de Programmation d'interfaces (2021-2022)"""
|
""""Application "GesMag" pour le module de Programmation d'interfaces (2021-2022)"""
|
||||||
print("-- Compte par défaut --\nNom d'utilisateur: admin\nMot de passe: P@ssword\n")
|
print("-- Compte par défaut --\nNom d'utilisateur: admin\nMot de passe: P@ssword")
|
||||||
GesMag().demarrer()
|
GesMag().demarrer()
|
||||||
|
|
Reference in a new issue