From 0828bca2ed09e759022947667afcdfb916c1d56e Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Thu, 3 Apr 2025 09:57:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=20=D0=B4=D0=BD=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handlers/admin/coupons/keyboard.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/handlers/admin/coupons/keyboard.py b/handlers/admin/coupons/keyboard.py index d0ddd9c5..6c0a3eaf 100644 --- a/handlers/admin/coupons/keyboard.py +++ b/handlers/admin/coupons/keyboard.py @@ -1,14 +1,15 @@ from aiogram.filters.callback_data import CallbackData from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup from aiogram.utils.keyboard import InlineKeyboardBuilder +from typing import Optional from handlers.buttons import BACK - from ..panel.keyboard import AdminPanelCallback, build_admin_back_btn class AdminCouponDeleteCallback(CallbackData, prefix="admin_coupon_delete"): coupon_code: str + confirm: Optional[bool] = None def build_coupons_kb() -> InlineKeyboardMarkup: @@ -50,3 +51,17 @@ def build_coupons_list_kb(coupons: list, current_page: int, total_pages: int) -> builder.row(build_admin_back_btn("coupons")) builder.adjust(2) return builder.as_markup() + + +def format_coupons_list(coupons: list, username_bot: str) -> str: + coupon_list = "📜 Список всех купонов:\n\n" + for coupon in coupons: + value_text = f"💰 Сумма: {coupon['amount']} рублей" if coupon["amount"] > 0 else f"⏳ Дней: {coupon['days']}" + coupon_list += ( + f"🏷️ Код: {coupon['code']}\n" + f"{value_text}\n" + f"🔢 Лимит использования: {coupon['usage_limit']} раз\n" + f"✅ Использовано: {coupon['usage_count']} раз\n" + f"🔗 Ссылка: https://t.me/{username_bot}?start=coupons_{coupon['code']}\n\n" + ) + return coupon_list