feat(DISPLAY-001): add underlying mode switching

This commit is contained in:
Bu5hm4nn
2026-03-28 21:44:32 +01:00
parent 24c74cacbd
commit 20f5086507
6 changed files with 584 additions and 7 deletions

View File

@@ -8,6 +8,7 @@ from uuid import uuid4
from fastapi.responses import RedirectResponse
from nicegui import ui
from app.domain.conversions import get_display_mode_options
from app.models.portfolio import PortfolioConfig
from app.models.position import Position
from app.models.workspace import get_workspace_repository
@@ -126,6 +127,7 @@ def settings_page(workspace_id: str) -> None:
fallback_source=str(fallback_source.value),
refresh_interval=parsed_refresh_interval,
underlying=str(underlying.value),
display_mode=str(display_mode.value),
volatility_spike=float(vol_alert.value),
spot_drawdown=float(price_alert.value),
email_alerts=bool(email_alerts.value),
@@ -257,6 +259,16 @@ def settings_page(workspace_id: str) -> None:
value=config.underlying,
label="Underlying instrument",
).classes("w-full")
display_mode = ui.select(
get_display_mode_options(),
value=config.display_mode,
label="Display Mode",
).classes("w-full")
ui.label("Choose how to display positions and collateral values.").classes(
"text-xs text-slate-500 dark:text-slate-400 -mt-2"
)
primary_source = ui.select(
["yfinance", "ibkr", "alpaca"],
value=config.primary_source,
@@ -609,6 +621,7 @@ def settings_page(workspace_id: str) -> None:
primary_source,
fallback_source,
refresh_interval,
display_mode,
):
element.on_value_change(update_calculations)