From 4c3721b6ac6c18c9ee1441085082b988135ac12d Mon Sep 17 00:00:00 2001 From: Matthieu Date: Wed, 6 May 2026 09:51:02 +0200 Subject: [PATCH] fix(dashboard) : appliquer le filtre user aux KPIs et charts de taches Avant, seul le KPI "Heures sur la periode" reagissait au filtre Utilisateur ; "Taches totales", "Mes taches actives" et tous les graphiques tache restaient inchanges. Le computed tasks ne filtrait que par projet, et myTasks etait hardcode sur auth.user.id (cf ticket LST40). Ajoute un effectiveUserId (selectedUser ?? auth.user) et applique le filtre user a tasks pour propager dans tous les charts et KPIs. Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/pages/index.vue | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/frontend/pages/index.vue b/frontend/pages/index.vue index 31a6a56..ab06f94 100644 --- a/frontend/pages/index.vue +++ b/frontend/pages/index.vue @@ -93,11 +93,22 @@ const isWeekPeriod = computed(() => selectedPeriod.value === 'thisWeek' || selectedPeriod.value === 'lastWeek' ) -// ── Filtered data (client-side project filter) ── +// ── Filtered data (client-side project + user filter) ── + +const effectiveUserId = computed(() => selectedUserId.value ?? auth.user?.id ?? null) const tasks = computed(() => { - if (!selectedProjectId.value) return allTasks.value - return allTasks.value.filter(t => t.project?.id === selectedProjectId.value) + let result = allTasks.value + if (selectedProjectId.value) { + result = result.filter(t => t.project?.id === selectedProjectId.value) + } + if (selectedUserId.value) { + result = result.filter(t => + t.assignee?.id === selectedUserId.value + || t.collaborators?.some(c => c.id === selectedUserId.value), + ) + } + return result }) const timeEntries = computed(() => { @@ -173,8 +184,8 @@ const totalHoursThisWeek = computed(() => const myTasks = computed(() => tasks.value.filter(t => - t.assignee?.id === auth.user?.id - || t.collaborators?.some(c => c.id === auth.user?.id) + t.assignee?.id === effectiveUserId.value + || t.collaborators?.some(c => c.id === effectiveUserId.value), ) )