From f3be55e037168755885d249e4d43bf2f5626c71d Mon Sep 17 00:00:00 2001 From: Capybara-z Date: Sun, 20 Jul 2025 00:02:53 +0300 Subject: [PATCH] feat: add update time and refresh button to ads cards --- handlers/admin/ads/ads_handler.py | 9 ++++++++- handlers/admin/ads/keyboard.py | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/handlers/admin/ads/ads_handler.py b/handlers/admin/ads/ads_handler.py index a623db3f..dfabee49 100644 --- a/handlers/admin/ads/ads_handler.py +++ b/handlers/admin/ads/ads_handler.py @@ -1,4 +1,7 @@ import re +from datetime import datetime + +import pytz from aiogram import F, Router from aiogram.fsm.context import FSMContext @@ -171,6 +174,10 @@ async def handle_ads_cancel_input(callback_query: CallbackQuery, state: FSMConte def format_ads_stats(stats: dict, username_bot: str) -> str: + moscow_tz = pytz.timezone("Europe/Moscow") + now = datetime.now(moscow_tz) + update_time = now.strftime("%d.%m.%y %H:%M:%S") + return ( f"πŸ“Š Бтатистика ΠΏΠΎ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½ΠΎΠΉ ссылкС\n\n" f"πŸ“Œ НазваниС: {stats['name']}\n" @@ -182,5 +189,5 @@ def format_ads_stats(stats: dict, username_bot: str) -> str: f"πŸ’° Ѐинансовая информация:\n" f"β”œ πŸ’³ ΠŸΠΎΠΊΡƒΠΏΠΎΠΊ: {stats.get('payments', 0)}\n" f"β”” πŸ’Έ Π‘ΡƒΠΌΠΌΠ°: {round(stats.get('total_amount', 0), 2)} β‚½\n\n" - f"ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ статистики ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹ΠΌΠΈ ссылками." + f"⏱️ ПослСднСС ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅: {update_time}" ) diff --git a/handlers/admin/ads/keyboard.py b/handlers/admin/ads/keyboard.py index 18b7249d..2333076a 100644 --- a/handlers/admin/ads/keyboard.py +++ b/handlers/admin/ads/keyboard.py @@ -63,11 +63,16 @@ def build_ads_list_kb(ads: list, current_page: int, total_pages: int) -> InlineK def build_ads_stats_kb(code: str) -> InlineKeyboardMarkup: builder = InlineKeyboardBuilder() + builder.button( + text="πŸ”„ ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ", + callback_data=AdminAdsCallback(action="view", code=code).pack(), + ) builder.button( text="πŸ—‘οΈ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ", callback_data=AdminAdsCallback(action="delete_confirm", code=code).pack(), ) builder.row(build_admin_back_btn("ads")) + builder.adjust(1) return builder.as_markup()