minor improvements

This commit is contained in:
Vladless
2025-02-21 22:36:03 +03:00
parent c9e791fa76
commit 769f5eaf9a
18 changed files with 2459 additions and 1990 deletions
+20 -2
View File
@@ -1,5 +1,5 @@
from aiogram.filters.callback_data import CallbackData
from aiogram.types import InlineKeyboardMarkup
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.utils.keyboard import InlineKeyboardBuilder
from keyboards.admin.panel_kb import AdminPanelCallback, build_admin_back_btn
@@ -17,7 +17,7 @@ def build_coupons_kb() -> InlineKeyboardMarkup:
return builder.as_markup()
def build_coupons_list_kb(coupons: list) -> InlineKeyboardMarkup:
def build_coupons_list_kb(coupons: list, current_page: int, total_pages: int) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
for coupon in coupons:
@@ -27,6 +27,24 @@ def build_coupons_list_kb(coupons: list) -> InlineKeyboardMarkup:
callback_data=AdminCouponDeleteCallback(coupon_code=coupon_code).pack(),
)
pagination_buttons = []
if current_page > 1:
pagination_buttons.append(
InlineKeyboardButton(
text="⬅️ Назад",
callback_data=AdminPanelCallback(action="coupons_list", page=current_page - 1).pack(),
)
)
if current_page < total_pages:
pagination_buttons.append(
InlineKeyboardButton(
text="Вперед ➡️",
callback_data=AdminPanelCallback(action="coupons_list", page=current_page + 1).pack(),
)
)
if pagination_buttons:
builder.row(*pagination_buttons)
builder.row(build_admin_back_btn("coupons"))
builder.adjust(2)
return builder.as_markup()
+6
View File
@@ -5,6 +5,12 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder
class AdminPanelCallback(CallbackData, prefix="admin_panel"):
action: str
page: int
def __init__(self, *args, **kwargs):
if "page" not in kwargs or kwargs["page"] is None:
kwargs["page"] = 1
super().__init__(*args, **kwargs)
def build_panel_kb() -> InlineKeyboardMarkup: