diff --git a/handlers/admin/stats/stats_handler.py b/handlers/admin/stats/stats_handler.py index 9c449bfd..a83bcd50 100644 --- a/handlers/admin/stats/stats_handler.py +++ b/handlers/admin/stats/stats_handler.py @@ -53,8 +53,14 @@ async def handle_stats(callback_query: CallbackQuery, session: AsyncSession): total_users = await count_total_users(session) users_updated_today = await count_users_updated_today(session, today) registrations_today = await count_users_registered_since(session, today) + yesterday_date = today - timedelta(days=1) + yesterday_start = moscow_tz.localize(datetime.combine(yesterday_date, datetime.min.time())) + yesterday_end = moscow_tz.localize(datetime.combine(today, datetime.min.time())) + yesterday_start_utc = yesterday_start.astimezone(pytz.UTC).replace(tzinfo=None) + yesterday_end_utc = yesterday_end.astimezone(pytz.UTC).replace(tzinfo=None) + registrations_yesterday = await count_users_registered_between( - session, today - timedelta(days=1), today + session, yesterday_start_utc, yesterday_end_utc ) registrations_week = await count_users_registered_since( session, today - timedelta(days=today.weekday()) @@ -62,9 +68,16 @@ async def handle_stats(callback_query: CallbackQuery, session: AsyncSession): registrations_month = await count_users_registered_since( session, today.replace(day=1) ) - last_month_start = (today.replace(day=1) - timedelta(days=1)).replace(day=1) + last_month_start_date = (today.replace(day=1) - timedelta(days=1)).replace(day=1) + this_month_start_date = today.replace(day=1) + + last_month_start = moscow_tz.localize(datetime.combine(last_month_start_date, datetime.min.time())) + last_month_end = moscow_tz.localize(datetime.combine(this_month_start_date, datetime.min.time())) + last_month_start_utc = last_month_start.astimezone(pytz.UTC).replace(tzinfo=None) + last_month_end_utc = last_month_end.astimezone(pytz.UTC).replace(tzinfo=None) + registrations_last_month = await count_users_registered_between( - session, last_month_start, today.replace(day=1) + session, last_month_start_utc, last_month_end_utc ) total_keys = await count_total_keys(session) @@ -137,14 +150,14 @@ async def handle_stats(callback_query: CallbackQuery, session: AsyncSession): total_payments_today = await sum_payments_since(session, today) total_payments_yesterday = await sum_payments_between( - session, today - timedelta(days=1), today + session, yesterday_start_utc, yesterday_end_utc ) total_payments_week = await sum_payments_since( session, today - timedelta(days=today.weekday()) ) total_payments_month = await sum_payments_since(session, today.replace(day=1)) total_payments_last_month = await sum_payments_between( - session, last_month_start, today.replace(day=1) + session, last_month_start_utc, last_month_end_utc ) total_payments_all_time = await sum_total_payments(session) hot_leads_count = await count_hot_leads(session) diff --git a/handlers/admin/users/users_handler.py b/handlers/admin/users/users_handler.py index a2eec5f5..3aac019f 100644 --- a/handlers/admin/users/users_handler.py +++ b/handlers/admin/users/users_handler.py @@ -1202,7 +1202,7 @@ async def process_user_search( select(1) .where( (ManualBan.tg_id == tg_id) - & (or_(ManualBan.until is None, ManualBan.until > func.now())) + & (or_(ManualBan.until.is_(None), ManualBan.until > func.now())) ) .limit(1) )