Added choice if you want to create a default database or not

This commit is contained in:
Mylloon 2021-11-28 12:43:05 +01:00
parent a57ec51965
commit 4d1a49bee8
3 changed files with 17 additions and 9 deletions

18
main.py
View file

@ -1,16 +1,22 @@
# Tkinter
from tkinter import IntVar, Checkbutton, LabelFrame, PhotoImage, Scrollbar, Listbox, Entry, Button, Label, Frame, Tk, Toplevel from tkinter import IntVar, Checkbutton, LabelFrame, PhotoImage, Scrollbar, Listbox, Entry, Button, Label, Frame, Tk, Toplevel
from tkinter.ttk import Combobox from tkinter.ttk import Combobox
from tkinter.messagebox import showerror, showinfo, showwarning, askyesno from tkinter.messagebox import showerror, showinfo, showwarning, askyesno
from tkinter.filedialog import askopenfile from tkinter.filedialog import askopenfile
# Regex
from re import sub from re import sub
from users import Utilisateurs # import de mon fichier pour gérer la base de donnée # Import des fichiers pour gérer la base de donnée
from users import Utilisateurs
from stock import Stock from stock import Stock
class GesMag: 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, presentation: bool = False) -> None:
"""Instancie quelques variables pour plus de clareté.""" """Instancie quelques variables pour plus de clareté."""
Utilisateurs().creationTable(presentation) # on créer la table utilisateurs si elle n'existe pas déjà
Stock().creationTable(presentation) # on créer la table du stock si elle n'existe pas déjà
self.parent = Tk() # fenêtre affiché à l'utilisateur self.parent = Tk() # fenêtre affiché à l'utilisateur
self.parent.resizable(False, False) # empêche la fenêtre d'être redimensionnée self.parent.resizable(False, False) # empêche la fenêtre d'être redimensionnée
self.f = Frame(self.parent) # `Frame` affiché à l'écran self.f = Frame(self.parent) # `Frame` affiché à l'écran
@ -20,8 +26,6 @@ class GesMag:
def demarrer(self) -> None: def demarrer(self) -> None:
"""Lance le programme GesMag.""" """Lance le programme GesMag."""
self.font = ("Comfortaa", 14) # police par défaut self.font = ("Comfortaa", 14) # police par défaut
Utilisateurs().creationTable() # on créer la table utilisateurs si elle n'existe pas déjà
Stock().creationTable() # on créer la table du stock si elle n'existe pas déjà
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
@ -730,4 +734,8 @@ class GesMag:
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")
GesMag().demarrer() """
si presentation = True alors une base de donnée par défaut sera généré.
si presentation = False ou n'est même pas mentionné, alors aucune base de donnée par défaut ne sera généré.
"""
GesMag(presentation = True).demarrer()

View file

@ -7,7 +7,7 @@ class Stock(BaseDeDonnees):
def __init__(self): def __init__(self):
super().__init__(r"db.sqlite3") super().__init__(r"db.sqlite3")
def creationTable(self) -> None: def creationTable(self, presentation: bool = False) -> None:
"""Créer la table qui stocker les stocks.""" """Créer la table qui stocker les stocks."""
requete = """ requete = """
CREATE TABLE IF NOT EXISTS stocks ( CREATE TABLE IF NOT EXISTS stocks (
@ -21,7 +21,7 @@ class Stock(BaseDeDonnees):
""" """
self.requete(requete) self.requete(requete)
# Ajout d'un stock par défaut si aucun stock n'existe dans la base de donnée # Ajout d'un stock par défaut si aucun stock n'existe dans la base de donnée
if len(self.listeStocks()) == 0: if len(self.listeStocks()) == 0 and presentation:
# Créer un dictionnaire d'éléments pour mieux voir ce que l'on ajoute à la base de donnée # Créer un dictionnaire d'éléments pour mieux voir ce que l'on ajoute à la base de donnée
defaut = { defaut = {
"fruits legumes": [ "fruits legumes": [

View file

@ -5,7 +5,7 @@ class Utilisateurs(BaseDeDonnees):
def __init__(self): def __init__(self):
super().__init__(r"db.sqlite3") super().__init__(r"db.sqlite3")
def creationTable(self) -> None: def creationTable(self, presentation: bool = False) -> None:
"""Créer la table qui stocker les utilisateurs.""" """Créer la table qui stocker les utilisateurs."""
requete = """ requete = """
CREATE TABLE IF NOT EXISTS utilisateurs ( CREATE TABLE IF NOT EXISTS utilisateurs (
@ -24,7 +24,7 @@ class Utilisateurs(BaseDeDonnees):
""" """
self.requete(requete) self.requete(requete)
# Ajout d'un utilisateur par défaut si aucun utilisateur n'existe dans la base de donnée # Ajout d'un utilisateur par défaut si aucun utilisateur n'existe dans la base de donnée
if len(self.listUtilisateurs()) == 0: if len(self.listUtilisateurs()) == 0 and presentation:
self.ajoutUtilisateur( self.ajoutUtilisateur(
pseudo="admin", pseudo="admin",
passe="P@ssword", passe="P@ssword",