From d0c09f9e06f51dc7016486df3316c76c3982bc92 Mon Sep 17 00:00:00 2001 From: machka-pasla Date: Wed, 6 Aug 2025 17:41:58 +0300 Subject: [PATCH] Enhance promo code creation and management logging - Added logging for successful promo code creation, improving traceability of actions. - Updated success message formatting to use a new variable for validity display, enhancing clarity for users. - Refactored variable names in the promo management handler for better readability and consistency. --- bot/handlers/admin/promo/create.py | 8 ++++++-- bot/handlers/admin/promo/manage.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/bot/handlers/admin/promo/create.py b/bot/handlers/admin/promo/create.py index 7c7137f..6044913 100644 --- a/bot/handlers/admin/promo/create.py +++ b/bot/handlers/admin/promo/create.py @@ -345,18 +345,22 @@ async def create_promo_code_final(callback_or_message, created_promo = await promo_code_dal.create_promo_code(session, promo_data) await session.commit() + # Log successful creation + logging.info(f"Promo code '{data['promo_code']}' created with ID {created_promo.promo_code_id}") + # Success message + valid_until_str = _("admin_promo_unlimited", default="Без ограничений") if not data.get("validity_days") else f"{data['validity_days']} дней" success_text = _( "admin_promo_created_success", default="✅ Промокод успешно создан!\n\n" "🎟 Код: {code}\n" "🎁 Бонусные дни: {bonus_days}\n" "📊 Макс. активаций: {max_activations}\n" - "⏰ Срок действия: {validity}", + "⏰ Срок действия: {valid_until_str}", code=data["promo_code"], bonus_days=data["bonus_days"], max_activations=data["max_activations"], - validity=_("admin_promo_unlimited", default="Без ограничений") if not data.get("validity_days") else f"{data['validity_days']} дней" + valid_until_str=valid_until_str ) if hasattr(callback_or_message, 'message'): # CallbackQuery diff --git a/bot/handlers/admin/promo/manage.py b/bot/handlers/admin/promo/manage.py index 91fb5a6..a4334ce 100644 --- a/bot/handlers/admin/promo/manage.py +++ b/bot/handlers/admin/promo/manage.py @@ -110,7 +110,7 @@ async def promo_management_handler(callback: types.CallbackQuery, i18n_data: dic builder = InlineKeyboardBuilder() for promo in promo_models: - status_emoji, _ = get_promo_status_emoji_and_text(promo, i18n, current_lang) + status_emoji, status_text = get_promo_status_emoji_and_text(promo, i18n, current_lang) button_text = f"{status_emoji} {promo.code} ({promo.current_activations}/{promo.max_activations})" builder.row(InlineKeyboardButton(text=button_text, callback_data=f"promo_detail:{promo.promo_code_id}"))