Parcours de démarrage : cartes des étapes Catégories et Rapports #432
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#432
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Les deux étapes de visite ajoutées par #425 (« Parcourir les catégories et les mots-clés », « Parcourir les rapports ») reçoivent leur carte sur
/categorieset/reports: explication, mise en évidence d'un contrôle, « J'ai compris ». Retours de Max sur la v0.17.1 (#422) ; textes validés par Max le 2026-10-12.Travail à faire
src/utils/onboardingPath.ts:CARD_PAGESajoute/categorieset/reports;PAGE_STEPSajoute"/categories": ["categories"]et"/reports": ["reports"].categoriesCardModel(checklist): étape faite →{ text: null, done: true, target: null }; sinon phraseonboarding.card.categoriesaveclabels: { allKeywords: "categories.allKeywords" }, cible"allKeywords".reportsCardModel(checklist, advancedLocked): étape faite → fait ; sinononboarding.card.reports.lockedsiadvancedLocked,onboarding.card.reports.allsinon, aveclabels: { trends: "reports.hub.trends" }, cible"trendsCard".advancedLockedest celui de la page (src/pages/ReportsPage.tsx:17-18:licenseReady && !advancedAllowed).CategoriesPage:<OnboardingStepCard model={…} />en tête de contenu, commeTransactionsPage.tsx:91; le bouton « Tous les mots-clés » (src/pages/CategoriesPage.tsx:47-57) reçoitonboardingTargetAttributes("categories-all-keywords", …)quand la carte s'affiche (showsStepCard). Jamais « Réinitialiser » : il supprime les mots-clés, déclasse toutes les transactions et recrée l'ancienne taxonomie (reinitializeCategories,src/services/categoryService.ts:215).ReportsPage: la carte en tête ;HubReportNavCard(src/components/reports/HubReportNavCard.tsx) reçoit deux props optionnelles,onboardingTarget?: boolean(attributsonboardingTargetAttributes("reports-trends-card", …)sur son lien) etonNavigate?: () => void(appelée au clic, avant la navigation). Seule la carte Tendances les reçoit, et seulement tant que la carte d'étape s'affiche et que l'étape n'est pas faite :onNavigate={() => acknowledge("reports")}(acknowledgevient deuseOnboarding(), ajouté par #425).cardNextexistante ;ACKNOWLEDGEgarde la carte, #425).Textes (FR | EN)
onboarding.card.categoriesonboarding.card.reports.allonboarding.card.reports.lockedDocs.
docs.gettingStarted.subsections[0].steps[2](FR et EN) : « Sur les pages Import, Catégories, Transactions, Budget et Rapports » ; ajouter que, sur Catégories et Rapports, la carte se ferme par « J'ai compris », et que sur Rapports l'ouverture de la carte Tendances compte aussi.docs/architecture.md, section Onboarding : pages à carte.docs/qa-onboarding.html: les deux cartes, leur cible, la variante Gratuite, « J'ai compris » puis l'étape suivante ou la fin, le clic sur Tendances.Fichiers concernés
src/utils/onboardingPath.ts,src/utils/onboardingPath.test.tssrc/pages/CategoriesPage.tsx,src/pages/ReportsPage.tsxsrc/components/reports/HubReportNavCard.tsx,src/components/reports/HubReportNavCard.render.test.tsx(nouveau)src/i18n/locales/fr.json,src/i18n/locales/en.jsondocs/guide-utilisateur.md,docs/architecture.md,docs/qa-onboarding.htmlCHANGELOG.md,CHANGELOG.fr.mdDepends on
Tests
stepsOfPage,cardStepsur/categories(5 sur 8 en Base+) et/reports(8 sur 8 ; 7 sur 7 en Gratuite) ;cardNext: après Catégories, l'étape suivante estmanualCategory; après Rapports, la fin.categoriesCardModeletreportsCardModel: fait, varianteall, variantelocked, cibles.HubReportNavCard: attributs de mise en évidence présents seulement aveconboardingTarget; en appelant le composant comme une fonction, leonClickde son lien appelleonNavigatequand il est fourni.Critères d'acceptation
/categories; la carte explique les mots-clés, entoure « Tous les mots-clés » et annonce l'ajout d'un mot-clé à l'étape suivante./reports, la carte entoure la carte Tendances ; en Gratuite, elle mentionne le cadenas ; « J'ai compris » ou l'ouverture de la carte Tendances cochent l'étape ; si c'était la dernière à faire, le bandeau annonce « Démarrage terminé »./categoriesou/reportssans cliquer ne coche rien.npm run buildetnpm testverts.Review caveats
/reports/trendset le verrou de carte se libère au changement de route ; qui suivait l'anneau quittait la page sans cocher l'étape. Max a retenu que l'ouverture de la carte Tendances mise en évidence reconnaisse l'étape.Décisions prises en planification
Conventions
src/i18n/locales/fr.json,en.json) ; les textes de ce corps s'écrivent mot pour mot (FR validé par Max le 2026-10-12, EN rédigé sur le même contenu).StepCardText.labels(src/utils/onboardingPath.ts), traduit parStepCard; jamais recopié dans la phrase. Guillemets « » en FR et “ ” en EN autour de chaque libellé de contrôle interpolé ;{{filter, lowercase}}sans guillemets.## [Unreleased]dansCHANGELOG.mdetCHANGELOG.fr.md.renderToStaticMarkup(pas de jsdom) et le fauxtpartagé livré par #389.npm run build(il vérifie aussi les types des fichiers de test) etnpm testverts.docs/guide-utilisateur.md) : repérer une ligne par son texte cité, pas par son numéro.CHANGELOG
Compléter l'entrée Added écrite par #425 : FR « … ; leurs cartes, sur les pages Catégories et Rapports, expliquent les mots-clés et le hub des rapports. » EN "…; their cards, on the Categories and Reports pages, explain keywords and the reports hub."
Spec source
spec-plan-retours-onboarding-v0171.md(local, ignoré par git) ; décisions dansspec-decisions-retours-onboarding-v0171.md.