- 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:
Mylloon 2021-11-19 23:57:11 +01:00
parent 7c5e52a59f
commit bca747171d

49
main.py
View file

@ -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()