another commit

This commit is contained in:
2023-06-08 21:29:12 +03:00
parent e315648bc5
commit 460bb84b76
3 changed files with 38 additions and 5 deletions

View File

@ -38,7 +38,7 @@ class States(StatesGroup):
def get_queue_stats_text(queue: Queue) -> str: def get_queue_stats_text(queue: Queue) -> str:
s = f"Название: {queue.name}" f"Количество участников: {len(queue.users)}" s = textbook.queue_stats.format(name=queue.name, count=len(queue.users))
return s return s
@ -127,6 +127,7 @@ async def queue_handler(call: types.CallbackQuery, queue_id: str = None):
message_id=call.message.id, message_id=call.message.id,
text=get_queue_stats_text(queue), text=get_queue_stats_text(queue),
reply_markup=keyboards.queue_menu(), reply_markup=keyboards.queue_menu(),
parse_mode="html",
) )
await bot.answer_callback_query(callback_query_id=call.id) await bot.answer_callback_query(callback_query_id=call.id)
@ -156,6 +157,7 @@ async def edit_queue_name_handler(call: types.CallbackQuery):
reply_markup=keyboards.edit_name(), reply_markup=keyboards.edit_name(),
) )
@bot.callback_query_handler(func=lambda c: c.data == "cancel", state=States.changing_queue_name) @bot.callback_query_handler(func=lambda c: c.data == "cancel", state=States.changing_queue_name)
async def edit_queue_name_cancel_handler(call: types.CallbackQuery): async def edit_queue_name_cancel_handler(call: types.CallbackQuery):
async with bot.retrieve_data( async with bot.retrieve_data(
@ -165,6 +167,38 @@ async def edit_queue_name_cancel_handler(call: types.CallbackQuery):
await queue_handler(call, queue_id) await queue_handler(call, queue_id)
@bot.message_handler(content_types=["text"], state=States.changing_queue_name)
async def update_queue_name(msg: Message):
if len(msg.text) > 40 or "\n" in msg.text:
await bot.send_message(
chat_id=msg.chat.id, text=textbook.edit_name_error
)
return None
async with bot.retrieve_data(
user_id=msg.from_user.id, chat_id=msg.chat.id
) as state_data:
queue_id = state_data.get("queue_id", None)
queue = session.query(Queue).filter_by(id=queue_id).first()
if not queue:
await bot.send_message(
chat_id=msg.chat.id, text=textbook.edit_name_error
)
return None
setattr(queue, "name", msg.text)
session.commit()
await bot.send_message(
chat_id=msg.chat.id, text=textbook.edit_queue_name_success
)
await asyncio.sleep(1)
await bot.set_state(user_id=msg.from_user.id, state=States.default)
await bot.send_message(
chat_id=msg.chat.id,
text=get_queue_stats_text(queue),
reply_markup=keyboards.queue_menu(),
parse_mode="html",
)
@bot.callback_query_handler(func=lambda c: c.data == "settings") @bot.callback_query_handler(func=lambda c: c.data == "settings")
async def settings(call: types.CallbackQuery): async def settings(call: types.CallbackQuery):
await bot.set_state(user_id=call.from_user.id, state=States.default) await bot.set_state(user_id=call.from_user.id, state=States.default)
@ -176,9 +210,6 @@ async def settings(call: types.CallbackQuery):
) )
@bot.callback_query_handler(func=lambda c: c.data == "edit_name") @bot.callback_query_handler(func=lambda c: c.data == "edit_name")
async def edit_name_handler(call: types.CallbackQuery): async def edit_name_handler(call: types.CallbackQuery):
await bot.set_state(user_id=call.from_user.id, state=States.changing_name) await bot.set_state(user_id=call.from_user.id, state=States.changing_name)

View File

@ -43,6 +43,6 @@ def settings() -> keyboard:
def edit_name() -> keyboard: def edit_name() -> keyboard:
return keyboard( return keyboard(
keyboard=[ keyboard=[
[button(text="❌ Отмена", callback_data="settings")], [button(text="❌ Отмена", callback_data="cancel")],
] ]
) )

View File

@ -6,10 +6,12 @@ new_queue_created = (
) )
queue_limit = "Ты достиг лимита очередей (4). Удали свои очереди, или воспользуйся другим аккаунтом!" queue_limit = "Ты достиг лимита очередей (4). Удали свои очереди, или воспользуйся другим аккаунтом!"
my_queues_list = "У тебя {count} очередь/и/ей" my_queues_list = "У тебя {count} очередь/и/ей"
queue_stats = "Название: <b>{name}</b>\nКоличество участников: <b>{count}</b>"
error = "Произошла непредвиденная ошибка!" error = "Произошла непредвиденная ошибка!"
queue_operational_error = "Произошла ошибка! Либо вы не являетесь владельцем очереди, либо данные устарели и вам следует заново выбрать очередь в меню!" queue_operational_error = "Произошла ошибка! Либо вы не являетесь владельцем очереди, либо данные устарели и вам следует заново выбрать очередь в меню!"
edit_queue_name = "Введи новое имя очереди, имя должно быть не длинее 40 символов и не должно содержать переносов строки" edit_queue_name = "Введи новое имя очереди, имя должно быть не длинее 40 символов и не должно содержать переносов строки"
settings = "🛠 Меню настроек" settings = "🛠 Меню настроек"
edit_name = "Ты можешь поменять свое имя, которое будет отображаться в очередях. По умолчанию используется твое имя в Телеграме. Имя должно быть не длинее 40 символов и не иметь переносов строки. Пришли мне новое имя, или нажми кнопку \"❌ Отмена\"" edit_name = "Ты можешь поменять свое имя, которое будет отображаться в очередях. По умолчанию используется твое имя в Телеграме. Имя должно быть не длинее 40 символов и не иметь переносов строки. Пришли мне новое имя, или нажми кнопку \"❌ Отмена\""
edit_name_success = "Имя изменено!" edit_name_success = "Имя изменено!"
edit_queue_name_success = "Имя очереди изменено!"
edit_name_error = "Новое имя не подходит под условия. Напиши подходящее, или нажми кнопку \"❌ Отмена\"" edit_name_error = "Новое имя не подходит под условия. Напиши подходящее, или нажми кнопку \"❌ Отмена\""