addition of missing types and comments of functions
This commit is contained in:
parent
a85fd36ebe
commit
c4a1152015
4 changed files with 33 additions and 29 deletions
2
db.py
2
db.py
|
@ -25,7 +25,7 @@ class BaseDeDonnees:
|
||||||
else: # si le fichier existe
|
else: # si le fichier existe
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def requete(self, requete: str, valeurs = None):
|
def requete(self, requete: str, valeurs = None) -> tuple:
|
||||||
"""Envois une requête vers la base de données."""
|
"""Envois une requête vers la base de données."""
|
||||||
try:
|
try:
|
||||||
curseur = self.connexion.cursor()
|
curseur = self.connexion.cursor()
|
||||||
|
|
50
main.py
50
main.py
|
@ -112,7 +112,7 @@ class GesMag:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def connexion(self, utilisateur: str, motDePasse: str):
|
def connexion(self, utilisateur: str, motDePasse: str) -> None:
|
||||||
"""Gère la connexion aux différentes interfaces de l'application."""
|
"""Gère la connexion aux différentes interfaces de l'application."""
|
||||||
"""
|
"""
|
||||||
Vérification nom d'utilisateur / mot de passe correctement entré
|
Vérification nom d'utilisateur / mot de passe correctement entré
|
||||||
|
@ -139,7 +139,7 @@ class GesMag:
|
||||||
else:
|
else:
|
||||||
showerror("Erreur", "Utilisateur ou mot de passe incorrect.")
|
showerror("Erreur", "Utilisateur ou mot de passe incorrect.")
|
||||||
|
|
||||||
def dimensionsFenetre(self, fenetre, nouveauX: int, nouveauY: int):
|
def dimensionsFenetre(self, fenetre, nouveauX: int, nouveauY: int) -> None:
|
||||||
"""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."""
|
||||||
largeur = fenetre.winfo_screenwidth()
|
largeur = fenetre.winfo_screenwidth()
|
||||||
hauteur = fenetre.winfo_screenheight()
|
hauteur = fenetre.winfo_screenheight()
|
||||||
|
@ -149,7 +149,7 @@ class GesMag:
|
||||||
|
|
||||||
fenetre.geometry(f"{nouveauX}x{nouveauY}+{x}+{y}")
|
fenetre.geometry(f"{nouveauX}x{nouveauY}+{x}+{y}")
|
||||||
|
|
||||||
def _interfaceConnexion(self):
|
def _interfaceConnexion(self) -> None:
|
||||||
"""Affiche l'interface de connexion."""
|
"""Affiche l'interface de connexion."""
|
||||||
# Paramètres de la fenêtre
|
# Paramètres de la fenêtre
|
||||||
self.dimensionsFenetre(self.parent, 400, 600)
|
self.dimensionsFenetre(self.parent, 400, 600)
|
||||||
|
@ -175,7 +175,7 @@ class GesMag:
|
||||||
motDpasse.grid(column=1, row=4, columnspan=2, padx=ecart)
|
motDpasse.grid(column=1, row=4, columnspan=2, padx=ecart)
|
||||||
motDpasse.bind("<Return>", tentativeDeConnexion)
|
motDpasse.bind("<Return>", tentativeDeConnexion)
|
||||||
|
|
||||||
def __afficherMDP(self):
|
def __afficherMDP(self) -> None:
|
||||||
"""Permet de gérer l'affichage du mot de passe dans le champs sur la page de connexion."""
|
"""Permet de gérer l'affichage du mot de passe dans le champs sur la page de connexion."""
|
||||||
if self.mdpVisible == False: # si mot de passe caché, alors on l'affiche
|
if self.mdpVisible == False: # si mot de passe caché, alors on l'affiche
|
||||||
self.mdpVisible = True
|
self.mdpVisible = True
|
||||||
|
@ -197,7 +197,7 @@ 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):
|
def _interfaceCaissier(self, id: int) -> None:
|
||||||
"""Affiche l'interface du caissier."""
|
"""Affiche l'interface du caissier."""
|
||||||
caissier = Utilisateurs().recuperationUtilisateur(id=id)
|
caissier = Utilisateurs().recuperationUtilisateur(id=id)
|
||||||
self.parent.title(f"Caissier {caissier['nom']} {caissier['prenom']} – {self.nomApp}")
|
self.parent.title(f"Caissier {caissier['nom']} {caissier['prenom']} – {self.nomApp}")
|
||||||
|
@ -234,7 +234,7 @@ class GesMag:
|
||||||
boucheriePoissonnerieVerif = IntVar(stock)
|
boucheriePoissonnerieVerif = IntVar(stock)
|
||||||
entretienVerif = IntVar(stock)
|
entretienVerif = IntVar(stock)
|
||||||
|
|
||||||
def __affichageTableau(page: int = 1):
|
def __affichageTableau(page: int = 1) -> None:
|
||||||
"""Fonction qui va actualiser le tableau avec une page donnée (par défaut affiche la première page)."""
|
"""Fonction qui va actualiser le tableau avec une page donnée (par défaut affiche la première page)."""
|
||||||
# On supprime et refais la frame qui va stocker notre tableau
|
# On supprime et refais la frame qui va stocker notre tableau
|
||||||
self.tableau.destroy()
|
self.tableau.destroy()
|
||||||
|
@ -254,7 +254,7 @@ class GesMag:
|
||||||
|
|
||||||
stockListe = Stock().listeStocks() # stock récupéré de la base de données
|
stockListe = Stock().listeStocks() # stock récupéré de la base de données
|
||||||
|
|
||||||
def ___miseAJourPanier(element: dict, action: bool):
|
def ___miseAJourPanier(element: dict, action: bool) -> None:
|
||||||
"""
|
"""
|
||||||
Permet d'ajouter ou de retirer des éléments au panier
|
Permet d'ajouter ou de retirer des éléments au panier
|
||||||
-> Action
|
-> Action
|
||||||
|
@ -387,7 +387,7 @@ class GesMag:
|
||||||
|
|
||||||
Label(ticket, text=f"Date de vente : {date.today().strftime('%Y/%m/%d')}").grid(column=0, row=0, pady=ecart)
|
Label(ticket, text=f"Date de vente : {date.today().strftime('%Y/%m/%d')}").grid(column=0, row=0, pady=ecart)
|
||||||
|
|
||||||
def __affichagePanier():
|
def __affichagePanier() -> None:
|
||||||
"""Affiche le panier actuel dans le ticket de caisse."""
|
"""Affiche le panier actuel dans le ticket de caisse."""
|
||||||
self.panierAffichage.destroy()
|
self.panierAffichage.destroy()
|
||||||
self.panierAffichage = Frame(ticket)
|
self.panierAffichage = Frame(ticket)
|
||||||
|
@ -420,7 +420,7 @@ class GesMag:
|
||||||
|
|
||||||
__affichagePanier()
|
__affichagePanier()
|
||||||
|
|
||||||
def __validationTicketDeCaisse():
|
def __validationTicketDeCaisse() -> None:
|
||||||
"""Lance plusieurs méthodes pour valider le ticket de caisse."""
|
"""Lance plusieurs méthodes pour valider le ticket de caisse."""
|
||||||
# Met à jour la valeur dans le fichier `CSV` (statistiques)
|
# Met à jour la valeur dans le fichier `CSV` (statistiques)
|
||||||
Stats().miseAJourStatsUtilisateur(id, sum([element[0]["prix"] * element[1] for element in self.panier]))
|
Stats().miseAJourStatsUtilisateur(id, sum([element[0]["prix"] * element[1] for element in self.panier]))
|
||||||
|
@ -443,7 +443,7 @@ class GesMag:
|
||||||
validationTicketDeCaisseBouton.grid(column=0, pady=ecart)
|
validationTicketDeCaisseBouton.grid(column=0, pady=ecart)
|
||||||
|
|
||||||
# -> Partie ajout élément au stock
|
# -> Partie ajout élément au stock
|
||||||
def __ajouterElementStock():
|
def __ajouterElementStock() -> None:
|
||||||
"""Ouvre une fenêtre qui permet d'ajouter un nouvel élément à la base de donnée."""
|
"""Ouvre une fenêtre qui permet d'ajouter un nouvel élément à la base de donnée."""
|
||||||
"""
|
"""
|
||||||
L'enfant (`TopLevel`) dépend de la `Frame` et non du parent (`Tk`)
|
L'enfant (`TopLevel`) dépend de la `Frame` et non du parent (`Tk`)
|
||||||
|
@ -452,7 +452,7 @@ class GesMag:
|
||||||
enfant = Toplevel(self.f)
|
enfant = Toplevel(self.f)
|
||||||
enfant.title(f"Ajouter un élément au stock – {self.nomApp}")
|
enfant.title(f"Ajouter un élément au stock – {self.nomApp}")
|
||||||
|
|
||||||
def ___verification():
|
def ___verification() -> None:
|
||||||
"""Vérifie si les champs renseignées sont valides."""
|
"""Vérifie si les champs renseignées sont valides."""
|
||||||
"""
|
"""
|
||||||
La variable `ok` sert à savoir si la vérification est passée
|
La variable `ok` sert à savoir si la vérification est passée
|
||||||
|
@ -473,6 +473,10 @@ class GesMag:
|
||||||
# Pas de coloration orange si le type est mauvais parce que on ne peut pas changé la couleur de fond d'une ComboBox
|
# Pas de coloration orange si le type est mauvais parce que on ne peut pas changé la couleur de fond d'une ComboBox
|
||||||
# vérification pour le nom
|
# vérification pour le nom
|
||||||
def ___nomValide(nom: str) -> bool:
|
def ___nomValide(nom: str) -> bool:
|
||||||
|
"""
|
||||||
|
Vérifie si un nom est valide pour le stock.
|
||||||
|
(non vide et pas déjà présent dans la base de donnée)
|
||||||
|
"""
|
||||||
if len(nom) <= 0:
|
if len(nom) <= 0:
|
||||||
return False
|
return False
|
||||||
if Stock().stockExistant(nom) == True:
|
if Stock().stockExistant(nom) == True:
|
||||||
|
@ -528,7 +532,7 @@ class GesMag:
|
||||||
Label(enfant, text="Image :").grid(column=0, row=0, sticky='e')
|
Label(enfant, text="Image :").grid(column=0, row=0, sticky='e')
|
||||||
image = Entry(enfant)
|
image = Entry(enfant)
|
||||||
image.grid(column=1, row=0, sticky='w')
|
image.grid(column=1, row=0, sticky='w')
|
||||||
def ___selectionImage():
|
def ___selectionImage() -> None:
|
||||||
"""Fonction qui permet de choisir une image dans l'arborescence de fichiers de l'utilisateur."""
|
"""Fonction qui permet de choisir une image dans l'arborescence de fichiers de l'utilisateur."""
|
||||||
try:
|
try:
|
||||||
chemin = askopenfile(title="Choisir une image", filetypes=[("Image GIF", ".gif")])
|
chemin = askopenfile(title="Choisir une image", filetypes=[("Image GIF", ".gif")])
|
||||||
|
@ -556,7 +560,7 @@ class GesMag:
|
||||||
prix = Entry(enfant)
|
prix = Entry(enfant)
|
||||||
prix.grid(column=1, row=4, sticky='w')
|
prix.grid(column=1, row=4, sticky='w')
|
||||||
|
|
||||||
def ___viderChamps():
|
def ___viderChamps() -> None:
|
||||||
"""Vide tout les champs de leur contenu"""
|
"""Vide tout les champs de leur contenu"""
|
||||||
# On récupère toutes les `Entry` de la fenêtre et on change leur contenu
|
# On récupère toutes les `Entry` de la fenêtre et on change leur contenu
|
||||||
for champ in [widget for typeElement, widget in enfant.children.items() if "entry" in typeElement]:
|
for champ in [widget for typeElement, widget in enfant.children.items() if "entry" in typeElement]:
|
||||||
|
@ -571,7 +575,7 @@ class GesMag:
|
||||||
Button(self.f, text="Ajouter un élément\nau stock", font=self.font, command=__ajouterElementStock).grid(column=1, row=2)
|
Button(self.f, text="Ajouter un élément\nau stock", font=self.font, command=__ajouterElementStock).grid(column=1, row=2)
|
||||||
|
|
||||||
# -> Partie export des statistiques
|
# -> Partie export des statistiques
|
||||||
def __exportation():
|
def __exportation() -> None:
|
||||||
"""Exporte dans un fichier choisie par l'utilisateur ses statistiques de la journée."""
|
"""Exporte dans un fichier choisie par l'utilisateur ses statistiques de la journée."""
|
||||||
chemin = asksaveasfile(title=f"Exportation des statistiques de {caissier['nom']} {caissier['prenom']}", filetypes=[("Fichier CSV", ".csv")])
|
chemin = asksaveasfile(title=f"Exportation des statistiques de {caissier['nom']} {caissier['prenom']}", filetypes=[("Fichier CSV", ".csv")])
|
||||||
if chemin == None: # si rien n'a été spécifie on arrête l'exportation
|
if chemin == None: # si rien n'a été spécifie on arrête l'exportation
|
||||||
|
@ -585,7 +589,7 @@ class GesMag:
|
||||||
if caissier["metier"] == 0:
|
if caissier["metier"] == 0:
|
||||||
Button(self.f, text="Passer en mode Manager", font=self.font, command=lambda: self._interfaceManager(id)).grid(column=0, row=2, sticky='w', padx=220)
|
Button(self.f, text="Passer en mode Manager", font=self.font, command=lambda: self._interfaceManager(id)).grid(column=0, row=2, sticky='w', padx=220)
|
||||||
|
|
||||||
def _interfaceManager(self, id: int):
|
def _interfaceManager(self, id: int) -> None:
|
||||||
"""Affiche l'interface du manager."""
|
"""Affiche l'interface du manager."""
|
||||||
manager = Utilisateurs().recuperationUtilisateur(id=id)
|
manager = Utilisateurs().recuperationUtilisateur(id=id)
|
||||||
# Dans le cas où un utilisateur réussi à trouvé cette interface alors qu'il n'a pas le droit, il sera bloqué
|
# Dans le cas où un utilisateur réussi à trouvé cette interface alors qu'il n'a pas le droit, il sera bloqué
|
||||||
|
@ -607,7 +611,7 @@ class GesMag:
|
||||||
|
|
||||||
Label(self.f).grid(row = 1, pady=10) # séparateur
|
Label(self.f).grid(row = 1, pady=10) # séparateur
|
||||||
|
|
||||||
def __ajouterUtilisateur(metier: int):
|
def __ajouterUtilisateur(metier: int) -> None:
|
||||||
"""Permet de créer un nouvel utilisateur, manager (`metier = 0`) et caissier (`metier = 1`)."""
|
"""Permet de créer un nouvel utilisateur, manager (`metier = 0`) et caissier (`metier = 1`)."""
|
||||||
"""
|
"""
|
||||||
L'enfant (`TopLevel`) dépend de la `Frame` et non du parent (`Tk`)
|
L'enfant (`TopLevel`) dépend de la `Frame` et non du parent (`Tk`)
|
||||||
|
@ -616,7 +620,7 @@ class GesMag:
|
||||||
enfant = Toplevel(self.f)
|
enfant = Toplevel(self.f)
|
||||||
enfant.title(f"Ajouter un {'manager' if metier == 0 else 'caissier'} – {self.nomApp}")
|
enfant.title(f"Ajouter un {'manager' if metier == 0 else 'caissier'} – {self.nomApp}")
|
||||||
|
|
||||||
def ___verification():
|
def ___verification() -> None:
|
||||||
"""Vérifie si les champs renseignées sont valides."""
|
"""Vérifie si les champs renseignées sont valides."""
|
||||||
"""
|
"""
|
||||||
Les valeurs `Entry` qui ne sont pas passés seront dans
|
Les valeurs `Entry` qui ne sont pas passés seront dans
|
||||||
|
@ -711,7 +715,7 @@ class GesMag:
|
||||||
postal = Entry(enfant)
|
postal = Entry(enfant)
|
||||||
postal.grid(column=1, row=6, sticky='w')
|
postal.grid(column=1, row=6, sticky='w')
|
||||||
|
|
||||||
def ___viderChamps():
|
def ___viderChamps() -> None:
|
||||||
"""Vide tout les champs de leur contenu"""
|
"""Vide tout les champs de leur contenu"""
|
||||||
# On récupère toutes les `Entry` de la fenêtre et on change leur contenu
|
# On récupère toutes les `Entry` de la fenêtre et on change leur contenu
|
||||||
for champ in [widget for typeElement, widget in enfant.children.items() if "entry" in typeElement]:
|
for champ in [widget for typeElement, widget in enfant.children.items() if "entry" in typeElement]:
|
||||||
|
@ -723,7 +727,7 @@ class GesMag:
|
||||||
Button(enfant, text="Vider les champs", command=___viderChamps).grid(column=0, row=8, columnspan=3)
|
Button(enfant, text="Vider les champs", command=___viderChamps).grid(column=0, row=8, columnspan=3)
|
||||||
Button(enfant, text="Quitter", command=enfant.destroy).grid(column=0, row=8, columnspan=3, sticky='e')
|
Button(enfant, text="Quitter", command=enfant.destroy).grid(column=0, row=8, columnspan=3, sticky='e')
|
||||||
|
|
||||||
def __retirerUtilisateur(metier: int):
|
def __retirerUtilisateur(metier: int) -> None:
|
||||||
"""Permet de supprimer un utilisateur existant, manager (`metier = 0`) et caissier (`metier = 1`)."""
|
"""Permet de supprimer un utilisateur existant, manager (`metier = 0`) et caissier (`metier = 1`)."""
|
||||||
enfant = Toplevel(self.f) # cf. l'explication dans `__ajouterUtilisateur`
|
enfant = Toplevel(self.f) # cf. l'explication dans `__ajouterUtilisateur`
|
||||||
enfant.title(f"Retirer un {'manager' if metier == 0 else 'caissier'} – {self.nomApp}")
|
enfant.title(f"Retirer un {'manager' if metier == 0 else 'caissier'} – {self.nomApp}")
|
||||||
|
@ -741,7 +745,7 @@ class GesMag:
|
||||||
listeUtilisateurs_retirer.grid(column=0, row=1)
|
listeUtilisateurs_retirer.grid(column=0, row=1)
|
||||||
# On affiche l'utilisateur quand on double-clique dessus
|
# On affiche l'utilisateur quand on double-clique dessus
|
||||||
|
|
||||||
def ___suppressionUtilisateur():
|
def ___suppressionUtilisateur() -> None:
|
||||||
"""Supprime l'utilisateur actuellement sélectionné dans la liste"""
|
"""Supprime l'utilisateur actuellement sélectionné dans la liste"""
|
||||||
element = listeUtilisateurs_retirer.curselection()
|
element = listeUtilisateurs_retirer.curselection()
|
||||||
if len(element) == 0: # si aucun élément n'est selectionné
|
if len(element) == 0: # si aucun élément n'est selectionné
|
||||||
|
@ -759,7 +763,7 @@ class GesMag:
|
||||||
Button(enfant, text="Supprimer", command=___suppressionUtilisateur).grid(column=0, row=8, columnspan=3, sticky='w')
|
Button(enfant, text="Supprimer", command=___suppressionUtilisateur).grid(column=0, row=8, columnspan=3, sticky='w')
|
||||||
Button(enfant, text="Quitter", command=enfant.destroy).grid(column=0, row=8, columnspan=3, sticky='e')
|
Button(enfant, text="Quitter", command=enfant.destroy).grid(column=0, row=8, columnspan=3, sticky='e')
|
||||||
|
|
||||||
def __afficherInformationsUtilisateur(_):
|
def __afficherInformationsUtilisateur(_) -> None:
|
||||||
"""Permet d'afficher les informations d'un utilisateur"""
|
"""Permet d'afficher les informations d'un utilisateur"""
|
||||||
element = listeUtilisateurs.curselection()
|
element = listeUtilisateurs.curselection()
|
||||||
if len(element) == 0: # si aucun élément n'est selectionné
|
if len(element) == 0: # si aucun élément n'est selectionné
|
||||||
|
@ -789,7 +793,7 @@ class GesMag:
|
||||||
frameSuivi = LabelFrame(enfant, text="Histogramme des ventes", font=self.font)
|
frameSuivi = LabelFrame(enfant, text="Histogramme des ventes", font=self.font)
|
||||||
frameSuivi.grid(column=1, row=0, sticky="ns", padx=5)
|
frameSuivi.grid(column=1, row=0, sticky="ns", padx=5)
|
||||||
|
|
||||||
def ___actualisationCanvas():
|
def ___actualisationCanvas() -> None:
|
||||||
"""Affiche l'histogramme des vente d'un utilisateur dans un canvas."""
|
"""Affiche l'histogramme des vente d'un utilisateur dans un canvas."""
|
||||||
donnees = Stats().recuperationDonneesCSV(utilisateur['id'])
|
donnees = Stats().recuperationDonneesCSV(utilisateur['id'])
|
||||||
if len(donnees) <= 0:
|
if len(donnees) <= 0:
|
||||||
|
@ -845,7 +849,7 @@ class GesMag:
|
||||||
|
|
||||||
caissierVerif.set(1) # par défaut on affiche que les caissiers
|
caissierVerif.set(1) # par défaut on affiche que les caissiers
|
||||||
|
|
||||||
def __ajouterUtilisateursListe(liste: Listbox, force: int = None):
|
def __ajouterUtilisateursListe(liste: Listbox, force: int = None) -> None:
|
||||||
"""
|
"""
|
||||||
Ajoute des utilisateurs à la liste du Manager.
|
Ajoute des utilisateurs à la liste du Manager.
|
||||||
-> metier = 0 : manager uniquement
|
-> metier = 0 : manager uniquement
|
||||||
|
|
8
stats.py
8
stats.py
|
@ -18,7 +18,7 @@ class Stats():
|
||||||
dateAujourdHui = dateAujourdHui + timedelta(days=1)
|
dateAujourdHui = dateAujourdHui + timedelta(days=1)
|
||||||
return datesPossibles
|
return datesPossibles
|
||||||
|
|
||||||
def creationCSV(self, force: bool = False):
|
def creationCSV(self, force: bool = False) -> None:
|
||||||
"""
|
"""
|
||||||
Créer le fichier `CSV` qui stockera les statistiques pour tous les utilisateurs.
|
Créer le fichier `CSV` qui stockera les statistiques pour tous les utilisateurs.
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ class Stats():
|
||||||
fichier = csv.writer(f)
|
fichier = csv.writer(f)
|
||||||
fichier.writerow(["id", "pseudo"] + self.datesDisponibles())
|
fichier.writerow(["id", "pseudo"] + self.datesDisponibles())
|
||||||
|
|
||||||
def miseAJourStatsUtilisateur(self, utilisateurID: int, prix: float):
|
def miseAJourStatsUtilisateur(self, utilisateurID: int, prix: float) -> None:
|
||||||
"""
|
"""
|
||||||
Récupère le prix d'une transaction et l'ajoute au total d'un utilisateur.
|
Récupère le prix d'une transaction et l'ajoute au total d'un utilisateur.
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ class Stats():
|
||||||
ecriture.writerows(fichier)
|
ecriture.writerows(fichier)
|
||||||
|
|
||||||
|
|
||||||
def exporteCSV(self, chemin: str, utilisateurID: int):
|
def exporteCSV(self, chemin: str, utilisateurID: int) -> None:
|
||||||
"""
|
"""
|
||||||
Exporte les statistiques d'un utilisateur dans un fichier `CSV`.
|
Exporte les statistiques d'un utilisateur dans un fichier `CSV`.
|
||||||
- N'exporte que les statistiques du jour.
|
- N'exporte que les statistiques du jour.
|
||||||
|
@ -109,7 +109,7 @@ class Stats():
|
||||||
return utilisateur # renvoie des infos de l'utilisateur
|
return utilisateur # renvoie des infos de l'utilisateur
|
||||||
return {} # ne retourne rien si l'utilisateur n'était pas présent dans le fichier
|
return {} # ne retourne rien si l'utilisateur n'était pas présent dans le fichier
|
||||||
|
|
||||||
def miseAJourDatesCSV(self):
|
def miseAJourDatesCSV(self) -> None:
|
||||||
"""
|
"""
|
||||||
Mets-à-jour les dates trop anciennes du fichier globales `CSV`.
|
Mets-à-jour les dates trop anciennes du fichier globales `CSV`.
|
||||||
|
|
||||||
|
|
2
users.py
2
users.py
|
@ -55,7 +55,7 @@ class Utilisateurs(BaseDeDonnees):
|
||||||
"""
|
"""
|
||||||
self.requete(requete, pseudo)
|
self.requete(requete, pseudo)
|
||||||
|
|
||||||
def verificationIdentifiants(self, pseudo: str, motDePasse: str):
|
def verificationIdentifiants(self, pseudo: str, motDePasse: str) -> tuple:
|
||||||
"""
|
"""
|
||||||
Retourne l'ID de l'utilisateur si trouvé dans la base de donnée ainsi
|
Retourne l'ID de l'utilisateur si trouvé dans la base de donnée ainsi
|
||||||
que son métier (`tuple`), sinon renvoie `(0,)`.
|
que son métier (`tuple`), sinon renvoie `(0,)`.
|
||||||
|
|
Reference in a new issue