finalizing manager gui :
- adding buttons and label
This commit is contained in:
parent
2c8189d651
commit
5a6bf1bf19
1 changed files with 27 additions and 6 deletions
33
main.py
33
main.py
|
@ -1,6 +1,6 @@
|
||||||
import tkinter.messagebox as messagebox
|
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 re import sub
|
||||||
|
|
||||||
from users import Utilisateurs # import de mon fichier pour gérer la base de donnée
|
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."""
|
"""Détermine si une date de naissance suit la politique du programme ou non."""
|
||||||
if len(naissance) == 0:
|
if len(naissance) == 0:
|
||||||
return False
|
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 False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@ -197,7 +198,7 @@ class GesMag:
|
||||||
"""Affiche l'interface du manager."""
|
"""Affiche l'interface du manager."""
|
||||||
manager = Utilisateurs().recuperationUtilisateur(id=id)
|
manager = Utilisateurs().recuperationUtilisateur(id=id)
|
||||||
self.parent.title(f"Manager {manager['nom']} {manager['prenom']}")
|
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
|
# Suppresssion de la dernière Frame
|
||||||
self.f.destroy()
|
self.f.destroy()
|
||||||
|
@ -387,12 +388,22 @@ class GesMag:
|
||||||
utilisateur = Utilisateurs().recuperationUtilisateur(pseudo=listeUtilisateurs.get(element[0]).split('(')[0][:-1])
|
utilisateur = Utilisateurs().recuperationUtilisateur(pseudo=listeUtilisateurs.get(element[0]).split('(')[0][:-1])
|
||||||
enfant = Toplevel(self.f) # cf. l'explication dans `__ajouterUtilisateur`
|
enfant = Toplevel(self.f) # cf. l'explication dans `__ajouterUtilisateur`
|
||||||
enfant.title(f"{utilisateur['nom']} {utilisateur['prenom']}")
|
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"
|
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
|
del utilisateur["passe"] # le manager ne doit pas connaître le mot de passe de l'utilisateur
|
||||||
for idx, cle in enumerate(utilisateur):
|
for idx, cle in enumerate(utilisateur):
|
||||||
Label(enfant, text=f"{cle.capitalize()} :").grid(column=0, row=idx, sticky='e')
|
Label(frameInfos, text=f"{cle.capitalize()} :").grid(column=0, row=idx + 1, sticky='e')
|
||||||
Label(enfant, text=utilisateur[cle]).grid(column=1, row=idx, sticky='w')
|
Label(frameInfos, text=utilisateur[cle]).grid(column=1, row=idx + 1, sticky='w')
|
||||||
Button(enfant, text="Quitter", command=enfant.destroy).grid(column=3, row=0, 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="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)
|
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é
|
else: # ce cas est là au cas où mais n'est pas sensé être appellé
|
||||||
raise NameError("Métier inconnu.")
|
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
|
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
|
# On définit une barre pour pouvoir scroller dans la liste
|
||||||
scroll = Scrollbar(self.f, orient="vertical")
|
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="Manager", variable=managerVerif, command=lambda: __ajouterUtilisateursListe(listeUtilisateurs)).grid(sticky='w')
|
||||||
Checkbutton(filtres, text="Caissier", variable=caissierVerif, 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__":
|
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")
|
print("-- Compte par défaut --\nNom d'utilisateur: admin\nMot de passe: P@ssword")
|
||||||
|
|
Reference in a new issue