diff --git a/docs/superpowers/specs/2026-03-13-my-tasks-page-design.md b/docs/superpowers/specs/2026-03-13-my-tasks-page-design.md index edd0d48..df71192 100644 --- a/docs/superpowers/specs/2026-03-13-my-tasks-page-design.md +++ b/docs/superpowers/specs/2026-03-13-my-tasks-page-design.md @@ -13,14 +13,16 @@ Ajouter des `SearchFilter` sur l'entité `Task` pour les champs suivants (en plu - `assignee` — filtre exact (par id) - `priority` — filtre exact - `effort` — filtre exact -- `tags` — filtre exact +- `tags` — filtre exact (ManyToMany, query param format : `tags[]=/api/task_tags/1`) - `status` — filtre exact +Désactiver la pagination sur l'opération `GetCollection` de Task (`paginationEnabled: false`) pour charger toutes les tâches filtrées en un seul appel. + Aucune migration nécessaire — les filtres sont purement déclaratifs sur des relations existantes. Exemple d'appel : ``` -GET /api/tasks?assignee=/api/users/1&archived=false&project=/api/projects/2 +GET /api/tasks?assignee=/api/users/1&archived=false&project=/api/projects/2&tags[]=/api/task_tags/3 ``` ## Frontend @@ -52,7 +54,8 @@ Deux boutons icônes en haut à droite (à côté des filtres) : - Colonnes par statut (ordonnées par `position`), même layout que `projects/[id]/index.vue` - Chaque colonne contient les `TaskCard` filtrés ayant ce statut -- Les tâches sans statut vont dans une section "Backlog" (sans colonne statut) +- Les tâches sans statut vont dans une section "Backlog" en première colonne +- Les colonnes de statut sans tâches sont affichées (cohérent avec la vue projet) - Pas de drag-and-drop (pas pertinent en contexte cross-projet) #### Vue Liste @@ -94,10 +97,10 @@ const [tasks, statuses, projects, efforts, priorities, tags, groups, users] = aw Ajout dans `frontend/services/tasks.ts` : ```typescript -getFiltered(params: Record): Promise +getFiltered(params: Record): Promise ``` -Construit les query params à partir de l'objet et appelle `GET /api/tasks?...`. Convertit les ids en IRIs si nécessaire. +Construit les query params à partir de l'objet et appelle `GET /api/tasks?...`. Convertit les ids en IRIs si nécessaire. Gère les paramètres tableau pour les relations ManyToMany (`tags[]`). ### Navigation