Guide utilisateur intégré
L’application contient un guide utilisateur complet, accessible sur /guide/ depuis l’icône d’aide de l’en-tête, le pied de page et les liens « Aide » des pages principales. Chaque chapitre est illustré de captures annotées : des repères numérotés sur l’image renvoient à une légende.
Organisation
Section intitulée « Organisation »| Élément | Rôle |
|---|---|
apps/guide/content.py |
Source unique : chapitres (CHAPTERS) et figures (FIGURES) avec leurs repères |
templates/guide/chapters/<slug>.html |
Texte de chaque chapitre |
templates/guide/_figure.html |
Rendu d’une figure : image claire et sombre, légende numérotée |
{% guide_figure "nom" %} |
Balise qui insère une figure dans un chapitre (apps/guide/templatetags/guide.py) |
static/img/guide/ |
Captures <nom>-light.webp et <nom>-dark.webp, et manifest.json (dimensions) |
capture_guide |
Commande qui produit les captures à partir de FIGURES |
Une figure est décrite une seule fois :
Figure( name="pantry-add", path="/garde-manger/ajouter/", # page à capturer caption="Ajouter un produit, avec ou sans code-barres.", height=1100, # hauteur de la fenêtre clip=None, # sélecteur pour recadrer sur une zone actions=(), # par exemple (("click", "#bouton"),) # ou (("set_input_files", "input[type=file]", "{receipt}"),) callouts=( Callout("#id_code", "Code-barres", "Saisissez les chiffres sous le code."), Callout("[data-scan]", "Scanner", "Utilise la caméra du téléphone."), ),)Les sélecteurs suivent la syntaxe Playwright : CSS, :has(), :text-is() et >> nth=0 pour cibler le premier élément.
Régénérer les captures
Section intitulée « Régénérer les captures »À faire après toute modification visible de l’interface (gabarit, styles, libellés) :
uv sync # installe Playwright (groupe dev)uv run playwright install chromium # une seule foisnpm run build # styles à jourDEBUG=true uv run python manage.py runserver# dans un second terminal, sur la même base :DEBUG=true uv run python manage.py capture_guide # toutes les figuresDEBUG=true uv run python manage.py capture_guide pantry-add # une seuleLa commande :
- vérifie que le serveur répond sur
/health/; - prépare un compte de démonstration
guide@comegusto.local(mot de passe aléatoire), avec un garde-manger, des favoris et une liste de courses réalistes, dates calculées à partir du jour ; - pour les figures de l’assistant, compose un menu, crée une recette « vider le frigo » et génère un ticket de caisse d’exemple, avec de vraies réponses de l’assistant (quelques centimes) ;
- ouvre chaque page dans Chromium, en thème clair puis sombre (en mobile pour les figures
mobile=True) ; - entoure chaque repère et ajoute son numéro, puis enregistre la capture en WebP et ses dimensions dans
manifest.json.
Un sélecteur introuvable arrête la commande avec le nom de la figure : corrigez content.py ou le gabarit. Vérifiez ensuite le rendu sur /guide/, puis committez les images avec la modification de l’interface.
Ajouter une figure ou un chapitre
Section intitulée « Ajouter une figure ou un chapitre »- Déclarez la figure dans
FIGURESet ajoutez son nom au tuplefiguresdu chapitre. - Insérez
{% guide_figure "nom" %}dans le gabarit du chapitre, à l’endroit voulu. - Lancez
capture_guide nom. - Pour un nouveau chapitre, ajoutez un
ChapterdansCHAPTERS(ordre d’affichage) et créeztemplates/guide/chapters/<slug>.html.
Les tests (apps/guide/tests/) vérifient que chaque chapitre s’affiche, que chaque figure appartient à un chapitre, que ses images existent dans les deux thèmes et que les légendes sont rendues.
Rédaction
Section intitulée « Rédaction »- Phrases courtes, à l’impératif pour les actions (« Cliquez sur Ajouter »).
- Libellés de l’interface en gras, exactement comme à l’écran.
- Un encadré
guide-notepour une précision,guide-warningpour une mise en garde. - Pas de script ni de style en ligne : la CSP les bloque, comme partout ailleurs.

