From 1702e1187b8cf6affc6557d804f50dbf00ff681e Mon Sep 17 00:00:00 2001 From: ada-dmitry Date: Sun, 5 May 2024 19:19:58 +0300 Subject: [PATCH] added index_choice --- 0.5_test/add_func.py | 5 - 0.5_test/main.py | 108 +++++++----------- .../__pycache__/cath_table.cpython-311.pyc | Bin 2436 -> 2318 bytes .../__pycache__/dish_table.cpython-311.pyc | Bin 7033 -> 6809 bytes 0.5_test/tables/cath_table.py | 8 +- 0.5_test/tables/dish_table.py | 3 +- 6 files changed, 44 insertions(+), 80 deletions(-) delete mode 100644 0.5_test/add_func.py diff --git a/0.5_test/add_func.py b/0.5_test/add_func.py deleted file mode 100644 index 163c1fc..0000000 --- a/0.5_test/add_func.py +++ /dev/null @@ -1,5 +0,0 @@ -import re - -def is_cyr_or_dig(string): - pattern = r'^[\u0400-\u04FF\d]+$' - return bool(re.match(pattern, string)) \ No newline at end of file diff --git a/0.5_test/main.py b/0.5_test/main.py index 14b8092..696b56f 100644 --- a/0.5_test/main.py +++ b/0.5_test/main.py @@ -1,4 +1,3 @@ -import add_func import sys import texts sys.path.append('tables') @@ -12,11 +11,10 @@ from tables.cath_table import * ''' TODO: 1) Реализовать ввод порядкового номера - Не выполнено -2) Удалить проверки на "русскоязычный ввод" - Не выполнено +2) Удалить проверки на "русскоязычный ввод" - done 3) Устранить SQLi с помощью санации атрибутов - Не выполнено FIXME: -1) Мяу - Не выполнено ''' @@ -75,17 +73,21 @@ class Main: print("Выбрано неверное число! Повторите ввод!") return "0" else: - return next_step; + return next_step def show_cath(self): self.cath_id = -1 + self.cath_arr = [] menu = texts.show_cath_1txt print(menu) lst = CathTable().all() - j = 1 + for i in lst: - print(str(j) + "\t" + str(i[0])) - j += 1 + self.cath_arr.append(str(i[0])) + + for i in range(len(self.cath_arr)): + print(str(i+1) + "\t" + self.cath_arr[i]) + menu = texts.show_cath_2txt print(menu) return @@ -95,7 +97,11 @@ class Main: """ while True: if next_step == "4": - CathTable().delete(input('Введите название удаляемой категории(1 - для отмены): ')) + x = int(input('Введите номер удаляемой категории(0 - для отмены): ')) + if (x == 0): + return "1" + else: + CathTable().delete(self.cath_arr[x-1]) return "1" elif next_step == "6": #Добавление блюда в категорию @@ -103,23 +109,11 @@ class Main: next_step = "5" elif next_step == "7":#Удаление блюда из категории - del_name = input('Введите название удаляемого блюда (1 - для отмены): ') - while (del_name.strip() == '')or(len(del_name.strip()) > 32)or(add_func.is_cyr_or_dig(del_name.strip())==0): - if(del_name.strip() == ''): - del_name = input("Пустая строка. Повторите ввод! Укажите название удаляемого блюда (0 - отмена): ") - if del_name == "0": - return "1" - elif(len(del_name.strip()) > 32): - del_name = input("Слишком длинная строка. Повторите ввод!\ - Укажите название удаляемого блюда (0 - отмена): ") - if del_name == "0": - return "1" - elif(add_func.is_cyr_or_dig(del_name.strip())==0): - del_name = input("Название должно состоять только из символов кириллицы. Повторите ввод!\ - Укажите название удаляемого блюда (0 - отмена): ") - if del_name == "0": - return "1" - DishTable().delete(del_name) + x = int(input('Введите номер удаляемого блюда (0 - для отмены): ')) + if(x==0): + pass + else: + DishTable().delete(self.dish_arr[x-1][0]) next_step = "5" elif next_step == "5": next_step = self.show_dish_in_cath() @@ -137,16 +131,11 @@ class Main: data.append(input("Введите название (1 - отмена): ").strip()) if data[0] == "1": return - while((len(data[0].strip()) == 0)or(len(data[0].strip()) > 32)or(add_func.is_cyr_or_dig(data[0].strip())==0)): + while((len(data[0].strip()) == 0)or(len(data[0].strip()) > 32)): if (len(data[0].strip()) > 32): data[0] = input("Название слишком длинное! Введите название заново (1 - отмена):").strip() if data[0] == "1": return - elif add_func.is_cyr_or_dig(data[0].strip())==0: - data[0] = input("Название должно состоять только из символов кириллицы!\ - Введите название заново (1 - отмена):").strip() - if data[0] == "1": - return else: data[0] = input("Название не может быть пустым! Введите название заново (1 - отмена):").strip() if data[0] == "1": @@ -157,44 +146,31 @@ class Main: def show_dish_in_cath(self): """Вывод всех блюд в выбранной пользователем категории """ + self.dish_arr = [] if self.cath_id == -1: while True: - name = input("Укажите название категории для вывода блюд (0 - отмена):") - while (name.strip() == '')or(len(name.strip()) > 32)or(add_func.is_cyr_or_dig(name.strip())==0): - if(name.strip() == ''): - name = input("Пустая строка. Повторите ввод! Укажите название категории для вывода блюд (0 - отмена):") - if name == "0": - return "1" - elif(len(name.strip()) > 32): - name = input("Сликшом длинная строка. Повторите ввод!\ - Укажите название категории для вывода блюд (0 - отмена):") - if name == "0": - return "1" - elif(add_func.is_cyr_or_dig(name.strip())==0): - name = input("Название должно состоять только из символов кириллицы. Повторите ввод!\ - Укажите название категории для вывода блюд (0 - отмена):") - if name == "0": - return "1" - flag, cath = CathTable().find_by_name(name) - print(flag) - if flag == 0: - print("Введено неверное название!") + x = int(input('Выберите номер интересуемой категории (0 - отмена): ')) + if(x==0): + return else: - self.cath_id = cath - # self.cath_obj = cath - break - print("Выбрана категория: " + name) - print("Блюда:") - print("№\tНазвание\tВремя приготовления\tКраткая инструкция\ - \n-------------------------------------------------------------------------------------") - lst = DishTable().all_by_cath_id(cath) - j = 1 - for i in lst: - print(str(j) + "\t" + i[2] + "\t\t" + str(i[1]) + "\t\t\t" + str(i[4])) - j += 1 - menu = texts.show_dish_in_cath_txt - print(menu) - return self.read_next_step() + self.cath_id = CathTable().find_by_name(self.cath_arr[x-1]) + self.cath_obj = self.cath_arr[x-1] + + print("Выбрана категория: " + self.cath_obj) + print("Блюда:") + print("№\tНазвание\tВремя приготовления\tКраткая инструкция\ + \n-------------------------------------------------------------------------------------") + lst = DishTable().all_by_cath_id(self.cath_id) + + for i in lst: + self.dish_arr.append([i[2], str(i[1]), str(i[4])]) + + for i in range(len(self.dish_arr)): + print(str(i+1) + "\t" + self.dish_arr[i][0] + "\t\t" + self.dish_arr[i][1] + "\t\t\t" + self.dish_arr[i][2]) + + menu = texts.show_dish_in_cath_txt + print(menu) + return self.read_next_step() def main_cycle(self): """Основной цикл программы, регулирующий порядок действий diff --git a/0.5_test/tables/__pycache__/cath_table.cpython-311.pyc b/0.5_test/tables/__pycache__/cath_table.cpython-311.pyc index 25e31db8fa7f42788386813723586934332849cb..6b9525707c1c358ddfa3a51e2cc5afd66ea02266 100644 GIT binary patch delta 360 zcmZn>?i1o$&dbZi00aj%n5TVV*~rJqD5d9O6%&%0n4A&g5gwD1m}C}Xpl2Fil3HA{ zS%cArWpWQACld?f#M4rfds$W4nNk>Q7#1*3W@J%PsR9~Q%Ur{p!c@ZuVy7^JNfr=U z#S4~Wn*5(tT$p(oBLl-~Acg=&h8m{H2bsktuV?0GW+~yF%*`exn8GRvlV=EK&}8$Q ze3(s_sfcOvCpLW*)*^18 cChKr2noBYQRbUbm*gt|qzhIFn;saU_0BXNe0{{R3 delta 523 zcmeAZY7ypJ&dbZi00iM#=4lgIH}Y{Z3aYwT#e}3LCTGNWgvaD0CYfzEWVB%sW&x^V z2I9|Nj0_CZ8B!Q)nI@hWn>>kCm7O_-sfJ+z^JGId;mNWr{F5D+Sru7oSW=j47^{Ff zQdqzwD~PP(WnidfsbOBg0#Yr`P{XneXxwTbh5$wepd2gAr21Oc8rBqsY>>SSMUp9O zwM;ckB|sx!poSGydkUi@Oo}0$DVTvY)tc;nMNB~bRs6xOKCaFo3X{9oRG3~ePTs(# zugzA(4V1dYl9!m9dW$73Co#Q90VKd)T$mGIoSJisxhS=ym<=eTFqxU%lzS17)xdCr zU!a3!vK@P}#RG1>2`XLI9o9F5MLJw=h)B#;nNd7bbB^W$$2mF|gw-$bs6W6aIC&$x xBcsmb&+NJ4JggcY7%+*+D&hmW699QCa=!oo diff --git a/0.5_test/tables/__pycache__/dish_table.cpython-311.pyc b/0.5_test/tables/__pycache__/dish_table.cpython-311.pyc index 3af5eecb0c682bc3ae31ddd8757462e978301e48..398b4eac11977bef65f9eb99141b52f775ad1322 100644 GIT binary patch delta 605 zcmexqHq(@MIWI340}wnbHcwkNkyp}63&@$ykiw9{n8Oglz{KFrkiyi$kiwkGxQv;B zVKop#KonC7OE7~b>q`(M$~LPF}%ujZt88J+l)Nqv+&R4#mxnSsR%c;bySc;WO*e3_FOE4{9nf#Gibn*mlewGQ0Mb?w^_-vI~mN5d| z2gDFi%T&XZ!kWzl;uSHaumv;Ztp*wruFg(SU0w+=NG98|%T2z;XUfPic?!QKH3iuOgJg1>S7fWlA4&D5#tdalarWaHrbic zoRNKVHKPtABiG~=OxG9%H`g;eF)@lwPUTSC{Ft?oiBW!YDhCe}qsHbUE-fZTgUNGw zW;1S>Y{?tMSU5?*L!j8FgdJ)tkji42Jb~AinY4c7&f5y$c!q1o{{}q+wDq;nOMUgd-m@FpN z$Od8*cTb)x=4K{-gU$+at zWEXxRBH^N4;uX8Zi~LrTH;9Q&78b8yyfV38e4PazLx75L8S>R=bA$vpBO}}76v=r4 unk={2Q<6#&lX6mvTtE)xlQLwCn(QDY#(jf 32)\ - or(add_func.is_cyr_or_dig(ins_name.strip())==0)or(DishTable().check_by_name(ins_name)): + or(DishTable().check_by_name(ins_name)): if(ins_name.strip() == ''): ins_name = input("Пустая строка. Повторите ввод! Укажите название удаляемого блюда (0 - отмена): ")