Stage 07.3.4 - monitoring screen and journal migration
This commit is contained in:
@@ -68,7 +68,7 @@ def _compact_amount(currency: str, value: float) -> str:
|
||||
# клавиатура портфеля
|
||||
def _portfolio_keyboard() -> InlineKeyboardMarkup:
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.button(text="🏠 К торговле", callback_data="trade:home")
|
||||
builder.button(text="📊 К мониторингу", callback_data="monitoring:home")
|
||||
builder.adjust(1)
|
||||
return builder.as_markup()
|
||||
|
||||
@@ -77,7 +77,7 @@ def _portfolio_keyboard() -> InlineKeyboardMarkup:
|
||||
def _portfolio_warning_keyboard() -> InlineKeyboardMarkup:
|
||||
builder = InlineKeyboardBuilder()
|
||||
builder.button(text="🔁 Обновить", callback_data="portfolio:retry")
|
||||
builder.button(text="🏠 К торговле", callback_data="trade:home")
|
||||
builder.button(text="📊 К мониторингу", callback_data="monitoring:home")
|
||||
builder.adjust(1, 1)
|
||||
return builder.as_markup()
|
||||
|
||||
@@ -296,6 +296,55 @@ async def open_portfolio(message: Message, state: FSMContext) -> None:
|
||||
)
|
||||
|
||||
|
||||
# открыть портфель из экрана мониторинга
|
||||
@router.callback_query(F.data == "monitoring:portfolio")
|
||||
async def open_portfolio_from_monitoring(callback: CallbackQuery, state: FSMContext) -> None:
|
||||
await state.clear()
|
||||
|
||||
if callback.message is None:
|
||||
await callback.answer("Сообщение не найдено", show_alert=True)
|
||||
return
|
||||
|
||||
await LiveScreenRunner.delete_screen(
|
||||
screen="portfolio",
|
||||
bot=callback.message.bot,
|
||||
chat_id=callback.message.chat.id,
|
||||
)
|
||||
|
||||
user_id = callback.from_user.id if callback.from_user else None
|
||||
chat_id = callback.message.chat.id if callback.message.chat else None
|
||||
|
||||
try:
|
||||
await _render_portfolio_screen(
|
||||
callback.message,
|
||||
user_id=user_id,
|
||||
chat_id=chat_id,
|
||||
edit_mode=True,
|
||||
action="open_from_monitoring",
|
||||
)
|
||||
await callback.answer()
|
||||
except ExchangeError as exc:
|
||||
JournalService().log_ui_error(
|
||||
event_type="portfolio_open_error",
|
||||
message="Не удалось загрузить портфель из мониторинга.",
|
||||
screen="portfolio",
|
||||
action="open_from_monitoring",
|
||||
user_id=user_id,
|
||||
chat_id=chat_id,
|
||||
error_type=classify_exchange_error(exc),
|
||||
raw_error=str(exc),
|
||||
)
|
||||
|
||||
await show_callback_exchange_error(
|
||||
callback,
|
||||
title="<b>💼 Портфель</b>",
|
||||
exc=exc,
|
||||
network_details="Не загружен баланс аккаунта.\nОбнови экран.",
|
||||
auth_details="Не загружен баланс аккаунта.\nПроверь API ключи.",
|
||||
retry_callback_data="portfolio:retry",
|
||||
)
|
||||
|
||||
|
||||
# обновить портфель вручную
|
||||
@router.callback_query(F.data == "portfolio:retry")
|
||||
async def retry_portfolio(callback: CallbackQuery, state: FSMContext) -> None:
|
||||
|
||||
Reference in New Issue
Block a user