diff --git a/ft-app/app/routers/positions.py b/ft-app/app/routers/positions.py index 0df0beb..3893d2f 100644 --- a/ft-app/app/routers/positions.py +++ b/ft-app/app/routers/positions.py @@ -3,7 +3,7 @@ from fastapi import APIRouter, Depends, Form, Request from fastapi.responses import HTMLResponse, RedirectResponse from sqlalchemy.orm import Session from app.database import get_db -from app.models import Round, Position, Contract +from app.models import Round, Position, Contract, Product router = APIRouter(prefix="/positions", tags=["positions"]) @@ -18,6 +18,16 @@ def get_active_contracts(db: Session) -> list[str]: return [c[0] for c in contracts] +def get_product_contracts(db: Session) -> dict: + result: dict[str, list[str]] = {} + products = db.query(Product).order_by(Product.code).all() + for p in products: + codes = [c.code for c in p.contracts if c.is_active] + if codes: + result[p.code] = codes + return result + + @router.get("/", response_class=HTMLResponse) def positions_page(request: Request, db: Session = Depends(get_db)): active_rounds = ( @@ -33,6 +43,7 @@ def positions_page(request: Request, db: Session = Depends(get_db)): request=request, active_nav="positions", contracts=get_active_contracts(db), + product_contracts=get_product_contracts(db), active_rounds=active_rounds, ) ) diff --git a/ft-app/app/templates/positions.html b/ft-app/app/templates/positions.html index 5689c1f..6596452 100644 --- a/ft-app/app/templates/positions.html +++ b/ft-app/app/templates/positions.html @@ -16,15 +16,21 @@