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.
This commit is contained in:
machka-pasla
2025-09-05 15:17:01 +03:00
parent 8113908a98
commit 9a6ff6f636
+20 -19
View File
@@ -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")