class Console: ''' Class controls view, of the Telephone Boook ''' #Class atributes message="" __level=0 errorList={} def __init__(self): # def __init__(self,PATH): #path set # print(PATH) # sys.path.append(PATH) #initiate controller self.process=Processing() #loading the _data base # self.process.get_sql_contacts() #starting console menu self.menuRoot() #end def def setMessage(self,message): self.message=message #end def def getMessage(self): return self.message def messager(self): # Full hash line def lineHash(): print("#".join(["#" for i in range(1,40)])) #end def def lineMessage(message): patch="#"+" ".join([" " for i in range(1,2)])+message for j in range(1,80): patch=patch+" " if len(patch)==76: patch=patch+"#" break print(patch) #end def #messenger body print('\n'); lineHash() #lineMessage("") lineMessage(self.message) #lineMessage("") lineHash() #end def def toConfirm(self,message): confirmation=input(message+" Naciśnij T/N:") # To execute the selected option try: parameter=str(confirmation) if parameter=="t" or parameter=="T": return True elif parameter=="n" or parameter=="N": return False else: self.setMessage("Niewłaściwy znak! Wybierz T lub N.") self.messager() self.toConfirm(message) #end if except ValueError: self.setMessage("Niewłaściwy znak! Wybierz T lub N") self.messager() self.toConfirm(message) def toPrintDictionary(self,printDictionary): for d in printDictionary.values(): print(d) def menuRoot(self): self.messager() print ("1. Dodaj nowy kontakt") print ("2. Zarządzaj bazą danych") print ("3. Zapisz lub pobierz książkę telefoniczną z pliku") print ("4. Znajdź kontakt") print ("0. Wyjdź z programu") inputParam=input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter=int(inputParam) if parameter>=0 and parameter<5: if parameter==1: self.setMessage("") self.menuNew() elif parameter==2: self.setMessage("") self.menuSqlDb() elif parameter==3: self.setMessage("") self.menuCsvFile() elif parameter==4: self.setMessage("") self.menuFind() elif parameter==0: self.menuQuit() else: self.setMessage("Niewłaściwy numer! Wybierz wartość 1-4.") self.messager() self.menuRoot() #end if except ValueError: self.setMessage("Niewłaściwy znak! Wybierz wartość 1-4.") self.messager() self.menuRoot() def menuNew(self): self.setMessage("") def repeatNewMenu(nameUser,surnameUser,phoneUser): phoneUser=str(phoneUser) streetUser=input("4. Podaj ulicę: ") numberUser=input("5. Podaj numer domu i mieszkania: ") postalcodeUser=input("6. Podaj kod pocztowy: ") cityUser=self.process.to_upper_first_character(input("7. Podaj miasto: ")) emailUser=input("8. Podaj email: ") print("\n"+nameUser+" "+surnameUser+"\n"+phoneUser+"\n"+streetUser+" "+numberUser+"\n"+\ postalcodeUser+" "+cityUser+"\n"+emailUser) confirmation=self.toConfirm("Czy dane wprowadzono poprawnie?") if confirmation: doNotRepeats=self.process.new_contacts([nameUser, surnameUser, phoneUser, streetUser, numberUser, \ cityUser, postalcodeUser, emailUser]) #self.process.new_contacts if doNotRepeats: self.setMessage("Nowy kontakt został dodany do książki telefonicznej.") #self.message_box() self.menuRoot() else: self.setMessage("Kontakt znajduje się już w książce telefonicznej!") self.menuRoot() else: confirm=self.toConfirm("Czy wprowadzić nowy kontakt?") if confirm: self.menuNew() else: self.setMessage("") self.menuRoot() def newUserProceed(nameUser,surnameUser): try: phoneUser=int(input("3. Podaj numer telefonu: ")) repeatNewMenu(nameUser,surnameUser,phoneUser) except ValueError: self.setMessage("Niewłaściwy znak!") self.messager() newUserProceed(nameUser,surnameUser) nameUser=self.process.to_upper_first_character(input("1. Podaj imię: "))#to sort the right way surnameUser=self.process.to_upper_first_character(input("2. Podaj nazwisko: ")) newUserProceed(nameUser,surnameUser) def menuFilelist(self,fileType,startPoint=1): def doVector(pointer,fileList): if len(fileList)>=7: if int((pointer-1)/7)==0: return [1,8] else: return [1,len(fileList)%7+1] else: return[1,len(fileList)+1] def toPrintFileList(pointer,fileList,displayVector): print("".join([str(2+i)+". "+fileList[pointer-2+i]+" " for i in range(displayVector[0],displayVector[1])])) pointer=startPoint fileList=self.process.from_directory_file_list(fileType) displayVector=doVector(pointer,fileList) toPrintFileList(pointer,fileList,displayVector) # To execute the selected option try: print("\nWartość 3-9, reprezentuje pliki znajdujące się w katalogu domyślnym.") print("1. Poprzedni ekran 2. Następny ekran 0. Wyjście do porzedniego menu") parameter=int(input("\nWybierz plik lub opcję 0-2: ")) if parameter>=0 and parameter<=9: if parameter==1: self.setMessage("") if pointer-7>=0: # if pointer-7>=0: self.menuFilelist(fileType,pointer-7) else: self.menuFilelist(fileType,len(fileList)-(len(fileList)%7)+1) elif parameter==2: if pointer+7<len(fileList): # if pointer+7<len(fileList): self.menuFilelist(fileType,pointer+7) else: self.menuFilelist(fileType) elif parameter==0: print("menu 0") if fileType=="csv": self.menuCsvFile() elif fileType=="db": self.menuSqlDb() else: if fileType=="csv": self.process.set_start_file(fileList[pointer+parameter-4]+"."+fileType) # self.process.setFileName(fileList[pointer+parameter-4]+"."+fileType) self.setMessage("Wybrano plik "+fileList[pointer+parameter-4]) self.menuCsvFile() elif fileType=="db": self.process.set_start_db(fileList[pointer + parameter - 4] + "." + fileType) self.setMessage("Wybrano bazę "+fileList[pointer+parameter-4]) self.menuSqlDb() else: self.setMessage("Niewłaściwy numer! Wybierz wartość 1-9.") self.messager() self.menuFilelist(fileType) #end if except ValueError: self.setMessage("Niewłaściwy znak! Wybierz wartość 1-9.") self.messager() self.menuFilelist(fileType) def menuSqlDb(self): self.setMessage("") self.messager() print ("1. Zmień bazę danych") print ("2. Wczytaj kontakty z bazy danych") print ("3. Stwórz bazę danych") print ("4. Usuń bazę danych") print ("0. Wyjdź z programu") inputParam=input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter=int(inputParam) if parameter>=0 and parameter<5: if parameter==1: self.setMessage("") self.messager() type="db" self.menuFilelist(type) elif parameter==2: self.setMessage("") self.messager() sqlDictionary=self.process.get_sql_contacts() self.toPrintDictionary(sqlDictionary) confirm=self.toConfirm("Dodać dane?") if confirm: self.process.edit_update(sqlDictionary) self.menuSqlDb() else: self.menuSqlDb() elif parameter==3: fileName=input("Wprowadź nazwę dla pliku .db:") # self.process.set_start_db=_fileName self.process.create_sql_db(fileName) self.setMessage("Baza została stworzona") self.menuSqlDb() elif parameter==4: self.process. delete_sql_table() elif parameter==0: self.setMessage("") self.messager() self.menuRoot() else: self.setMessage("Niewłaściwy numer! Wybierz wartość 1-4.") self.messager() self.menuSqlDb() #end if except ValueError: self.setMessage("Niewłaściwy znak! Wybierz wartość 1-4.") self.messager() self.menuSqlDb() def menuCsvFile(self): self.setMessage("") self.messager() #print(self.message) print ("1. Wybierz plik CSV") print ("2. Wczytaj kontakty z pliku CSV") print ("3. Zapisz dane do pliku CSV") print ("0. Wyjdź z programu") inputParam=input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter=int(inputParam) if parameter>=0 and parameter<4: if parameter==1: self.setMessage("") self.messager() type="csv" self.menuFilelist(type) elif parameter==2: self.setMessage("") self.messager() csvDictionary=self.process.get_csv_contacts() self.toPrintDictionary(csvDictionary) confirm=self.toConfirm("Dodać dane?") if confirm: self.process.edit_update(csvDictionary) self.menuCsvFile() else: self.menuCsvFile() elif parameter==3: self.setCsvContacts() elif parameter==0: self.setMessage("") self.menuRoot() else: self.setMessage("Niewłaściwy numer! Wybierz wartość 1-4.") self.menuCsvFile() #end if except ValueError: self.setMessage("Niewłaściwy znak! Wybierz wartość 1-4.") self.menuCsvFile() def menuFind(self): def intCheck(): try: myString=input("Podaj nową wartość: ") checkString=int(myString) return myString except ValueError: self.setMessage("Niewłaściwy znak!") self.messager() intCheck() def subMenuEditContact(newDictionary): print("Wybierz pole, które chcesz edytować: ") print("1. Imię 2. Nazwisko 3. Numer telefonu") print("4. Ulica 5. Numer domu/mieszkania 6. Miasto") print("7. Kod pocztowy 8. Email 0. Wyjście") inputParam=input("Wybierz opcję: ") # To execute the selected option try: parameter=int(inputParam) if parameter>=0 and parameter<=8: if parameter==0: confirm=self.toConfirm("Zapisać zmiany? ") if confirm: update=self.process.edit_update(newDictionary) if update: self.setMessage("Zmiany zapisano") self.messager() self.menuFind() else: self.setMessage("Kontakt już znajduje się w książce telefonicznej") self.messager() subMenuEditContact(newDictionary) elif parameter==3: myString=intCheck() newDictionary=self.process.edit_contact(newDictionary, parameter - 1, myString) subMenuEditContact(newDictionary) else: self.setMessage("") self.messager() myString=input("Podaj nową wartość: ") newDictionary=self.process.edit_contact(newDictionary, parameter - 1, myString) subMenuEditContact(newDictionary) else: self.setMessage("Niewłaściwy numer! Wybierz wartość 1,5 lub 0.") subMenuFindEdit(newDictionary) #end if except ValueError: self.setMessage("Niewłaściwy znak! Wybierz wartość 1,5 lub 0.") subMenuFindEdit(newDictionary) def subMenuFindEdit(newDictionary): print("1. Edytuj kontakt: ") print("5. Usuń kontakt: ") print("0. Wyjdź z menu: ") inputParam=input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter=int(inputParam) if parameter==0 or parameter==5 or parameter==1: if parameter==1: self.setMessage("") self.messager() subMenuEditContact(newDictionary) elif parameter==5: confirm=self.toConfirm("Kontakt zostanie usunięty. ") if confirm: self.process.delete_contact(newDictionary) self.setMessage("Kontakt został usunięty") self.messager() self.menuFind() else: self.setMessage("") self.messager() subMenuFindEdit(newDictionary) elif parameter==0: self.menuFind() else: self.setMessage("Niewłaściwy numer! Wybierz wartość 1,5 lub 0.") subMenuFindEdit(newDictionary) #end if except ValueError: self.setMessage("Niewłaściwy znak! Wybierz wartość 1,5 lub 0.") subMenuFindEdit(newDictionary) def subMenuFind(): findString=input("Wpisz tekst aby wyszukać kontakt: ") newDictionary=self.process.find_contact_sting(findString) if len(newDictionary)==0: self.setMessage("Brak kontaktów.") self.messager() self.menuFind() elif len(newDictionary)==1: self.toPrintDictionary(newDictionary) subMenuFindEdit(newDictionary) elif len(newDictionary)>1: self.toPrintDictionary(newDictionary) self.setMessage("") self.messager() self.menuFind() print ("Po wyszukaniu jednego kontaktu możliwa jest jego edycja oraz jego usunięcie") print ("1. Wyszukaj kontakt") print ("0. Wróć do menu głównego") inputParam=input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter=int(inputParam) if parameter>=0 and parameter<=1: if parameter==1: self.setMessage("") self.messager() subMenuFind() elif parameter==0: self.setMessage("") self.messager() self.menuRoot() else: self.setMessage("Niewłaściwy numer! Wybierz wartość 0-1.") self.menuFind() #end if except ValueError: self.setMessage("Niewłaściwy znak! Wybierz wartość 0-1.") self.menuFind() def menuQuit(self): pass
class Console: ''' Class controls view, of the Telephone Boook ''' # Message to be set in the message box message='' def __init__(self): # initiate controller self.process=Processing() #starting console menu self.menu_root() def set_message(self, message): ''' :param message: A message to be placed in the message box. :type message: str ''' self.message=message def getMessage(self): ''' :return: message Function returns a message, a class attribute. ''' return self.message def message_box(self): ''' Function prints a message box in the console window. ''' #Program and author def top_headder(): print("#".join(['#' for i in range(1,3)]) + ' Dariusz Łuczyński ' + "#".join(['#' for i in range(1,2)]) \ + ' Kiążka Telefoniczna ' + "#".join(['#' for i in range(1,3)]) + ' AGH 2016' + "#".join(['#' for i in range(1,12)])) # Full hash line def line_hash(): print("#".join(["#" for i in range(1,40)])) def line_message(message): patch = "#" + " ".join([" " for i in range(1,2)]) + message for j in range(1,80): patch=patch + " " if len(patch) == 76: patch = patch + "#" break print(patch) #messenger body print('\n') top_headder(); line_hash() line_message(self.message) #line_message("") line_hash() def to_confirm(self, message): ''' :param message: Message with request of confirmation. :type message: str :return: True or False Function asks to confirm an action. ''' confirmation = input(message + " Naciśnij T/N:") # To execute the selected option try: parameter = str(confirmation) if parameter == "t" or parameter == "T": return True elif parameter == "n" or parameter == "N": return False else: self.set_message("Niewłaściwy znak! Wybierz T lub N.") self.message_box() self.to_confirm(message) except ValueError: self.set_message("Niewłaściwy znak! Wybierz T lub N") self.message_box() self.to_confirm(message) def to_print_dictionary(self, print_dictionary): ''' :param print_dictionary: A dictionary to be printed. :type print_dictionary: dict Prints a dictionary. ''' for d in print_dictionary.values(): print(d) def menu_root(self): ''' Prints a root menu. 1. Dodaj nowy kontakt 2. Zarządzaj bazą danych 3. Zapisz lub pobierz książkę telefoniczną z pliku 4. Znajdź kontakt 0. Wyjdź z programu ''' self.message_box() print ("1. Dodaj nowy kontakt") print ("2. Zarządzaj bazą danych") print ("3. Zapisz lub pobierz książkę telefoniczną z pliku") print ("4. Znajdź kontakt") print ("0. Wyjdź z programu") inputParam = input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter = int(inputParam) if parameter >= 0 and parameter < 5: if parameter == 1: self.set_message("") self.menu_new() elif parameter == 2: self.set_message("") self.menu_sql_db() elif parameter == 3: self.set_message("") self.menu_csv_file() elif parameter == 4: self.set_message("") self.menu_find() elif parameter == 0: self.menu_quit() else: self.set_message("Niewłaściwy numer! Wybierz wartość 1-4.") self.message_box() self.menu_root() #end if except ValueError: self.set_message("Niewłaściwy znak! Wybierz wartość 1-4.") self.message_box() self.menu_root() def menu_new(self): ''' Sets a new contact to the telephone book. 1. Podaj imię: 2. Podaj nazwisko: 3. Podaj numer telefonu: 4. Podaj ulicę: 5. Podaj numer domu i mieszkania: 6. Podaj kod pocztowy: 7. Podaj miasto: 8. Podaj email: ''' self.set_message("") def repeat_new_menu(name_user, surname_user, phone_user): phone_user = str(phone_user) street_user = input("4. Podaj ulicę: ") number_user = input("5. Podaj numer domu i mieszkania: ") postalcode_user = input("6. Podaj kod pocztowy: ") city_user = self.process.to_upper_first_character(input("7. Podaj miasto: ")) email_user = input("8. Podaj email: ") print("\n" + name_user + " " + surname_user + "\n" + phone_user + "\n" + street_user + " " + number_user + "\n" + \ postalcode_user +" " + city_user +"\n" + email_user) confirmation = self.to_confirm("Czy dane wprowadzono poprawnie?") if confirmation: do_not_repeats = self.process.new_contacts([name_user, surname_user, phone_user, street_user, number_user, \ city_user, postalcode_user, email_user]) #self.process.new_contacts if do_not_repeats: self.set_message("Nowy kontakt został dodany do książki telefonicznej.") #self.message_box() self.menu_root() else: self.set_message("Kontakt znajduje się już w książce telefonicznej!") self.menu_root() else: confirm = self.to_confirm("Czy wprowadzić nowy kontakt?") if confirm: self.menu_new() else: self.set_message("") self.menu_root() def new_user_proceed(name_user, surname_user): try: phone_user = int(input("3. Podaj numer telefonu: ")) repeat_new_menu(name_user, surname_user, phone_user) except ValueError: self.set_message("Niewłaściwy znak!") self.message_box() new_user_proceed(name_user, surname_user) name_user = self.process.to_upper_first_character(input("1. Podaj imię: "))#to sort the right way surname_user = self.process.to_upper_first_character(input("2. Podaj nazwisko: ")) new_user_proceed(name_user,surname_user) def menu_file_list(self, file_type, start_point=1): ''' :param file_type: Type of the file to be found in a directory. :type fileType: str :param start_point: Points on the beggining of the list. :type start_point: int Searches to choose a file from a directory. Wartość 3-9, reprezentuje pliki znajdujące się w katalogu domyślnym. 1. Poprzedni ekran 2. Następny ekran 0. Wyjście do porzedniego menu Wybierz plik lub opcję 0-2: ''' def do_vector(pointer, file_list): if len(file_list) >= 7: if int((pointer - 1)/7) == 0: return [1,8] else: return [1, len(file_list) % 7 + 1] else: return[1, len(file_list) + 1] def to_print_file_list(pointer, file_list, display_vector): print("".join([str(2 + i) + ". " + file_list[pointer - 2 + i] + " " for i in range(display_vector[0], display_vector[1])])) pointer = start_point file_list = self.process.from_directory_file_list(file_type) display_vector = do_vector(pointer,file_list) to_print_file_list(pointer,file_list,display_vector) # To execute the selected option try: print("\nWartość 3-9, reprezentuje pliki znajdujące się w katalogu domyślnym.") print("1. Poprzedni ekran 2. Następny ekran 0. Wyjście do porzedniego menu") parameter=int(input("\nWybierz plik lub opcję 0-2: ")) if parameter >= 0 and parameter <= 9: if parameter == 1: self.set_message("") if pointer - 7 >= 0: self.menu_file_list(file_type, pointer - 7) else: self.menu_file_list(file_type, len(file_list) - (len(file_list) % 7) + 1) elif parameter == 2: if pointer + 7 < len(file_list): self.menu_file_list(file_type, pointer + 7) else: self.menu_file_list(file_type) elif parameter == 0: if file_type== "csv": self.menu_csv_file() elif file_type== "db": self.menu_sql_db() else: if file_type == "csv": self.process.set_start_file(file_list[pointer+parameter-4]) self.set_message("Wybrano plik " + file_list[pointer + parameter - 4]) self.menu_csv_file() elif file_type== "db": self.process.set_start_db(file_list[pointer + parameter - 4]) self.set_message("Wybrano bazę " + file_list[pointer + parameter - 4]) self.menu_sql_db() else: self.set_message("Niewłaściwy numer! Wybierz wartość 1-9.") self.message_box() self.menu_file_list(file_type) #end if except ValueError: self.set_message("Niewłaściwy znak! Wybierz wartość 1-9.") self.message_box() self.menu_file_list(file_type) def menu_sql_db(self): ''' Interface to the SQL _data base. 1. Zmień bazę danych 2. Wczytaj kontakty z bazy danych 3. Stwórz bazę danych 4. Usuń bazę danych 0. Wyjdź z programu ''' self.set_message("") self.message_box() type="db" print ("1. Zmień bazę danych") print ("2. Wczytaj kontakty z bazy danych") print ("3. Stwórz bazę danych") print ("4. Usuń bazę danych") print ("0. Wyjdź z programu") input_param=input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter = int(input_param) if parameter >= 0 and parameter<5: if parameter == 1: self.set_message("") self.message_box() self.menu_file_list(type) elif parameter == 2: self.set_message("") self.message_box() sql_dictionary = self.process.get_sql_contacts() self.to_print_dictionary(sql_dictionary) confirm=self.to_confirm("Dodać dane?") if confirm: self.process.edit_update(sql_dictionary) self.menu_sql_db() else: self.menu_sql_db() elif parameter == 3: file_name = input("Wprowadź nazwę dla pliku .db:") # self.process.set_start_db=_fileName self.process.create_sql_db(file_name) self.set_message("Baza została stworzona") self.menu_sql_db() elif parameter == 4: table_delete = self.process.delete_sql_table() if table_delete: self.set_message("Baza danych została usunięta.") else: self.set_message("Brak bazy danych w liście.") self.menu_file_list(type) elif parameter == 0: self.set_message("") self.message_box() self.menu_root() else: self.set_message("Niewłaściwy numer! Wybierz wartość 1-4.") self.message_box() self.menu_sql_db() #end if except ValueError: self.set_message("Niewłaściwy znak! Wybierz wartość 1-4.") self.message_box() self.menu_sql_db() def menu_csv_file(self): ''' Import or export data to/from a CSV file. 1. Wybierz plik CSV 2. Wczytaj kontakty z pliku CSV 3. Zapisz dane do pliku CSV 0. Wyjdź z programu ''' self.set_message("") self.message_box() #print(self.message) print ("1. Wybierz plik CSV") print ("2. Wczytaj kontakty z pliku CSV") print ("3. Zapisz dane do pliku CSV") print ("0. Wyjdź z programu") input_param = input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter = int(input_param) if parameter >= 0 and parameter < 4: if parameter == 1: self.set_message("") self.message_box() type = "csv" self.menu_file_list(type) elif parameter == 2: self.set_message("") self.message_box() csv_dictionary = self.process.get_csv_contacts() self.to_print_dictionary(csv_dictionary) confirm = self.to_confirm("Dodać dane?") if confirm: self.process.edit_update(csv_dictionary) self.menu_csv_file() else: self.menu_csv_file() elif parameter == 3: self.process.set_csv_contacts() elif parameter == 0: self.set_message("") self.menu_root() else: self.set_message("Niewłaściwy numer! Wybierz wartość 1-4.") self.menu_csv_file() except ValueError: self.set_message("Niewłaściwy znak! Wybierz wartość 1-4.") self.menu_csv_file() def menu_find(self): ''' Finds a contact in the database with requested string. Po wyszukaniu jednego kontaktu możliwa jest jego edycja oraz jego usunięcie 1. Wyszukaj kontakt 0. Wróć do menu główneg pisz tekst aby wyszukać kontakt: Wybierz pole, które chcesz edytować: 1. Imię 2. Nazwisko 3. Numer telefonu 4. Ulica 5. Numer domu/mieszkania 6. Miasto 7. Kod pocztowy 8. Email 0. Wyjście If one contact is found the menu enables it to edit or delete. 1. Edytuj kontakt: 5. Usuń kontakt: 0. Wyjdź z menu: ''' def int_check(): try: my_string=input("Podaj nową wartość: ") int(my_string) #checks String return my_string except ValueError: self.set_message("Niewłaściwy znak!") self.message_box() int_check() def sub_menu_edit_contact(new_dictionary): print("Wybierz pole, które chcesz edytować: ") print("1. Imię 2. Nazwisko 3. Numer telefonu") print("4. Ulica 5. Numer domu/mieszkania 6. Miasto") print("7. Kod pocztowy 8. Email 0. Wyjście") input_param = input("Wybierz opcję: ") # To execute the selected option try: parameter = int(input_param) if parameter >= 0 and parameter <= 8: if parameter == 0: confirm = self.to_confirm("Zapisać zmiany? ") if confirm: update = self.process.edit_update(new_dictionary) if update: self.set_message("Zmiany zapisano") self.message_box() self.menu_find() else: self.set_message("Kontakt już znajduje się w książce telefonicznej") self.message_box() sub_menu_edit_contact(new_dictionary) elif parameter == 3: my_string = int_check() new_dictionary = self.process.edit_contact(new_dictionary, parameter - 1, my_string) sub_menu_edit_contact(new_dictionary) else: self.set_message("") self.message_box() my_string = input("Podaj nową wartość: ") new_dictionary = self.process.edit_contact(new_dictionary, parameter - 1, my_string) sub_menu_edit_contact(new_dictionary) else: self.set_message("Niewłaściwy numer! Wybierz wartość 1,5 lub 0.") sub_menu_find_edit(new_dictionary) except ValueError: self.set_message("Niewłaściwy znak! Wybierz wartość 1,5 lub 0.") sub_menu_find_edit(new_dictionary) def sub_menu_find_edit(new_dictionary): print("1. Edytuj kontakt: ") print("5. Usuń kontakt: ") print("0. Wyjdź z menu: ") input_param = input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter = int(input_param) if parameter == 0 or parameter == 5 or parameter == 1: if parameter == 1: self.set_message("") self.message_box() sub_menu_edit_contact(new_dictionary) elif parameter == 5: confirm = self.to_confirm("Kontakt zostanie usunięty. ") if confirm: self.process.delete_contact(new_dictionary) self.set_message("Kontakt został usunięty") self.message_box() self.menu_find() else: self.set_message("") self.message_box() sub_menu_find_edit(new_dictionary) elif parameter==0: self.menu_find() else: self.set_message("Niewłaściwy numer! Wybierz wartość 1,5 lub 0.") sub_menu_find_edit(new_dictionary) except ValueError: self.set_message("Niewłaściwy znak! Wybierz wartość 1,5 lub 0.") sub_menu_find_edit(new_dictionary) def sub_menu_find(): find_string=input("Wpisz tekst aby wyszukać kontakt: ") new_dictionary=self.process.find_contact_sting(find_string) if len(new_dictionary) == 0: self.set_message("Brak kontaktów.") self.message_box() self.menu_find() elif len(new_dictionary) == 1: self.to_print_dictionary(new_dictionary) sub_menu_find_edit(new_dictionary) elif len(new_dictionary) > 1: self.to_print_dictionary(new_dictionary) self.set_message("") self.message_box() self.menu_find() print ("Po wyszukaniu jednego kontaktu możliwa jest jego edycja oraz jego usunięcie") print ("1. Wyszukaj kontakt") print ("0. Wróć do menu głównego") input_param = input("Wybierz opcję: ") print("\n") # To execute the selected option try: parameter = int(input_param) if parameter >= 0 and parameter <= 1: if parameter == 1: self.set_message("") self.message_box() sub_menu_find() elif parameter == 0: self.set_message("") self.message_box() self.menu_root() else: self.set_message("Niewłaściwy numer! Wybierz wartość 0-1.") self.menu_find() except ValueError: self.set_message("Niewłaściwy znak! Wybierz wartość 0-1.") self.menu_find() def menu_quit(self): ''' Saves configuration and quits console menu. ''' self.process.save_configuration()