mirror of
https://github.com/ada-dmitry/lab6.git
synced 2026-09-24 01:10:15 +00:00
done page_output, ready for test
This commit is contained in:
Binary file not shown.
+59
-71
@@ -25,11 +25,19 @@ TODO:
|
|||||||
|
|
||||||
|
|
||||||
1) detele category - done
|
1) detele category - done
|
||||||
|
2) update category - done
|
||||||
|
3) add category - done
|
||||||
|
|
||||||
FIXME:
|
FIXME:
|
||||||
1) Откомментировать os.cls
|
1) Откомментировать os.cls
|
||||||
2) Исправить вылет при неверном вводе в самое начало(сделать выход на предыдущую менюшку)
|
2) Исправить вылет при неверном вводе в самое начало(сделать выход на предыдущую менюшку)
|
||||||
3) При вводе текста пропуск сделать с помощью пустой строки.
|
3) При вводе текста пропуск сделать с помощью пустой строки.
|
||||||
|
|
||||||
|
TEST:
|
||||||
|
1) Удаление категории + ввод неизвестных символов и отмена
|
||||||
|
2) Обновление категории + ввод неизвестных символов и отмена
|
||||||
|
3) Добавление категории + ввод неизвестных символов и отмена
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
@@ -153,16 +161,11 @@ class Main:
|
|||||||
next_step = "5"
|
next_step = "5"
|
||||||
|
|
||||||
elif next_step == "7":#Удаление блюда из категории
|
elif next_step == "7":#Удаление блюда из категории
|
||||||
if(self.dish_page<(self.max_dish_index//10)):
|
left = 0
|
||||||
left = ((self.dish_page-1)*10)+(self.dish_page==1)
|
right = self.max_dish_index
|
||||||
right = left+9
|
|
||||||
|
|
||||||
else:
|
|
||||||
left = 1+((self.dish_page-1)*10)+(self.dish_page!=1)
|
|
||||||
right = self.mex_dish_index
|
|
||||||
x = add_func.validate_input('Введите номер удаляемого блюда (0 - для отмены): ', left, right)
|
x = add_func.validate_input('Введите номер удаляемого блюда (0 - для отмены): ', left, right)
|
||||||
if(x!=-1):
|
if(x!=-1):
|
||||||
DishTable().delete(self.dish_arr[(int(x)-1)-((self.dish_page-1)*10)][0])
|
DishTable().delete(DishTable().get_dish_from_page(x).get("id"))
|
||||||
else:
|
else:
|
||||||
return "1"
|
return "1"
|
||||||
next_step = "5"
|
next_step = "5"
|
||||||
@@ -171,29 +174,19 @@ class Main:
|
|||||||
next_step = self.show_dish_in_cath()
|
next_step = self.show_dish_in_cath()
|
||||||
|
|
||||||
elif next_step == "8": # Обновление названия категории
|
elif next_step == "8": # Обновление названия категории
|
||||||
if(self.cath_page<(self.max_cath_index//10)):
|
left = 0
|
||||||
left = 1+((self.cath_page-1)*10)
|
|
||||||
right = left+9
|
|
||||||
|
|
||||||
else:
|
|
||||||
left = 1+((self.cath_page-1)*10)
|
|
||||||
right = self.max_cath_index
|
right = self.max_cath_index
|
||||||
x = add_func.validate_input('Введите номер обновляемой категории (0 - для отмены): ', left, right)
|
x = add_func.validate_input('Введите номер обновляемой категории (0 - для отмены): ', left, right)
|
||||||
if(x!=-1):
|
if(x!=-1):
|
||||||
CathTable().cath_update(self.cath_arr[(int(x)-1)-((self.cath_page-1)*10)])
|
CathTable().cath_update(CathTable().get_cath_from_page(x).get("cath_name"))
|
||||||
return "1"
|
return "1"
|
||||||
|
|
||||||
elif next_step == "88":
|
elif next_step == "88": # Обновление блюда
|
||||||
if(self.dish_page<(self.mex_dish_index//10)):
|
left = 0
|
||||||
left = 1+((self.dish_page-1)*10)
|
right = self.max_dish_index
|
||||||
right = left+9
|
|
||||||
|
|
||||||
else:
|
|
||||||
left = 0+((self.dish_page-1)*10)
|
|
||||||
right = self.mex_dish_index
|
|
||||||
x = add_func.validate_input('Введите номер обновляемого блюда (0 - для отмены): ', left, right)
|
x = add_func.validate_input('Введите номер обновляемого блюда (0 - для отмены): ', left, right)
|
||||||
if(x!=-1):
|
if(x!=-1):
|
||||||
DishTable().update_dish(self.dish_arr[(int(x)-1)-((self.cath_page-1)*10)][0])
|
DishTable().update_dish(DishTable().get_dish_from_page(x))
|
||||||
else:
|
else:
|
||||||
return "1"
|
return "1"
|
||||||
|
|
||||||
@@ -208,51 +201,26 @@ class Main:
|
|||||||
"""
|
"""
|
||||||
Добавление новой категории в таблицу
|
Добавление новой категории в таблицу
|
||||||
"""
|
"""
|
||||||
data = []
|
data = input("Введите название (enter - отмена): ").strip()
|
||||||
data.append(input("Введите название (1 - отмена): ").strip())
|
while((len(data) == 0)or(len(data) > 32)or(CathTable().check_by_name(data))):
|
||||||
if data[0] == "1":
|
if (len(data) > 32):
|
||||||
return
|
data = input("Название слишком длинное! Введите название заново (enter - отмена): ").strip()
|
||||||
while((len(data[0].strip()) == 0)or(len(data[0].strip()) > 32)):
|
elif(CathTable().check_by_name(data)):
|
||||||
if (len(data[0].strip()) > 32):
|
data = input("Такое название уже существует! Введите название заново (enter - отмена): ").strip()
|
||||||
data[0] = input("Название слишком длинное! Введите название заново (1 - отмена):").strip()
|
|
||||||
if data[0] == "1":
|
|
||||||
return
|
|
||||||
else:
|
else:
|
||||||
data[0] = input("Название не может быть пустым! Введите название заново (1 - отмена):").strip()
|
|
||||||
if data[0] == "1":
|
|
||||||
return
|
return
|
||||||
CathTable().insert_one(data)
|
CathTable().insert_one(data)
|
||||||
return
|
return
|
||||||
|
|
||||||
def show_dish_in_cath(self):
|
def show_dish_page(self):
|
||||||
"""Вывод всех блюд в выбранной пользователем категории
|
|
||||||
"""
|
|
||||||
|
|
||||||
if self.cath_id == -1:
|
|
||||||
while True:
|
|
||||||
if(self.cath_page<(self.max_cath_index//10)):
|
|
||||||
left = 1+((self.cath_page-1)*10)
|
|
||||||
right = left+9
|
|
||||||
|
|
||||||
else:
|
|
||||||
left = 1+((self.cath_page-1)*10)+(self.cath_page!=1)
|
|
||||||
right = self.max_cath_index
|
|
||||||
x = add_func.validate_input('Выберите номер интересуемой категории (0 - отмена): ', left, right)
|
|
||||||
add_func.cls()
|
|
||||||
if(x!=-1):
|
|
||||||
self.cath_id = CathTable().find_by_name(self.cath_arr[(int(x)-1)-((self.cath_page-1)*10)])
|
|
||||||
self.cath_obj = self.cath_arr[(int(x)-1)-((self.cath_page-1)*10)]
|
|
||||||
else:
|
|
||||||
return "1"
|
|
||||||
print("Выбрана категория: " + self.cath_obj)
|
|
||||||
print("Блюда:")
|
print("Блюда:")
|
||||||
self.dish_page = 1
|
dish_page = 1
|
||||||
lst = DishTable().get_page_dish(self.cath_id, self.dish_page)
|
lst = DishTable().get_dish_page(self.cath_id, dish_page)
|
||||||
self.max_len_name = 0
|
self.max_len_name = 0
|
||||||
self.mex_dish_index = len(DishTable().all_by_cath_id(self.cath_id))
|
self.max_dish_index = DishTable().count(self.cath_id)
|
||||||
action = '>'
|
action = '>'
|
||||||
max_page = math.ceil(self.mex_dish_index/10)
|
max_page = math.ceil(self.max_dish_index/10)
|
||||||
lst = DishTable().get_page_dish(self.cath_id, self.dish_page)
|
lst = DishTable().get_dish_page(self.cath_id, dish_page)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
self.dish_arr = []
|
self.dish_arr = []
|
||||||
@@ -261,12 +229,13 @@ class Main:
|
|||||||
self.dish_arr.append([i[2], str(i[1]), str(i[4])])
|
self.dish_arr.append([i[2], str(i[1]), str(i[4])])
|
||||||
self.max_len_name = max(self.max_len_name, len(i[2]))
|
self.max_len_name = max(self.max_len_name, len(i[2]))
|
||||||
add_func.cls()
|
add_func.cls()
|
||||||
print("№" + " "*(len(str(self.mex_dish_index)) + 1)+ "Название" + " "*(self.max_len_name - 4)\
|
print("№" + " "*(len(str(self.max_dish_index)) + 1)+ "Название" + " "*(self.max_len_name - 4)\
|
||||||
+"Время приготовления Краткая инструкция\
|
+"Время приготовления Краткая инструкция\
|
||||||
\n-------------------------------------------------------------------------------------------")
|
\n-------------------------------------------------------------------------------------------")
|
||||||
|
|
||||||
for i in range(len(self.dish_arr)):
|
for i in range(len(self.dish_arr)):
|
||||||
txt = add_func.add_zero_before(str((i+1)+(10*(self.dish_page-1))), len(str(self.mex_dish_index))) + " "*(2+len(str(self.mex_dish_index)))
|
txt = add_func.add_zero_before(str((i+1)+(10*(dish_page-1))), \
|
||||||
|
len(str(self.max_dish_index))) + " "*(2+len(str(self.max_dish_index)))
|
||||||
txt += self.dish_arr[i][0] + " "*(4+self.max_len_name - len(self.dish_arr[i][0]))
|
txt += self.dish_arr[i][0] + " "*(4+self.max_len_name - len(self.dish_arr[i][0]))
|
||||||
txt += self.dish_arr[i][1] + " "*(5+19-len(self.dish_arr[i][1]))
|
txt += self.dish_arr[i][1] + " "*(5+19-len(self.dish_arr[i][1]))
|
||||||
txt += self.dish_arr[i][2]
|
txt += self.dish_arr[i][2]
|
||||||
@@ -275,20 +244,39 @@ class Main:
|
|||||||
Для переключения между страницами используйте "<" и ">"\nКол-во записей на странице: 10\n\
|
Для переключения между страницами используйте "<" и ">"\nКол-во записей на странице: 10\n\
|
||||||
Для выхода в меню действий нажмите любую другую клавишу\n=> ')
|
Для выхода в меню действий нажмите любую другую клавишу\n=> ')
|
||||||
if(action=='>'):
|
if(action=='>'):
|
||||||
if(self.dish_page==max_page):
|
if(dish_page==max_page):
|
||||||
self.dish_page = 1
|
dish_page = 1
|
||||||
else:
|
else:
|
||||||
self.dish_page += 1
|
dish_page += 1
|
||||||
lst = DishTable().get_page_dish(self.cath_id, self.dish_page)
|
lst = DishTable().get_dish_page(self.cath_id, dish_page)
|
||||||
elif(action=='<'):
|
elif(action=='<'):
|
||||||
if(self.dish_page==1):
|
if(dish_page==1):
|
||||||
self.dish_page = max_page
|
dish_page = max_page
|
||||||
else:
|
else:
|
||||||
self.dish_page -= 1
|
dish_page -= 1
|
||||||
lst = DishTable().get_page_dish(self.cath_id, self.dish_page)
|
lst = DishTable().get_dish_page(self.cath_id, dish_page)
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
|
||||||
|
def show_dish_in_cath(self):
|
||||||
|
"""Вывод всех блюд в выбранной пользователем категории
|
||||||
|
"""
|
||||||
|
if self.cath_id == -1:
|
||||||
|
while True:
|
||||||
|
left = 0
|
||||||
|
right = self.max_cath_index
|
||||||
|
x = add_func.validate_input('Выберите номер интересуемой категории (0 - отмена): ', left, right)
|
||||||
|
add_func.cls()
|
||||||
|
if(x!=-1):
|
||||||
|
self.cath = CathTable().get_cath_from_page(x)
|
||||||
|
self.cath_obj = self.cath.get("cath_name")
|
||||||
|
self.cath_id = self.cath.get("id")
|
||||||
|
else:
|
||||||
|
return "1"
|
||||||
|
self.show_dish_page()
|
||||||
|
print(f"Выбрана категория: {self.cath_obj}")
|
||||||
|
|
||||||
|
|
||||||
menu = """-------------------------------------------------------------------------------------------\nДальнейшие операции:
|
menu = """-------------------------------------------------------------------------------------------\nДальнейшие операции:
|
||||||
0 - возврат в главное меню;
|
0 - возврат в главное меню;
|
||||||
1 - возврат в просмотр категорий;
|
1 - возврат в просмотр категорий;
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -37,20 +37,14 @@ class CathTable(DbTable):
|
|||||||
print(f'''Выбрана категория для изменения: {old}''')
|
print(f'''Выбрана категория для изменения: {old}''')
|
||||||
cur = self.dbconn.conn.cursor()
|
cur = self.dbconn.conn.cursor()
|
||||||
|
|
||||||
data = input("Введите название (1 - отмена): ").strip()
|
data = input("Введите название (enter - отмена): ").strip()
|
||||||
if data == "1":
|
|
||||||
return
|
|
||||||
while((len(data.strip()) == 0)or(len(data.strip()) > 32)or(self.check_by_name(data.strip()))):
|
while((len(data.strip()) == 0)or(len(data.strip()) > 32)or(self.check_by_name(data.strip()))):
|
||||||
if (len(data.strip()) > 32):
|
if (len(data.strip()) > 32):
|
||||||
data = input("Название слишком длинное! Введите название заново (1 - отмена):").strip()
|
data = input("Название слишком длинное! Введите название заново (enter - отмена):").strip()
|
||||||
if data == "1":
|
elif(self.check_by_name(data.strip()) == 1):
|
||||||
return
|
data = input("Такое название уже существует. Введите новое (enter - отмена):").strip()
|
||||||
elif len(data.strip()) == 0:
|
|
||||||
data = input("Название не может быть пустым! Введите название заново (1 - отмена):").strip()
|
|
||||||
if data == "1":
|
|
||||||
return
|
|
||||||
else:
|
else:
|
||||||
data = input("Такое название уже существует. Введите новое (1 - отмена):").strip()
|
return "1"
|
||||||
|
|
||||||
param_sql = f"UPDATE cath SET cath_name = '{data}' WHERE cath_name = '{old}';"
|
param_sql = f"UPDATE cath SET cath_name = '{data}' WHERE cath_name = '{old}';"
|
||||||
cur.execute(param_sql)
|
cur.execute(param_sql)
|
||||||
@@ -80,7 +74,7 @@ class CathTable(DbTable):
|
|||||||
final_list = []
|
final_list = []
|
||||||
cur = self.dbconn.conn.cursor()
|
cur = self.dbconn.conn.cursor()
|
||||||
offset = (page_num - 1) * ROW_PER_PAGE
|
offset = (page_num - 1) * ROW_PER_PAGE
|
||||||
sql = (f"SELECT * FROM cath LIMIT {ROW_PER_PAGE} OFFSET {offset}")
|
sql = (f"SELECT * FROM {self.table_name()} LIMIT {ROW_PER_PAGE} OFFSET {offset}")
|
||||||
cur.execute(sql)
|
cur.execute(sql)
|
||||||
zero_list = cur.fetchall()
|
zero_list = cur.fetchall()
|
||||||
for i in range(len(zero_list)):
|
for i in range(len(zero_list)):
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
from dbtable import *
|
from dbtable import *
|
||||||
import add_func
|
import add_func
|
||||||
|
import math
|
||||||
|
|
||||||
|
ROW_PER_PAGE = 10
|
||||||
|
|
||||||
class DishTable(DbTable):
|
class DishTable(DbTable):
|
||||||
def table_name(self):
|
def table_name(self):
|
||||||
@@ -17,8 +20,6 @@ class DishTable(DbTable):
|
|||||||
def table_constraints(self):
|
def table_constraints(self):
|
||||||
return ['CONSTRAINT "Name Dish" UNIQUE (dish_name)']
|
return ['CONSTRAINT "Name Dish" UNIQUE (dish_name)']
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def find_by_position(self, num):
|
def find_by_position(self, num):
|
||||||
sql = "SELECT * FROM " + self.table_name()
|
sql = "SELECT * FROM " + self.table_name()
|
||||||
sql += " ORDER BY "
|
sql += " ORDER BY "
|
||||||
@@ -37,23 +38,68 @@ class DishTable(DbTable):
|
|||||||
cur.execute(sql)
|
cur.execute(sql)
|
||||||
return cur.fetchall()
|
return cur.fetchall()
|
||||||
|
|
||||||
def get_page_dish(self, cath_id, page_num):
|
# def get_page_dish(self, cath_id, page_num):
|
||||||
row_per_page = 10
|
# offset = (page_num - 1) * ROW_PER_PAGE
|
||||||
offset = (page_num - 1) * row_per_page
|
# sql = f"""SELECT * FROM dish WHERE cath_id = {str(cath_id)}\
|
||||||
sql = f"""SELECT * FROM dish WHERE cath_id = {str(cath_id)}\
|
# ORDER BY {", ".join(self.primary_key())} LIMIT {ROW_PER_PAGE} OFFSET {offset}"""
|
||||||
ORDER BY {", ".join(self.primary_key())} LIMIT {row_per_page} OFFSET {offset}"""
|
# cur = self.dbconn.conn.cursor()
|
||||||
cur = self.dbconn.conn.cursor()
|
# cur.execute(sql)
|
||||||
cur.execute(sql)
|
# return cur.fetchall()
|
||||||
return cur.fetchall()
|
|
||||||
|
|
||||||
def delete(self, val):
|
def delete(self, id):
|
||||||
sql = "DELETE FROM dish"
|
sql = f"""DELETE FROM {self.table_name()} WHERE id = {id};"""
|
||||||
sql += " WHERE dish_name"
|
|
||||||
sql += "=" + "'" + val + "';"
|
|
||||||
cur = self.dbconn.conn.cursor()
|
cur = self.dbconn.conn.cursor()
|
||||||
cur.execute(sql)
|
cur.execute(sql)
|
||||||
self.dbconn.conn.commit()
|
self.dbconn.conn.commit()
|
||||||
|
|
||||||
|
def count(self, id):
|
||||||
|
sql = f"""SELECT COUNT(*) FROM {self.table_name()} WHERE cath_id = {id};"""
|
||||||
|
cur = self.dbconn.conn.cursor()
|
||||||
|
cur.execute(sql)
|
||||||
|
return int(cur.fetchone()[0])
|
||||||
|
|
||||||
|
def get_dish_from_page(self, row_num):
|
||||||
|
arr = self.get_dish_page(math.ceil(row_num/ROW_PER_PAGE), self.cath)
|
||||||
|
row = dict()
|
||||||
|
for i in arr:
|
||||||
|
if(int(i[0]) == row_num):
|
||||||
|
row["id"] = i[1]
|
||||||
|
row["dish_name"] = str(i[2])
|
||||||
|
row["cath_id"] = i[3]
|
||||||
|
row["cook_time"] = str(i[4])
|
||||||
|
row["manual"] = str(i[5])
|
||||||
|
return row
|
||||||
|
|
||||||
|
def get_dish_page(self, cath_id, page_num):
|
||||||
|
"""Функция для получения "страницы" из БД по её номеру.
|
||||||
|
В программе заменяет .all() для вывода информации.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
page_num (int): номер страницы, определяется пользователем.
|
||||||
|
cath_id (int): id категории, из которой необходимо получить блюда
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
lst (list): Список, содержащий в себе все строки для этой страницы.
|
||||||
|
|
||||||
|
0 - number
|
||||||
|
1 - id
|
||||||
|
2 - name
|
||||||
|
3 - cath_id
|
||||||
|
4 - cook_time
|
||||||
|
5 - manual
|
||||||
|
"""
|
||||||
|
final_list = []
|
||||||
|
cur = self.dbconn.conn.cursor()
|
||||||
|
offset = (page_num - 1) * ROW_PER_PAGE
|
||||||
|
sql = (f"SELECT * FROM {self.table_name()} WHERE cath_id = {cath_id} LIMIT {ROW_PER_PAGE} OFFSET {offset}")
|
||||||
|
cur.execute(sql)
|
||||||
|
zero_list = cur.fetchall()
|
||||||
|
for i in range(len(zero_list)):
|
||||||
|
final_list.append([str(i+1+(ROW_PER_PAGE*(page_num-1))), zero_list[i][3],\
|
||||||
|
str(zero_list[i][2]), zero_list[i][0], str(zero_list[i][1]), str(zero_list[i][4])])
|
||||||
|
return final_list
|
||||||
|
|
||||||
|
|
||||||
def check_by_name(self, value):
|
def check_by_name(self, value):
|
||||||
sql = f"SELECT * FROM {self.table_name()} WHERE dish_name='{value}'"
|
sql = f"SELECT * FROM {self.table_name()} WHERE dish_name='{value}'"
|
||||||
cur = self.dbconn.conn.cursor()
|
cur = self.dbconn.conn.cursor()
|
||||||
@@ -83,99 +129,84 @@ class DishTable(DbTable):
|
|||||||
|
|
||||||
def insert_dishone(self, cath_id):
|
def insert_dishone(self, cath_id):
|
||||||
|
|
||||||
ins_name = input('Введите название добавляемого блюда (1 - для отмены): ')
|
ins_name = input('Введите название добавляемого блюда (1 - для отмены): ').strip()
|
||||||
|
|
||||||
while (ins_name.strip() == '')or(len(ins_name.strip()) > 32)\
|
while (ins_name == '')or(len(ins_name) > 32)\
|
||||||
or(DishTable().check_by_name(ins_name)):
|
or(DishTable().check_by_name(ins_name)):
|
||||||
|
|
||||||
if(ins_name.strip() == ''):
|
if(len(ins_name) > 32):
|
||||||
ins_name = input("\nПустая строка. Повторите ввод! Укажите название удаляемого блюда (0 - отмена): ")
|
|
||||||
if ins_name == "0":
|
|
||||||
return "1"
|
|
||||||
|
|
||||||
elif(len(ins_name.strip()) > 32):
|
|
||||||
ins_name = input("\nСлишком длинная строка. Повторите ввод!\
|
ins_name = input("\nСлишком длинная строка. Повторите ввод!\
|
||||||
Укажите название удаляемого блюда (0 - отмена): ")
|
Укажите название добавляемого блюда (enter - отмена): ").strip()
|
||||||
if ins_name == "0":
|
if ins_name == "":
|
||||||
return "1"
|
return "1"
|
||||||
else:
|
else:
|
||||||
print('\nТакое блюдо уже существует')
|
print('\nТакое блюдо уже существует')
|
||||||
ins_name = input("Повторите ввод! Укажите название блюда (0 - отмена): ")
|
ins_name = input("Повторите ввод! Укажите название блюда (enter - отмена): ").strip()
|
||||||
if ins_name == "0":
|
if ins_name == "":
|
||||||
return "1"
|
return "1"
|
||||||
|
|
||||||
ins_time = input(f'\nПроцесс добавления блюда: {ins_name}\
|
ins_time = input(f'\nПроцесс добавления блюда: {ins_name}\
|
||||||
\nВведите время приготовления в формате 10 minutes/1 hour 5 minutes (1 - для отмены): ')
|
\nВведите время приготовления в формате 10 minutes/1 hour 5 minutes (enter - для отмены): ').strip()
|
||||||
while(ins_time==0)or(add_func.validate_time_format(ins_time)==False):
|
if(ins_time==''):
|
||||||
if ins_time == "0":
|
|
||||||
return "1"
|
return "1"
|
||||||
else:
|
while(add_func.validate_time_format(ins_time)==False):
|
||||||
ins_time = input('Время введено в неверном формате. Повторите попытку.\n\
|
ins_time = input('Время введено в неверном формате. Повторите попытку.\n\
|
||||||
Введите время приготовления в формате 10 minutes/1 hour 5 minutes (1 - для отмены): ')
|
Введите время приготовления в формате 10 minutes/1 hour 5 minutes (enter - для отмены): ').strip()
|
||||||
|
if(ins_time==''):
|
||||||
|
return "1"
|
||||||
|
|
||||||
ins_manual = input(f'\nПроцесс добавления блюда: {ins_name}\
|
ins_manual = input(f'\nПроцесс добавления блюда: {ins_name}\
|
||||||
\nВведите краткую инструкцию приготовления блюда (1 - для отмены): ')
|
\nВведите краткую инструкцию приготовления блюда (enter - для отмены): ').strip()
|
||||||
if ins_manual == "0":
|
if ins_manual == "":
|
||||||
return "1"
|
return "1"
|
||||||
|
|
||||||
insert = [cath_id, ins_time, ins_name, ins_manual]
|
insert = [cath_id, ins_time, ins_name, ins_manual]
|
||||||
|
|
||||||
self.insert_one(insert)
|
self.insert_one(insert)
|
||||||
|
|
||||||
def update_dish(self, dish):
|
def update_dish(self, obj: dict):
|
||||||
print('После изменения выберите другой пункт для изменения или введите 0 для выхода')
|
print('После изменения выберите другой пункт для изменения или введите 0 для выхода')
|
||||||
n = dish
|
|
||||||
x = -10000
|
x = -10000
|
||||||
obj_id = self.id_by_name(dish)[1]
|
dish_id = obj.get("id")
|
||||||
|
dish_name = obj.get("dish_name")
|
||||||
|
tmp = dish_name
|
||||||
while True:
|
while True:
|
||||||
x = add_func.validate_input(f'\nВыбранное блюдо: {n}\nЧто вы хотите изменить в рецепте?\n\
|
x = add_func.validate_input(f'\nВыбранное блюдо: {tmp}\nЧто вы хотите изменить в рецепте?\n\
|
||||||
1 - Название\n2 - Время приготовления\n3 - Инструкция\n0 - для отмены\n=> ', 0, 3)
|
1 - Название\n2 - Время приготовления\n3 - Инструкция\n0 - для отмены\n=> ', 0, 3)
|
||||||
|
|
||||||
if(x==1):
|
if(x==1):
|
||||||
new_name = input(f"Текущее название {n}.\nВведите новое название (0 - для отмены): ")
|
new_name = input(f"Текущее название {tmp}.\nВведите новое название (enter - для отмены): ")
|
||||||
while (new_name.strip() == '')or(len(new_name.strip()) > 32)\
|
while (new_name.strip() == '')or(len(new_name.strip()) > 32)\
|
||||||
or(DishTable().check_by_name(new_name))or(x=='0'):
|
or(DishTable().check_by_name(new_name)):
|
||||||
|
if(DishTable().check_by_name(new_name)):
|
||||||
if(new_name.strip() == ''):
|
|
||||||
new_name = input("Пустая строка. Повторите ввод! Укажите название блюда (0 - отмена): ")
|
|
||||||
if new_name == "0":
|
|
||||||
break
|
|
||||||
|
|
||||||
elif(DishTable().check_by_name(new_name)):
|
|
||||||
print('Такое блюдо уже существует')
|
print('Такое блюдо уже существует')
|
||||||
new_name = input("Повторите ввод! Укажите название блюда (0 - отмена): ")
|
new_name = input("Повторите ввод! Укажите название блюда (enter - отмена): ")
|
||||||
if new_name == "0":
|
|
||||||
break
|
|
||||||
|
|
||||||
elif(len(new_name.strip()) > 32):
|
elif(len(new_name.strip()) > 32):
|
||||||
new_name = input("Слишком длинная строка. Повторите ввод!\
|
new_name = input("Слишком длинная строка. Повторите ввод!\
|
||||||
Укажите название блюда (0 - отмена): ")
|
Укажите название блюда (enter - отмена): ")
|
||||||
if new_name == "0":
|
|
||||||
break
|
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
|
||||||
# dish = new_name
|
tmp = new_name
|
||||||
n = new_name
|
|
||||||
new_name = "'" + new_name + "'"
|
new_name = "'" + new_name + "'"
|
||||||
self.update('dish_name', new_name, obj_id)
|
self.update('dish_name', new_name, dish_id)
|
||||||
|
|
||||||
elif(x==2):
|
elif(x==2):
|
||||||
new_time = input(f'Введите время приготовления в формате 10 minutes/1 hour 5 minutes (0 - для отмены): ')
|
new_time = input(f'Введите время приготовления в формате 10 minutes/1 hour 5 minutes (enter - для отмены): ')
|
||||||
while(new_time==0)or(add_func.validate_time_format(new_time)==False):
|
while(new_time=='')or(add_func.validate_time_format(new_time)==False):
|
||||||
if new_time == "0":
|
if new_time == '':
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
new_time = input('Введите время приготовления в формате 10 minutes/1 hour 5 minutes (0 - для отмены): ')
|
new_time = input('Введите время приготовления в формате 10 minutes/1 hour 5 minutes\
|
||||||
|
(enter - для отмены): ')
|
||||||
new_time = "'" + new_time + "'"
|
new_time = "'" + new_time + "'"
|
||||||
self.update('cook_time', new_time, obj_id)
|
self.update('cook_time', new_time, dish_id)
|
||||||
|
|
||||||
elif(x==3):
|
elif(x==3):
|
||||||
new_manual = input(f'Введите краткую инструкцию приготовления блюда (0 - для отмены): ')
|
new_manual = input(f'Введите краткую инструкцию приготовления блюда (enter - для отмены): ')
|
||||||
if new_manual == "0":
|
if new_manual == "":
|
||||||
break
|
break
|
||||||
new_manual = "'" + new_manual + "'"
|
new_manual = "'" + new_manual + "'"
|
||||||
self.update('manual', new_manual, obj_id)
|
self.update('manual', new_manual, dish_id)
|
||||||
|
|
||||||
elif(x==-1):
|
elif(x==-1):
|
||||||
break
|
break
|
||||||
@@ -275,3 +306,4 @@ class DishTable(DbTable):
|
|||||||
self.insert_one([1, "30 minutes", "Яичница с авокадо", "Яичница с добавлением авокадо и других ингредиентов."])
|
self.insert_one([1, "30 minutes", "Яичница с авокадо", "Яичница с добавлением авокадо и других ингредиентов."])
|
||||||
self.insert_one([1, "55 minutes", "Веганский пад-тай", "Пад-тай с использованием растительных ингредиентов."])
|
self.insert_one([1, "55 minutes", "Веганский пад-тай", "Пад-тай с использованием растительных ингредиентов."])
|
||||||
return
|
return
|
||||||
|
|
||||||
Reference in New Issue
Block a user