diff --git a/app/handlers/tickets.py b/app/handlers/tickets.py index df164c16..52fd564c 100644 --- a/app/handlers/tickets.py +++ b/app/handlers/tickets.py @@ -6,6 +6,7 @@ from aiogram import Dispatcher, types, F, Bot from aiogram.fsm.context import FSMContext from aiogram.fsm.state import StatesGroup, State from sqlalchemy.ext.asyncio import AsyncSession +from app.utils.timezone import format_local_datetime from app.database.models import User, Ticket, TicketStatus from app.database.crud.ticket import TicketCRUD, TicketMessageCRUD @@ -310,7 +311,7 @@ async def handle_ticket_message_input( f"📝 Заголовок: {safe_title}\n" f"📊 Статус: {ticket.status_emoji} " f"{texts.t('TICKET_STATUS_OPEN','Открыт')}\n" - f"📅 Создан: {ticket.created_at.strftime('%d.%m.%Y %H:%M')}\n" + f"📅 Создан: {format_local_datetime(ticket.created_at, '%d.%m.%Y %H:%M')}\n" + ("📎 Вложение: фото\n" if media_type == 'photo' else "") ) @@ -566,7 +567,7 @@ async def view_ticket( f"🎫 Тикет #{ticket.id}\n\n" f"📝 Заголовок: {ticket.title}\n" f"📊 Статус: {ticket.status_emoji} {status_text}\n" - f"📅 Создан: {ticket.created_at.strftime('%d.%m.%Y %H:%M')}\n\n" + f"📅 Создан: {format_local_datetime(ticket.created_at, '%d.%m.%Y %H:%M')}\n\n" ) message_blocks: list[str] = [] if ticket.messages: @@ -574,7 +575,7 @@ async def view_ticket( for msg in ticket.messages: sender = "👤 Вы" if msg.is_user_message else "🛠️ Поддержка" block = ( - f"{sender} ({msg.created_at.strftime('%d.%m %H:%M')}):\n" + f"{sender} ({format_local_datetime(msg.created_at, '%d.%m %H:%M')}):\n" f"{msg.message_text}\n\n" ) if getattr(msg, "has_media", False) and getattr(msg, "media_type", None) == "photo": @@ -1000,7 +1001,7 @@ async def notify_admins_about_new_ticket(ticket: Ticket, db: AsyncSession): f"🆔 Telegram ID: {telegram_id_display}\n" f"📱 Username: @{username_display}\n" f"📝 Заголовок: {title or '—'}\n" - f"📅 Создан: {ticket.created_at.strftime('%d.%m.%Y %H:%M')}\n" + f"📅 Создан: {format_local_datetime(ticket.created_at, '%d.%m.%Y %H:%M')}\n" ) # Клавиатура с быстрыми действиями для админов в топике