From fc3871fd8e3c0a5abbb21c0aab3a5e51e8ffa76d Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Fri, 5 Sep 2025 18:06:00 +0300 Subject: [PATCH] add hooks integration for coupons and gifts keyboard --- handlers/admin/coupons/coupons_handler.py | 2 +- handlers/admin/coupons/keyboard.py | 7 ++++++- handlers/admin/gifts/gifts_handler.py | 2 +- handlers/admin/gifts/keyboard.py | 7 ++++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/handlers/admin/coupons/coupons_handler.py b/handlers/admin/coupons/coupons_handler.py index 2c9aba64..b7addbe5 100644 --- a/handlers/admin/coupons/coupons_handler.py +++ b/handlers/admin/coupons/coupons_handler.py @@ -43,7 +43,7 @@ class AdminCouponsState(StatesGroup): IsAdminFilter(), ) async def handle_coupons(callback_query: CallbackQuery): - await callback_query.message.edit_text(text="🛠 Меню управления купонами:", reply_markup=build_coupons_kb()) + await callback_query.message.edit_text(text="🛠 Меню управления купонами:", reply_markup=await build_coupons_kb()) @router.callback_query( diff --git a/handlers/admin/coupons/keyboard.py b/handlers/admin/coupons/keyboard.py index dc6b9743..43ee646b 100644 --- a/handlers/admin/coupons/keyboard.py +++ b/handlers/admin/coupons/keyboard.py @@ -4,6 +4,8 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder from handlers.buttons import BACK from handlers.utils import format_days +from hooks.hooks import run_hooks +from hooks.hook_buttons import insert_hook_buttons from ..panel.keyboard import AdminPanelCallback, build_admin_back_btn @@ -13,7 +15,7 @@ class AdminCouponDeleteCallback(CallbackData, prefix="admin_coupon_delete"): confirm: bool | None = None -def build_coupons_kb() -> InlineKeyboardMarkup: +async def build_coupons_kb() -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.row( @@ -30,6 +32,9 @@ def build_coupons_kb() -> InlineKeyboardMarkup: ) builder.row(build_admin_back_btn()) + module_buttons = await run_hooks("admin_coupons_keyboard") + builder = insert_hook_buttons(builder, module_buttons) + return builder.as_markup() diff --git a/handlers/admin/gifts/gifts_handler.py b/handlers/admin/gifts/gifts_handler.py index ac33a940..cf22e272 100644 --- a/handlers/admin/gifts/gifts_handler.py +++ b/handlers/admin/gifts/gifts_handler.py @@ -27,7 +27,7 @@ class GiftCreationState(StatesGroup): @router.callback_query(AdminPanelCallback.filter(F.action == "gifts")) async def admin_gift_menu(callback: CallbackQuery): await callback.message.edit_text( - text="🎁 Подарки\nВыберите, что хотите сделать:", reply_markup=build_admin_gifts_kb() + text="🎁 Подарки\nВыберите, что хотите сделать:", reply_markup=await build_admin_gifts_kb() ) diff --git a/handlers/admin/gifts/keyboard.py b/handlers/admin/gifts/keyboard.py index ab95e6ce..b905c991 100644 --- a/handlers/admin/gifts/keyboard.py +++ b/handlers/admin/gifts/keyboard.py @@ -4,11 +4,13 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder from database.models import Gift, Tariff from handlers.buttons import BACK from handlers.utils import format_days, format_months +from hooks.hooks import run_hooks +from hooks.hook_buttons import insert_hook_buttons from ..panel.keyboard import AdminPanelCallback -def build_admin_gifts_kb() -> InlineKeyboardMarkup: +async def build_admin_gifts_kb() -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() builder.row(InlineKeyboardButton(text="🎁 Создать подарок", callback_data="admin_gift_create")) @@ -17,6 +19,9 @@ def build_admin_gifts_kb() -> InlineKeyboardMarkup: ) builder.row(InlineKeyboardButton(text=BACK, callback_data="admin")) + module_buttons = await run_hooks("admin_gifts_keyboard") + builder = insert_hook_buttons(builder, module_buttons) + return builder.as_markup()