From bca747171dbe1fbf987b83bfc808eff746e859c3 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Fri, 19 Nov 2021 23:57:11 +0100 Subject: [PATCH] - 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 --- main.py | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/main.py b/main.py index 9a020bd..a9d2bc9 100644 --- a/main.py +++ b/main.py @@ -9,15 +9,13 @@ class GesMag: """Programme de Gestion d'une caise de magasin.""" def __init__(self) -> None: """Instancie quelques variables pour plus de clareté.""" - self.parent: Tk # Fenêtre affiché à l'utilisateur - self.f: Frame # Frame affiché à l'écran + self.parent = Tk() # Fenêtre affiché à l'utilisateur + self.f = Frame(self.parent) # Frame affiché à l'écran def demarrer(self) -> None: """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 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.f.grid() # on affiche la frame @@ -64,10 +62,16 @@ class GesMag: return # Redirection vers la bonne interface - if Utilisateurs().verificationIdentifiants(utilisateur, motDePasse): - print("Bienvenue mon pote") + utilisateurBaseDeDonnee = Utilisateurs().verificationIdentifiants(utilisateur.lower(), motDePasse) + 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: - 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): """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}") def _interfaceConnexion(self): - """Affiche la fenêtre de connexion.""" + """Affiche l'interface de connexion.""" # Paramètres de la fenêtre self.dimensionsFenetre(400, 600) 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.pack() # Affichage des labels et boutons 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) + 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__": """"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()