diff --git a/backend/config/settings.yaml b/backend/config/settings.yaml index 5c28e38..fafc9a1 100644 --- a/backend/config/settings.yaml +++ b/backend/config/settings.yaml @@ -9,6 +9,7 @@ odoo: database: "cas" username: "ialcarazsalazar@consultoria-as.com" password: "Aasi940812" + exclude_company_ids: [2] # Excluir CAS 3D refresh: odoo_minutes: 5 diff --git a/backend/modules/odoo_client.py b/backend/modules/odoo_client.py index 279cb11..37a8fba 100644 --- a/backend/modules/odoo_client.py +++ b/backend/modules/odoo_client.py @@ -74,7 +74,7 @@ class OdooClient: return await self.search_read( model="project.project", domain=[("active", "=", True)], - fields=["name", "task_count", "color"], + fields=["name", "task_count", "color", "company_id"], ) async def get_tasks(self, project_id: int | None = None) -> list[dict[str, Any]]: diff --git a/backend/routers/tasks.py b/backend/routers/tasks.py index b243de6..c9b9ca8 100644 --- a/backend/routers/tasks.py +++ b/backend/routers/tasks.py @@ -5,10 +5,23 @@ router = APIRouter(prefix="/api/tasks", tags=["tasks"]) @router.get("/by-project") async def get_tasks_by_project(): - from main import odoo_client + from main import odoo_client, app_config + + settings = app_config.get_settings() + exclude_ids = settings.get("odoo", {}).get("exclude_company_ids", []) + projects = await odoo_client.get_projects() tasks = await odoo_client.get_tasks() + # Filter out excluded companies + if exclude_ids: + projects = [ + p for p in projects + if not (isinstance(p.get("company_id"), list) and p["company_id"][0] in exclude_ids) + ] + project_ids = {p["id"] for p in projects} + tasks = [t for t in tasks if t.get("project_id") and t["project_id"][0] in project_ids] + result = [] for project in projects: project_tasks = [t for t in tasks if t.get("project_id") and t["project_id"][0] == project["id"]] @@ -21,7 +34,6 @@ async def get_tasks_by_project(): "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"],