---
suivi: 1529
date: 2026-09-14
sujet: Onglet Tous par défaut sur Mes tâches
chantier: taches_suivi
type: feature
statut: poussé
hash: 595bca67
fichiers:
  - app/Http/Controllers/MesTachesController.php
  - resources/js/Pages/MesTaches/Index.vue
  - tests/Feature/MesTachesPageTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1529_mes_taches_onglet_tous.md
---

# SUIVI #1529 — Onglet « Tous » par défaut sur Mes tâches

## PROMPT ENVOYÉ

À l’ouverture de `/mes-taches`, l’onglet actif est « Suivi ». Il doit
être « Tous ». Uniquement l’onglet. Ne pas toucher aux autres réglages
(affichage, colonnes, filtres, type d’attribution, cases). Si un choix
d’onglet est mémorisé, ne l’écraser que pour qui n’a jamais choisi.
Un lien avec onglet explicite dans l’URL doit rester respecté.

## FICHES LUES

- **#1068 LEÇON** — préférences `users.preferences` = programme / projet
  uniquement, pas l’onglet. Impact : pas de mémorisation d’onglet à
  ménager.
- **#1070 LEÇON** — sentinelle vide vs absence de préférence. Impact :
  hors sujet ici (pas de préférence onglet).
- **#1058 LEÇON** — case « inclure programmes » mémorisée à part.
  Impact : ne pas y toucher.
- **#1211 / #1214** — payload / morph Mes tâches. Impact : aucun, lot
  limité au défaut d’onglet.

Aucune fiche pertinente sur le défaut d’onglet hors #959 (journal
`mes-taches-defaut-suivi-attribuees-2026-07-24`, pas de fiche locale
`SUIVI_0959`).

## OÙ SE DÉCIDE LE DÉFAUT

Point de vérité : **paramètre d’URL**, défaut côté contrôleur.

| Lieu | Fichier | Ligne | Rôle |
|------|---------|-------|------|
| Contrôleur | `MesTachesController.php` | `query('onglet', 'tous')` | défaut si query absente ; fallback si valeur invalide |
| Front (miroir) | `MesTaches/Index.vue` | props `filtres.onglet`, `ongletActif`, watch | repli si props absents |
| URL | `appliquerFiltres()` | omet `onglet` si valeur = défaut | refresh / navigation |

**Pas de mémorisation d’onglet** : `localStorage` `mes-taches-vue-v1`
ne stocke que vue (Tableau / Cartes / Liste) et regroupement colonnes.
Préférences utilisateur = `inclure_perimetre_programme`,
`filtre_programme_id`, `filtre_projet_id`. Comportement le plus simple
retenu : changer le défaut URL pour tout le monde ; un utilisateur qui
a cliqué « Suivi » a `?onglet=suivi` et le conserve au refresh.

Liens explicites inchangés : `?onglet=suivi` (dashboard programme,
fiche tâche, Aktor) et `?onglet=opérationnelles` restent respectés.
Menu / alertes vers `/mes-taches` sans param → Tous.

## SYNTHÈSE

Défaut `suivi` → `tous` au contrôleur et dans les replis Vue. Quand
l’onglet actif est Tous, `onglet` est omis de l’URL (nouveau défaut) ;
Suivi et Opérationnelles passent en query explicite. Type d’attribution
`attribuees`, affichage, filtres, cases : inchangés.

## DÉPLOIEMENT-TEST

```
git pull origin main
php artisan view:clear
php artisan journal:sync
```

Pas de migrate. Pas de route:clear.

## LEÇON

Le défaut d’onglet Mes tâches n’est pas une préférence utilisateur : c’est
le 2ᵉ argument de `$request->query('onglet', …)` plus l’omission du param
dans `appliquerFiltres()` quand on est sur le défaut. Changer l’un sans
l’autre casse le refresh (URL nue ≠ onglet affiché).
