Skip to content

Commit

Permalink
added editeur search and minor fix
Browse files Browse the repository at this point in the history
  • Loading branch information
dedaleDev committed Apr 16, 2024
1 parent 129b19e commit 11cb3ce
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 51 deletions.
2 changes: 1 addition & 1 deletion backup.sql
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ INSERT INTO `Auteur` (`ID`, `Nom`, `Prénom`, `Biographie`, `Date de naissance`,

CREATE TABLE `Editeur` (
`Nom` varchar(20) NOT NULL,
`Adresse` varchar(100) NOT NULL
`Adresse` varchar(120) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
Expand Down
53 changes: 13 additions & 40 deletions data/Editeur.csv
Original file line number Diff line number Diff line change
@@ -1,40 +1,13 @@
"Nom";"Adresse"
"Bayard Jeunesse";"Bayard
18, rue Barbès
92128 Montrouge Cedex"
"Casterman";"Éditions Casterman
56 rue Saint-Lazare
75009 Paris
France"
"Dupuis";"Dupuis Édition et Audiovisuel,
57, rue Gaston Tessier CS50061
75166 Paris CEDEX 19"
"Édition du Rouergue";"Éditions du Rouergue
47, rue du Docteur Fanton
BP 90038
13633 Arles cedex"
"Flammarion";"Éditions Flammarion
82, rue Saint-Lazare CS 10124
75009 Paris."
"Gallimard";"Éditions Gallimard
5 rue Gaston-Gallimard
75328 Paris cedex 07 FRANC"
"Hachette";"58, Rue Jean Bleuzen
CS 70007
92 178 Vanves CEDEX
France"
"HarperCollins";"HarperCollins France Service Ressources Humaines 83-85 boulevard Vincent Auriol 75646 PARIS CEDEX 13"
"Nathan";"Relation Enseignants Nathan
BP 20073
13321 MARSEILLE cedex 16"
"Pocket Jeunesse";"92 avenue de France, 75013 Paris, France"
"Rageot";"Rageot Éditeur
8 rue d’Assas
75006 PARIS

"
"Wellan Inc";"Wellan Inc.
257 Boul. Sir Wilfrid-Laurier
CP 85059 - PJC
Mont-Saint-Hilaire, QC
J3H 5W1"
"Nom";"Adresse"
"Bayard Jeunesse";"Bayard 18, rue Barbès 92128 Montrouge Cedex"
"Casterman";"Éditions Casterman 56 rue Saint-Lazare 75009 Paris France"
"Dupuis";"Dupuis Édition et Audiovisuel, 57, rue Gaston Tessier CS50061 75166 Paris CEDEX 19"
"Édition du Rouergue";"Éditions du Rouergue 47, rue du Docteur Fanton BP 90038 13633 Arles cedex"
"Flammarion";"Éditions Flammarion 82, rue Saint-Lazare CS 10124 75009 Paris."
"Gallimard";"Éditions Gallimard 5 rue Gaston-Gallimard 75328 Paris cedex 07 FRANCE"
"Hachette";"58, Rue Jean Bleuzen CS 70007 92 178 Vanves CEDEX France"
"HarperCollins";"HarperCollins France Service Ressources Humaines 83-85 boulevard Vincent Auriol 75646 PARIS CEDEX 13"
"Nathan";"Relation Enseignants Nathan BP 20073 13321 MARSEILLE cedex 16"
"Pocket Jeunesse";"92 avenue de France, 75013 Paris, France"
"Rageot";"Rageot Éditeur 8 rue d’Assas 75006 PARIS"
"Wellan Inc";"Wellan Inc. 257 Boul. Sir Wilfrid-Laurier CP 85059 - PJC Mont-Saint-Hilaire, QC J3H 5W1"
6 changes: 4 additions & 2 deletions database.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ class db():
"selectLivreByAuteurAlias" : "SELECT * FROM Livre JOIN Auteur ON Livre.Auteur = Auteur.ID WHERE Auteur.Alias LIKE %s;",
"selectLivreByDescription" : "SELECT * FROM `Livre` WHERE `Description` LIKE %s;",
"selectLivreByGenre" : "SELECT * FROM `Livre` WHERE `Genre` LIKE %s;",
"selectEditeurByNom" : "SELECT * FROM `Editeur` WHERE `Nom` LIKE %s;",
"selectEditeurByAdresse" : "SELECT * FROM `Editeur` WHERE `Adresse` LIKE %s;",
}

def __init__(self, host:str ="localhost", user:str="root", passwd:str="1234", port:int=3306, debug:bool=False) -> None:
Expand Down Expand Up @@ -141,8 +143,8 @@ def loadData(self) -> int:
continue
if file in idTable:
row.pop(0)
if ',' in row[-1]:
row[-1] = row[-1].split(',')[0]
#if ',' in row[-1]: apparemment inutile actuellement mais à garder au cas où #danger
# row[-1] = row[-1].split(',')[0]
self.mkRequest("insert"+file.split("/")[-1].split(".")[0], False, *row)
self.db.commit()
except FileNotFoundError or PermissionError as e:
Expand Down
18 changes: 14 additions & 4 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@
db_PASSWD = "1234"
db_PORT = 3306

debug = True #Ne pas utiliser en usage normal cela supprime l'ensemble des données au démarrage.
debug = False #Ne pas utiliser en usage normal cela supprime l'ensemble des données au démarrage.
#------------------------------------------------------


def addElement(db) -> None:
choiceListAddElement = [
("Livre",operationOnDataBase.addLivre, db),
("Auteur",operationOnDataBase.addAuthor)]
("Auteur",operationOnDataBase.addAuthor,db),
("Point de vente",operationOnDataBase.addAuthor),
("Editeur",operationOnDataBase.addAuthor)]
showMenu(choiceAction=choiceListAddElement, title= "Que souhaitez vous ajouter ?")


