From addd57cd50aa13b50c7017eb227988688b05e57e Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Mon, 15 Sep 2025 16:40:15 +0200 Subject: [PATCH] feat: add backlog status and update task stats - Introduced 'backlog' status in TaskStatus type and STATUS_CONFIG for better task categorization. - Updated TaskStats interface to include backlog count. - Enhanced getTaskStats method to fetch backlog statistics and display in Header component. - Added backlog stat card in Header for improved visibility of task status. --- components/ui/Header.tsx | 7 +++++++ lib/status-config.ts | 7 +++++++ lib/types.ts | 3 ++- services/tasks.ts | 8 ++++++-- 4 files changed, 22 insertions(+), 3 deletions(-) diff --git a/components/ui/Header.tsx b/components/ui/Header.tsx index b955ce7..1818bf6 100644 --- a/components/ui/Header.tsx +++ b/components/ui/Header.tsx @@ -90,6 +90,13 @@ export function Header({ title, subtitle, stats, syncing = false }: HeaderProps) color="yellow" /> )} + {stats.backlog > 0 && ( + + )} {stats.todo > 0 && ( = { + backlog: { + key: 'backlog', + label: 'Backlog', + icon: '📋', + color: 'gray', + order: 0 + }, todo: { key: 'todo', label: 'À faire', diff --git a/lib/types.ts b/lib/types.ts index e179384..d7f28c9 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -1,6 +1,6 @@ // Types de base pour les tâches // Note: TaskStatus et TaskPriority sont maintenant gérés par la configuration centralisée dans lib/status-config.ts -export type TaskStatus = 'todo' | 'in_progress' | 'done' | 'cancelled' | 'freeze' | 'archived'; +export type TaskStatus = 'backlog' | 'todo' | 'in_progress' | 'done' | 'cancelled' | 'freeze' | 'archived'; export type TaskPriority = 'low' | 'medium' | 'high' | 'urgent'; export type TaskSource = 'reminders' | 'jira' | 'manual'; @@ -10,6 +10,7 @@ export interface TaskStats { completed: number; inProgress: number; todo: number; + backlog: number; cancelled: number; freeze: number; archived: number; diff --git a/services/tasks.ts b/services/tasks.ts index 85967b4..7c9848e 100644 --- a/services/tasks.ts +++ b/services/tasks.ts @@ -189,13 +189,15 @@ export class TasksService { * Récupère les statistiques des tâches */ async getTaskStats() { - const [total, completed, inProgress, todo, cancelled, freeze] = await Promise.all([ + const [total, completed, inProgress, todo, backlog, cancelled, freeze, archived] = await Promise.all([ prisma.task.count(), prisma.task.count({ where: { status: 'done' } }), prisma.task.count({ where: { status: 'in_progress' } }), prisma.task.count({ where: { status: 'todo' } }), + prisma.task.count({ where: { status: 'backlog' } }), prisma.task.count({ where: { status: 'cancelled' } }), - prisma.task.count({ where: { status: 'freeze' } }) + prisma.task.count({ where: { status: 'freeze' } }), + prisma.task.count({ where: { status: 'archived' } }) ]); return { @@ -203,8 +205,10 @@ export class TasksService { completed, inProgress, todo, + backlog, cancelled, freeze, + archived, completionRate: total > 0 ? Math.round((completed / total) * 100) : 0 }; }