feat: add API routers for network, tasks, calendar, and services
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
33
backend/routers/tasks.py
Normal file
33
backend/routers/tasks.py
Normal file
@@ -0,0 +1,33 @@
|
||||
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}
|
||||
Reference in New Issue
Block a user