Expand All @@ -24,11 +26,17 @@ def search(db) -> None:
("Livre",operationOnDataBase.searchLivre, db),
("Auteur",operationOnDataBase.searchAuteur, db),
("Point de vente",operationOnDataBase.searchPointDeVente, db),
("Editeur",operationOnDataBase.searchEditeur, db),
("Tout rechercher",operationOnDataBase.searchAll, db),]
("Editeur",operationOnDataBase.searchEditeur, db)]
if showMenu(choiceAction=choiceListSearch, title= "Que souhaitez vous rechercher ?", defaultChoice=True, question="Veuillez saisir un type de recherche ou un livre : " ) == 0 :
return

def config():
choiceListConfig = [
("Ajouter",addElement, db),
("Editer",),
("Supprimer",),]


def showMenu(choiceAction : list, title = "Menu", defaultChoice:bool = False, question:str="Veuillez saisir une opération : "):
"""Show main menu"""
if title == "Menu" :
Expand Down Expand Up @@ -95,6 +103,8 @@ def showMenu(choiceAction : list, title = "Menu", defaultChoice:bool = False, qu
choiceList = [
("Rechercher",search,db),
("Configuration (admin)",addElement,db),
("Emprunts (admin)",operationOnDataBase.showEmprunts,db),
("Utilisateurs (admin)",operationOnDataBase.showUtilisateurs,db),
]
while True :
result = showMenu(choiceList)
Expand Down
39 changes: 36 additions & 3 deletions operationOnDataBase.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,8 @@ def getAnswer(question:str, type:str, content:str, min_int:int=0, max_int:int=5,
except KeyboardInterrupt:
return None
except Exception as e:
print("Désolé, le format de la réponse est incorrect. Veuillez réessayer.", answer, e, e.__traceback__.tb_lineno)
print("Désolé, l'entrée saisie est incorrect. Veuillez réessayer.")
#print("Désolé, le format de la réponse est incorrect. Veuillez réessayer.", answer, e, e.__traceback__.tb_lineno)



Expand Down Expand Up @@ -121,6 +122,12 @@ def addLivre(db:database.db):
def addAuthor():
return

def addPointDeVente():
return

def addEditeur():
return

def getAuteurNameByID(db:database.db, id:int)->str:
try :
db.mkRequest("selectAuteurByID", False, id)
Expand All @@ -140,6 +147,8 @@ def searchAuteur(db:database.db):
result = searchEngine.searchAuteur(nomPrenomAlias, db)
if result == None:
print("Oups, aucun auteur n'a été trouvé pour cette recherche.")
if input("Voulez-vous lancer une nouvelle recherche ? (Y/N) : ") == "Y":
searchAuteur(db)
return
print(f"Résultat de la recherche pour '{nomPrenomAlias}' :\n")
for i in range(len(result)) :
Expand All @@ -165,6 +174,8 @@ def searchLivre(db:database.db, recherche:str = None):
result = searchEngine.searchLivre(recherche, db)
if result == None:
print("Oups, aucun livre n'a été trouvé pour cette recherche.")
if input("Voulez-vous lancer une nouvelle recherche ? (Y/N) : ") == "Y":
searchLivre(db)
return
print(f"Résultat de la recherche pour '{recherche}' :\n")
for i in range(len(result)) :
Expand All @@ -182,6 +193,8 @@ def searchPointDeVente(db:database.db):
result = searchEngine.searchPointDeVente(nom, db)
if result == None:
print("Oups, aucun point de vente n'a été trouvé pour cette recherche.")
if input("Voulez-vous lancer une nouvelle recherche ? (Y/N) : ") == "Y":
searchPointDeVente(db)
return
print(f"Résultat de la recherche pour '{nom}' :\n")
for i in range(len(result)) :
Expand All @@ -194,8 +207,28 @@ def searchPointDeVente(db:database.db):
except Exception as e:
print(f"Une erreur est survenue lors de la recherche du point de vente :{e}, ligne : {e.__traceback__.tb_lineno}")

def searchEditeur():
def searchEditeur(db:database.db):
try :
nom = getAnswer("Rechercher un éditeur : ", "str", "L'éditeur", 1, 50)
if nom == None: return
result = searchEngine.searchEditeur(nom, db)
if result == None:
print("Oups, aucun éditeur n'a été trouvé pour cette recherche.")
if input("Voulez-vous lancer une nouvelle recherche ? (Y/N) : ") == "Y":
searchEditeur(db)
return
print(f"Résultat de la recherche pour '{nom}' :\n")
for i in range(len(result)) :
print(f"------------------------------------")
print(result[i][0])
print(f"Adresse : {result[i][1].replace('\n', '')}")
input("Appuyez sur entrée pour continuer...")
except Exception as e:
print(f"Une erreur est survenue lors de la recherche de l'éditeur :{e}, ligne : {e.__traceback__.tb_lineno}")


def showEmprunts(db:database.db):
pass

def searchAll():
def showUtilisateurs(db:database.db):
pass
2 changes: 1 addition & 1 deletion template.sql
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ CREATE TABLE `Auteur` (

CREATE TABLE `Editeur` (
`Nom` varchar(20) NOT NULL,
`Adresse` varchar(100) NOT NULL
`Adresse` varchar(120) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- --------------------------------------------------------
Expand Down

0 comments on commit 11cb3ce

Please sign in to comment.