diff --git a/handlers/admin/admin_users.py b/handlers/admin/admin_users.py index ad25db21..3667a312 100644 --- a/handlers/admin/admin_users.py +++ b/handlers/admin/admin_users.py @@ -121,13 +121,22 @@ async def handle_key_name_input( state: FSMContext, session: Any ): + kb = build_admin_back_kb() + + if not message.text: + await message.reply( + text="🚫 Пожалуйста, отправьте текстовое сообщение.", + reply_markup=kb + ) + return + key_name = sanitize_key_name(message.text) key_details = await get_key_details(key_name, session) if not key_details: await message.edit_text( text="🚫 Пользователь с указанным именем ключа не найден.", - reply_markup=build_admin_back_kb() + reply_markup=kb ) return diff --git a/keyboards/admin/users_kb.py b/keyboards/admin/users_kb.py index 22c080e1..66f958f6 100644 --- a/keyboards/admin/users_kb.py +++ b/keyboards/admin/users_kb.py @@ -32,6 +32,14 @@ def build_user_edit_kb(tg_id: int, key_records: list) -> InlineKeyboardMarkup: tg_id=tg_id ).pack() ) + builder.button( + text="✉️ Сообщение", + callback_data=AdminUserEditorCallback( + action="users_send_message", + tg_id=tg_id + ).pack() + ) + builder.button( text="🔄 Восстановить триал", callback_data=AdminUserEditorCallback( @@ -46,6 +54,9 @@ def build_user_edit_kb(tg_id: int, key_records: list) -> InlineKeyboardMarkup: tg_id=tg_id ).pack() ) + builder.row( + build_editor_btn("🔄 Обновить", tg_id, edit=True) + ) builder.row( build_admin_back_btn() ) diff --git a/middlewares/delete.py b/middlewares/delete.py index 570eb0aa..52d4d7ae 100644 --- a/middlewares/delete.py +++ b/middlewares/delete.py @@ -19,10 +19,10 @@ pass_callbacks = [ ] pass_states = [ - 'UserEditorState', - 'AdminServersEditor', - 'AdminSender', - 'AdminCouponsState' + "UserEditorState", + "AdminServersEditor", + "AdminSender", + "AdminCouponsState" ]