Skip to content

Commit

Permalink
fix minor bugs
Browse files Browse the repository at this point in the history
  • Loading branch information
dedaleDev committed Apr 19, 2024
1 parent b8375c6 commit ba0057f
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 20 deletions.
43 changes: 24 additions & 19 deletions operationOnDataBase.py
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ def addLivre(db:database.db):
if Note == None: return
DateDeParution = getAnswer("Entrez la date de parution du livre (attendu jj/mm/aaaa): ", "date", "La date de parution")
if DateDeParution == None: return
Statut = getAnswer("Veuillez choisir le statut à attribuer : ", "enum", content="Le statut",enum=["Disponible", "Emprunté", "hors stock"])
Statut = getAnswer("Veuillez choisir le statut à attribuer : ", "enum", content="Le statut",enum=["disponible", "emprunté", "hors stock"])
if Statut == None: return
Genre = getAnswer("Veuillez choisir le genre du livre : ", "enum", content="Le genre",enum=["Historique","Romantique","Policier","Science-fiction","Fantastique","Aventure","Biographique","Autobiographique","Épistolaire","Thriller","Tragédie","Drame","Absurde","Philosophique","Politique","Légendes & Mythes","Lettres personnelles","Voyages","Journal intime","Bandes dessinées","Documentaires","Religieux"])
if Genre == None: return
Expand Down Expand Up @@ -267,11 +267,11 @@ def deleteLivre(db:database.db):
recherche = getAnswer("Entrez le titre du livre à supprimer : ", "str", "Le titre du livre", 1, 50)
if recherche == None: return
livre = searchEngine.searchLivre(recherche, db, onlyOne=True)
if len(livre) == 1:
livre = livre[0]
if livre == None:
print("Oups, aucun livre n'a été trouvé pour cette recherche.")
return
if len(livre) == 1:
livre = livre[0]
if input(f"Voulez vous vraiment effacer le livre : {livre[1]} (Y/N) ? ") == "Y":
db.mkRequest("deleteLivre", False, livre[0])
db.db.commit()
Expand All @@ -287,11 +287,11 @@ def deleteAuteur(db:database.db):
recherche = getAnswer("Rechercher un auteur à supprimer : ", "str", "L'auteur", 1, 50)
if recherche == None: return
auteur = searchEngine.searchAuteur(recherche, db, onlyOne=True)
if len(auteur) == 1:
auteur = auteur[0]
if auteur == None:
print("Oups, aucun auteur n'a été trouvé pour cette recherche.")
return
if len(auteur) == 1:
auteur = auteur[0]
print("Cette opération entrainera la suppression de tous les livres associés à cet auteur.")
if input(f"Voulez vous vraiment effacer l'auteur : {auteur[2]} {auteur[1]} (Y/N) ? ") == "Y":
db.mkRequest("deleteLivreByAuteur", False, auteur[0])
Expand All @@ -313,15 +313,15 @@ def deletePointDeVente(db:database.db):
if pointDeVente == None:
print("Oups, aucun point de vente n'a été trouvé pour cette recherche.")
return
print(f"Cette opération demande le remplacement du point de vente {pointDeVente} pour tous les livres associés.")
print(f"Cette opération demande le remplacement du point de vente {pointDeVente[1]} pour tous les livres associés.")
recherche = getAnswer("Entrez le nom du point de vente de remplacement : ", "str", "Le point de vente", 1, 50)
if recherche == None: return
pointDeVenteRemplacement = searchEngine.searchPointDeVente(recherche, db, onlyOne=True)
if len(pointDeVenteRemplacement) == 1:
pointDeVenteRemplacement = pointDeVenteRemplacement[0]
if pointDeVenteRemplacement == None:
print("Oups, aucun point de vente n'a été trouvé pour cette recherche.")
return
if len(pointDeVenteRemplacement) == 1:
pointDeVenteRemplacement = pointDeVenteRemplacement[0]
if input(f"Confirmez vous le remplacement du point de vente {pointDeVente[1]} par {pointDeVenteRemplacement[1]} ? (Y/N) : ") != "Y":
print("Opération annulée.")
return
Expand All @@ -339,11 +339,11 @@ def deleteEditeur(db:database.db):
recherche = getAnswer("Entrez le nom de l'éditeur à supprimer : ", "str", "L'éditeur", 1, 50)
if recherche == None: return
editeur = searchEngine.searchEditeur(recherche, db, onlyOne=True)
if len(editeur) == 1:
editeur = editeur[0]
if editeur == None:
print("Oups, aucun éditeur n'a été trouvé pour cette recherche.")
return
if len(editeur) == 1:
editeur = editeur[0]
print("Cette opération entrainera la suppression de tous les livres associés à cet éditeur.")
if input(f"Voulez vous vraiment effacer l'éditeur : {editeur[0]} (Y/N) ? ") == "Y":
db.mkRequest("deleteLivreByEditeur", False, editeur[0])
Expand All @@ -365,7 +365,7 @@ def editLivre(db:database.db):
return
if len(livre) == 1:
livre = list(livre[0])
operation = [["ISBN"],["le titre","str", 1, 50],["l'auteur","str", 1, 50],["la description","str", 0, 1000],["la note","float", 0, 10],["la date de parution (jj/mm/aaaa)","date", 0, 10],["le statut","enum", ["Disponible", "Emprunté", "hors stock"]],["le genre","enum", ["Historique","Romantique","Policier","Science-fiction","Fantastique","Aventure","Biographique","Autobiographique","Épistolaire","Thriller","Tragédie","Drame","Absurde","Philosophique","Politique","Légendes & Mythes","Lettres personnelles","Voyages","Journal intime","Bandes dessinées","Documentaires","Religieux"]],["le format","enum", ["Poche","Grand Format","E-book & numérique","Manga","Bande Dessinée","Magazine","CD","DVD & Blu-ray"]],["le prix","float", 0, 1000],["le point de vente","str", 1, 50],["l'editeur","str", 1, 50],["quiter et sauvegarder (CTRL+C)"]]
operation = [["ISBN"],["le titre","str", 1, 50],["l'auteur","str", 1, 50],["la description","str", 0, 1000],["la note","float", 0, 10],["la date de parution (jj/mm/aaaa)","date", 0, 10],["le statut","enum", ["disponible", "emprunté", "hors stock"]],["le genre","enum", ["Historique","Romantique","Policier","Science-fiction","Fantastique","Aventure","Biographique","Autobiographique","Épistolaire","Thriller","Tragédie","Drame","Absurde","Philosophique","Politique","Légendes & Mythes","Lettres personnelles","Voyages","Journal intime","Bandes dessinées","Documentaires","Religieux"]],["le format","enum", ["Poche","Grand Format","E-book & numérique","Manga","Bande Dessinée","Magazine","CD","DVD & Blu-ray"]],["le prix","float", 0, 1000],["le point de vente","str", 1, 50],["l'editeur","str", 1, 50],["quiter et sauvegarder (CTRL+C)"]]
externalKeyOperation = {"l'auteur":searchEngine.searchAuteur,"le point de vente":searchEngine.searchPointDeVente,"l'editeur":searchEngine.searchEditeur}
print(f"Vous avez selectionné le livre : {livre[1]}")
print("Veuillez noter qu'il n'est pas possible d'éditer le code ISBN. Si cela est nécessaire, veuillez supprimer le livre et en ajouter un nouveau.")
Expand Down Expand Up @@ -418,7 +418,6 @@ def editLivre(db:database.db):
change = getAnswer(f"Entrez {operation[i][0]} : ", operation[i][1], operation[i][0], enum = operation[i][2])
if change == None: return
livre = [change if j == i else livre[j] for j in range(len(livre))]
print(livre)
saisie = input("Voulez-vous appliquer les modifications ? (Y / N / P (poursuivre modifications)) : ")
if saisie == "Y":
db.mkRequest("updateLivre", False,livre[1], livre[2], livre[3], livre[4], livre[5], livre[6], livre[7], livre[8], livre[9], livre[10], livre[11], livre[0])
Expand Down Expand Up @@ -643,7 +642,8 @@ def searchAuteur(db:database.db):
print(f"Né le : {result[i][4]}")
if result[i][5] != "0000-00-00" and result[i][5] != None:
print(f"Décédé le : {result[i][5]}")
print(f"Biographie : {result[i][3].replace('\n', '')}")
biographie = result[i][3].replace('\n', '')
print(f"Biographie : {biographie}")
input("Appuyez sur entrée pour continuer...")
except Exception as e:
print(f"Une erreur est survenue lors de la recherche du point de vente :{e}, ligne : {e.__traceback__.tb_lineno}")
Expand Down Expand Up @@ -684,9 +684,11 @@ def filterLivre(livres:list, operation:str,db:database.db)-> list:
if livres[i][8] == recherche:
result.append(livres[i])
elif operation == "statut":
recherche = getAnswer("Saisir un statut pour appliquer le filtre :", "enum", "Le statut", enum = ["Disponible", "Emprunté", "hors stock"])
recherche = getAnswer("Saisir un statut pour appliquer le filtre :", "enum", "Le statut", enum = ["disponible", "emprunté", "hors stock"])
print(recherche)
if recherche == None: return None
for i in range(len(livres)):
print(livres[i][6])
if livres[i][6] == recherche:
result.append(livres[i])
elif operation == "éditeur":
Expand Down Expand Up @@ -779,9 +781,7 @@ def searchLivre(db:database.db, recherche:str = None):
try :
entry = int(input("Veuillez saisir un filtre :").strip().split()[0])
if entry > 1 and entry <=6:
print(result)
result = filterLivre(result, filtre[entry-1].split()[2],db)
print(result)
if filterLivre == None:
print("Aucun filtre n'a été appliqué.")
except :
Expand All @@ -800,7 +800,10 @@ def searchLivre(db:database.db, recherche:str = None):
print(f"Résultat de la recherche pour '{recherche}' :\n")
for i in range(len(result)) :
print(f"-----------------------------------")
print(f"{result[i][1].replace('\n', '')}\nISBN : {result[i][0]}\nAuteur: {searchEngine.getAuteurNameByID(db, result[i][2])}\nDescription : {result[i][3].replace('\n', '')}\nNote : {result[i][4]:.1f}/10\nDate de parution : {result[i][5]}\nStatut : {result[i][6]}\nGenre : {result[i][7]}\nFormat : {result[i][8]}\nPrix : {result[i][9]:.2f}\nPoint de vente : {result[i][10].replace('\n','')}\nEditeur : {result[i][11]}")
titre = result[i][1].replace('\n', '')
description = result[i][3].replace('\n', '')
pointDeVente = result[i][10].replace('\n', ' ')
print(f"{titre}\nISBN : {result[i][0]}\nAuteur: {searchEngine.getAuteurNameByID(db, result[i][2])}\nDescription : {description}\nNote : {result[i][4]:.1f}/10\nDate de parution : {result[i][5]}\nStatut : {result[i][6]}\nGenre : {result[i][7]}\nFormat : {result[i][8]}\nPrix : {result[i][9]:.2f}\nPoint de vente : {pointDeVente}\nEditeur : {result[i][11]}")
input("Appuyez sur entrée pour continuer...")
except Exception as e :
print("Une erreur est survenue lors de la recherche du livre.", e, e.__traceback__.tb_lineno)
Expand All @@ -819,7 +822,8 @@ def searchPointDeVente(db:database.db):
print(f"Résultat de la recherche pour '{nom}' :\n")
for i in range(len(result)) :
print(f"-----------------------------------")
print(f"{result[i][1]}\nAdresse : {result[i][0].replace('\n', '')}\nSite web : {result[i][2]}\nTéléphone : {result[i][3]}")
Adresse = result[i][1].replace('\n', '')
print(f"{result[i][1]}\nAdresse : {Adresse}\nSite web : {result[i][2]}\nTéléphone : {result[i][3]}")
input("Appuyez sur entrée pour continuer...")
except Exception as e:
print(f"Une erreur est survenue lors de la recherche du point de vente :{e}, ligne : {e.__traceback__.tb_lineno}")
Expand All @@ -838,7 +842,8 @@ def searchEditeur(db:database.db):
print(f"Résultat de la recherche pour '{nom}' :\n")
for i in range(len(result)) :
print(f"-----------------------------------")
print(f"{result[i][0]}\nAdresse : {result[i][1].replace('\n', '')}")
Adresse = result[i][1].replace('\n', '')
print(f"{result[i][0]}\nAdresse : {Adresse}")
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}")
3 changes: 2 additions & 1 deletion searchEngine.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ def searchPointDeVente(recherche:str, db:database.db, onlyOne:bool = False)->lis
if onlyOne and len(result) > 1:
print(f"\nRésultat de la recherche pour {' '.join(recherche)}:\n")
for i in range(len(result)) :
print(f"{i+1} : {result[i][0].replace('\n',' ')}, {result[i][1]}")
temp = result[i][0].split('\n')
print(f"{i+1} : {temp}, {result[i][1]}")
while True :
try :
saisie = input("Veuillez saisir le numéro du point de vente que vous souhaitez sélectionner : ")
Expand Down

0 comments on commit ba0057f

Please sign in to comment.