From 5a6bf1bf191daf7879d668ec5a80cd2668969ad1 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Sun, 21 Nov 2021 12:40:03 +0100 Subject: [PATCH] finalizing manager gui : - adding buttons and label --- main.py | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/main.py b/main.py index 6c2d17c..fe1f654 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,6 @@ import tkinter.messagebox as messagebox -from tkinter import IntVar, Checkbutton, Scrollbar, Listbox, Entry, Button, Label, Frame, Tk, Toplevel +from tkinter import IntVar, Checkbutton, LabelFrame, Scrollbar, Listbox, Entry, Button, Label, Frame, Tk, Toplevel from re import sub from users import Utilisateurs # import de mon fichier pour gérer la base de donnée @@ -76,7 +76,8 @@ class GesMag: """Détermine si une date de naissance suit la politique du programme ou non.""" if len(naissance) == 0: return False - if sub(r"\d{4}\/\d{2}\/\d{2}", '', naissance) != '': + # lien pour mieux comprendre ce qui se passe : https://www.debuggex.com/r/hSD-6BfSqDD1It5Z + if sub(r"[0-9]{4}\/(0[1-9]|1[0-2])\/(0[1-9]|[1-2][0-9]|3[0-1])", '', naissance) != '': return False return True @@ -197,7 +198,7 @@ class GesMag: """Affiche l'interface du manager.""" manager = Utilisateurs().recuperationUtilisateur(id=id) self.parent.title(f"Manager {manager['nom']} {manager['prenom']}") - self.dimensionsFenetre(self.parent, 530, 720) + self.dimensionsFenetre(self.parent, 580, 310) # Suppresssion de la dernière Frame self.f.destroy() @@ -387,12 +388,22 @@ class GesMag: utilisateur = Utilisateurs().recuperationUtilisateur(pseudo=listeUtilisateurs.get(element[0]).split('(')[0][:-1]) enfant = Toplevel(self.f) # cf. l'explication dans `__ajouterUtilisateur` enfant.title(f"{utilisateur['nom']} {utilisateur['prenom']}") + + # Informations sur l'utilisateur + frameInfos = LabelFrame(enfant, text="Informations utilisateur", font=self.font) + frameInfos.grid(column=0, row=0, sticky='n', padx=5) utilisateur["metier"] = "Manager" if utilisateur["metier"] == 0 else "Caissier" del utilisateur["passe"] # le manager ne doit pas connaître le mot de passe de l'utilisateur for idx, cle in enumerate(utilisateur): - Label(enfant, text=f"{cle.capitalize()} :").grid(column=0, row=idx, sticky='e') - Label(enfant, text=utilisateur[cle]).grid(column=1, row=idx, sticky='w') - Button(enfant, text="Quitter", command=enfant.destroy).grid(column=3, row=0, sticky='w') + Label(frameInfos, text=f"{cle.capitalize()} :").grid(column=0, row=idx + 1, sticky='e') + Label(frameInfos, text=utilisateur[cle]).grid(column=1, row=idx + 1, sticky='w') + + + frameSuivi = LabelFrame(enfant, text="Suivi des ventes", font=self.font) + frameSuivi.grid(column=1, row=0, sticky='n', padx=5) + Label(frameSuivi, text="Aucun résultat récemment enrengistré").grid() + + Button(enfant, text="Quitter", command=enfant.destroy).grid(column=0, row=1, columnspan=2) Button(self.f, text="Ajouter un caissier", font=self.font, command=lambda: __ajouterUtilisateur(1)).grid(column=0, row=2) Button(self.f, text="Retirer un caissier", font=self.font, command=lambda: __retirerUtilisateur(1)).grid(column=1, row=2) @@ -441,6 +452,14 @@ class GesMag: else: # ce cas est là au cas où mais n'est pas sensé être appellé raise NameError("Métier inconnu.") + # Label d'information + Label(self.f, text=""" + Double-cliquez sur un + utilisateur de la liste + pour obtenir des informations + supplémentaire sur son sujet. + """, justify="right").grid(column=1, row=4, rowspan=2, sticky="e") + Label(self.f, text="Liste des utilisateurs", font=self.font).grid(column=0, row=4) # titre # On définit une barre pour pouvoir scroller dans la liste scroll = Scrollbar(self.f, orient="vertical") @@ -460,6 +479,8 @@ class GesMag: Checkbutton(filtres, text="Manager", variable=managerVerif, command=lambda: __ajouterUtilisateursListe(listeUtilisateurs)).grid(sticky='w') Checkbutton(filtres, text="Caissier", variable=caissierVerif, command=lambda: __ajouterUtilisateursListe(listeUtilisateurs)).grid(sticky='w') + Button(self.f, text="Passer en mode caissier", font=self.font).grid(column=0, row=6, columnspan=3, pady=10) + 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")