from fastapi import APIRouter router = APIRouter(prefix="/api/tasks", tags=["tasks"]) @router.get("/by-project") async def get_tasks_by_project(): from main import odoo_client projects = await odoo_client.get_projects() tasks = await odoo_client.get_tasks() result = [] for project in projects: project_tasks = [t for t in tasks if t.get("project_id") and t["project_id"][0] == project["id"]] stages: dict[str, list] = {} for task in project_tasks: stage_name = task["stage_id"][1] if task.get("stage_id") else "Sin etapa" stages.setdefault(stage_name, []).append({ "id": task["id"], "name": task["name"], "assigned": task.get("user_ids", []), "priority": task.get("priority", "0"), "deadline": task.get("date_deadline"), "kanban_state": task.get("kanban_state", "normal"), }) result.append({ "id": project["id"], "name": project["name"], "color": project.get("color", 0), "stages": stages, }) return {"projects": result}