From 20d424f2d45973bb6f20ab4e670343b34faf5a19 Mon Sep 17 00:00:00 2001 From: Zakhar Izmaylov Date: Sun, 17 Nov 2024 15:26:03 +0300 Subject: [PATCH] Fix admin and create coupons --- handlers/admin/admin_coupons.py | 18 ++++++++++++------ handlers/admin/admin_panel.py | 3 ++- handlers/pay.py | 4 ++-- handlers/start.py | 4 ++-- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/handlers/admin/admin_coupons.py b/handlers/admin/admin_coupons.py index ecc661d5..6c786cd3 100644 --- a/handlers/admin/admin_coupons.py +++ b/handlers/admin/admin_coupons.py @@ -16,7 +16,7 @@ class AdminCouponsState(StatesGroup): router = Router() -@router.callback_query(F.data == "coupons_editor",IsAdminFilter()) +@router.callback_query(F.data == "coupons_editor", IsAdminFilter()) async def show_coupon_management_menu(callback_query: types.CallbackQuery): try: await callback_query.message.delete() @@ -39,7 +39,7 @@ async def show_coupon_management_menu(callback_query: types.CallbackQuery): await callback_query.answer() -@router.callback_query(F.data == "coupons",IsAdminFilter()) +@router.callback_query(F.data == "coupons", IsAdminFilter()) async def show_coupon_list(callback_query: types.CallbackQuery): try: try: @@ -100,7 +100,7 @@ async def show_coupon_list(callback_query: types.CallbackQuery): await callback_query.answer() -@router.callback_query(F.data.startswith("delete_coupon_"),IsAdminFilter()) +@router.callback_query(F.data.startswith("delete_coupon_"), IsAdminFilter()) async def handle_delete_coupon(callback_query: types.CallbackQuery): coupon_code = callback_query.data[len("delete_coupon_") :] @@ -128,24 +128,29 @@ async def handle_delete_coupon(callback_query: types.CallbackQuery): await callback_query.answer() -@router.callback_query(F.data == "create_coupon",IsAdminFilter()) +@router.callback_query(F.data == "create_coupon", IsAdminFilter()) async def handle_create_coupon(callback_query: types.CallbackQuery, state: FSMContext): try: await callback_query.message.delete() except Exception as e: logger.error(f"Ошибка при удалении сообщения: {e}") + builder = InlineKeyboardBuilder() + builder.row(InlineKeyboardButton(text="🔙 Назад", callback_data="coupons_editor")) + markup = builder.as_markup() + await callback_query.message.answer( "Введите данные для создания купона в формате:\n\n" "код сумма лимит\n\n" "Пример: 'COUPON1 50 5'\n\n", parse_mode="HTML", + reply_markup=markup, ) await state.set_state(AdminCouponsState.waiting_for_coupon_data) await callback_query.answer() -@router.message(AdminCouponsState.waiting_for_coupon_data,IsAdminFilter()) +@router.message(AdminCouponsState.waiting_for_coupon_data, IsAdminFilter()) async def process_coupon_data(message: types.Message, state: FSMContext): text = message.text.strip() @@ -203,6 +208,7 @@ async def process_coupon_data(message: types.Message, state: FSMContext): @router.callback_query(F.data == "back_to_coupons_menu") -async def back_to_coupons_menu(callback_query: types.CallbackQuery): +async def back_to_coupons_menu(callback_query: types.CallbackQuery, state: FSMContext): """Возвращаем пользователя в меню управления купонами""" + await state.clear() await show_coupon_management_menu(callback_query) diff --git a/handlers/admin/admin_panel.py b/handlers/admin/admin_panel.py index 1cfa9eab..414fdbd0 100644 --- a/handlers/admin/admin_panel.py +++ b/handlers/admin/admin_panel.py @@ -22,10 +22,11 @@ class UserEditorState(StatesGroup): waiting_for_tg_id = State() displaying_user_info = State() + @router.callback_query(F.data == "admin", IsAdminFilter()) async def handle_admin_callback_query(callback_query: CallbackQuery): await handle_admin_message(callback_query.message) - + @router.message(Command("admin"), F.data == "admin", IsAdminFilter()) async def handle_admin_message(message: types.Message): diff --git a/handlers/pay.py b/handlers/pay.py index c09cb66e..8f4c33d9 100644 --- a/handlers/pay.py +++ b/handlers/pay.py @@ -72,8 +72,8 @@ async def handle_pay(callback_query: CallbackQuery): @router.callback_query(F.data == "back_to_menu") -async def handle_back_to_menu(callback_query: CallbackQuery): +async def handle_back_to_menu(callback_query: CallbackQuery, admin: bool): await callback_query.message.delete() trial_status = await get_trial(callback_query.from_user.id) - await send_welcome_message(callback_query.from_user.id, trial_status) + await send_welcome_message(callback_query.from_user.id, trial_status, admin) await callback_query.answer() diff --git a/handlers/start.py b/handlers/start.py index 8f9ac132..beddb670 100644 --- a/handlers/start.py +++ b/handlers/start.py @@ -154,8 +154,8 @@ async def handle_about_vpn(callback_query: CallbackQuery): @router.callback_query(F.data == "back_to_menu") -async def handle_back_to_menu(callback_query: CallbackQuery): +async def handle_back_to_menu(callback_query: CallbackQuery, admin: bool): await callback_query.message.delete() trial_status = await get_trial(callback_query.from_user.id) - await send_welcome_message(callback_query.from_user.id, trial_status) + await send_welcome_message(callback_query.from_user.id, trial_status, admin) await callback_query.answer()