From 9a6ff6f636ef049548d35141ba3f0b8002cd4fd9 Mon Sep 17 00:00:00 2001 From: machka-pasla Date: Fri, 5 Sep 2025 15:17:01 +0300 Subject: [PATCH] Refactor pagination logic in admin ads list keyboard - Updated the pagination row to only display when multiple pages are available, improving the user interface for ad navigation. - Enhanced the inline keyboard structure for better clarity and usability in the admin panel's ads management section. --- bot/keyboards/inline/admin_keyboards.py | 39 +++++++++++++------------ 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/bot/keyboards/inline/admin_keyboards.py b/bot/keyboards/inline/admin_keyboards.py index f9c4f21..644cfa6 100644 --- a/bot/keyboards/inline/admin_keyboards.py +++ b/bot/keyboards/inline/admin_keyboards.py @@ -148,30 +148,31 @@ def get_ads_list_keyboard( callback_data=f"admin_ads:card:{c.ad_campaign_id}:{current_page}", ) - # Pagination row - row = [] - if current_page > 0: + # Pagination row (only when needed) + if total_pages > 1: + row = [] + if current_page > 0: + row.append( + InlineKeyboardButton( + text="⬅️ " + _("prev_page_button", default="Prev"), + callback_data=f"admin_ads:page:{current_page - 1}", + ) + ) row.append( InlineKeyboardButton( - text="⬅️ " + _("prev_page_button", default="Prev"), - callback_data=f"admin_ads:page:{current_page - 1}", + text=f"{current_page + 1}/{total_pages}", + callback_data="ads_page_display", ) ) - row.append( - InlineKeyboardButton( - text=f"{current_page + 1}/{total_pages}", - callback_data="ads_page_display", - ) - ) - if current_page < total_pages - 1: - row.append( - InlineKeyboardButton( - text=_("next_page_button", default="Next") + " ➡️", - callback_data=f"admin_ads:page:{current_page + 1}", + if current_page < total_pages - 1: + row.append( + InlineKeyboardButton( + text=_("next_page_button", default="Next") + " ➡️", + callback_data=f"admin_ads:page:{current_page + 1}", + ) ) - ) - if row: - builder.row(*row) + if row: + builder.row(*row) builder.button(text=_(key="admin_ads_create_button", default="➕ Создать кампанию"), callback_data="admin_action:ads_create")