diff --git a/app/cli/core/utils.py b/app/cli/core/utils.py index dca7db5..0f908a9 100644 --- a/app/cli/core/utils.py +++ b/app/cli/core/utils.py @@ -39,29 +39,22 @@ def to_plain_data(value: Any) -> Any: def print_portfolio_table(console: Console, portfolios: list[PortfolioListItem]) -> None: - table = Table(title="Portfolios", expand=True) - table.add_column("ID", style="cyan", no_wrap=True) - table.add_column("Broker") - table.add_column("Status", no_wrap=True) - table.add_column("Symbol", no_wrap=True) - table.add_column("Cash", justify="right") - table.add_column("Qty", justify="right") - table.add_column("Price", justify="right") - table.add_column("Buffer", justify="right") - table.add_column("Total", justify="right") - for item in portfolios: - table.add_row( - item.portfolio_id, - item.broker, - item.status, - item.symbol, - format_currency(item.cash_balance), - f"{item.asset_quantity:g}", - format_currency(item.price), - format_currency(item.profit_buffer), - format_currency(item.total_value), - ) - console.print(table) + for i, item in enumerate(portfolios): + if i > 0: + console.print() + lines = [ + f"id: {item.portfolio_id}", + f"broker: {item.broker}", + f"status: {item.status}", + f"symbol: {item.symbol}", + f"cash: {format_currency(item.cash_balance)}", + f"qty: {item.asset_quantity:g}", + f"price: {format_currency(item.price)}", + f"buffer: {format_currency(item.profit_buffer)}", + f"total: {format_currency(item.total_value)}", + ] + for line in lines: + console.print(line) def print_portfolio_detail(console: Console, detail: PortfolioDetailResponse) -> None: diff --git a/tests/test_cli.py b/tests/test_cli.py index eeb5100..83b5695 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -507,7 +507,7 @@ def test_cli_list_renders_table() -> None: assert result.exit_code == 0 assert "005930:tv" in result.stdout - assert "Portfolios" in result.stdout + assert "id: 005930:tv" in result.stdout def test_cli_status_supports_json_output() -> None: