Investment portfolio charts, search fix, and holding creation fixes
- Add four portfolio charts: allocation donut by holding, allocation donut by asset type, cost basis vs current value bar, return % bar - Fix asset search to use yf.Search() full-text instead of ticker-only lookup — name searches like "vanguard ftse all world" now work - Fix holding creation double-quantity bug: holdings now created with quantity=0 so buy transaction is sole source of quantity/cost basis - Add per-share / total price toggle in Add Holding modal with live calculated equivalent shown as you type - Add ErrorBoundary in AppShell so render errors show a message instead of a blank page - Fix donut charts using || instead of ?? when falling back from current_value to cost_basis_total (0 was not falling through ??) - Allow HoldingCreate.quantity >= 0 (was gt=0) to support zero-init - Fix error display for Pydantic v2 array-of-objects validation errors Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
26e2a055db
commit
cdc1e67321
9 changed files with 424 additions and 70 deletions
|
|
@ -36,7 +36,7 @@ class AssetPricePoint(BaseModel):
|
|||
class HoldingCreate(BaseModel):
|
||||
account_id: uuid.UUID
|
||||
asset_id: uuid.UUID
|
||||
quantity: Decimal = Field(..., gt=0)
|
||||
quantity: Decimal = Field(..., ge=0)
|
||||
avg_cost_basis: Decimal = Field(..., ge=0)
|
||||
currency: str = Field(default="GBP", min_length=3, max_length=10)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue