From 5bba09176ad23d88bf7d2bc345f383c607e5b488 Mon Sep 17 00:00:00 2001 From: Matthieu Date: Thu, 21 May 2026 09:18:09 +0200 Subject: [PATCH] =?UTF-8?q?fix(task)=20:=20s=C3=A9lecteur=20de=20statut=20?= =?UTF-8?q?filtr=C3=A9=20par=20le=20workflow=20du=20projet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/components/task/TaskModal.vue | 31 ++++++++++++++++---------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/frontend/components/task/TaskModal.vue b/frontend/components/task/TaskModal.vue index ab7155d..12915ba 100644 --- a/frontend/components/task/TaskModal.vue +++ b/frontend/components/task/TaskModal.vue @@ -671,10 +671,27 @@ const touched = reactive({ project: false, }) -const statusOptions = computed(() => - props.statuses.map(s => ({ label: s.label, value: s.id })) +const showProjectSelect = computed(() => !!props.projects?.length && !isEditing.value) + +const projectOptions = computed(() => + (props.projects ?? []).map(p => ({ label: p.name, value: p.id })) ) +const resolvedProjectId = computed(() => + showProjectSelect.value ? form.projectId : props.projectId +) + +const statusOptions = computed(() => { + const project = props.projects?.find(p => p.id === resolvedProjectId.value) + const wfStatuses = project?.workflow?.statuses ?? props.statuses + const opts = wfStatuses.map(s => ({ label: s.label, value: s.id })) + const current = props.task?.status + if (current && !wfStatuses.some(s => s.id === current.id)) { + opts.unshift({ label: current.label, value: current.id }) + } + return opts +}) + const effortOptions = computed(() => props.efforts.map(e => ({ label: e.label, value: e.id })) ) @@ -707,16 +724,6 @@ const groupOptions = computed(() => { return filtered.map(g => ({ label: g.title, value: g.id })) }) -const showProjectSelect = computed(() => !!props.projects?.length && !isEditing.value) - -const projectOptions = computed(() => - (props.projects ?? []).map(p => ({ label: p.name, value: p.id })) -) - -const resolvedProjectId = computed(() => - showProjectSelect.value ? form.projectId : props.projectId -) - const canArchive = computed(() => { if (!isEditing.value || !props.task) return false if (props.task.archived) return false