Documente les lots Q à Y, et corrige ce que la série a rendu faux

Nouvelle section « Lots Q à Y » dans CLAUDE.md : les décisions et les pièges,
pas la description du code. Elle dit aussi, en tête, ce qui n'est pas éprouvé —
aucun écran de la série n'a été vérifié en navigateur.

⚠️ Quatre passages étaient devenus FAUX, et un fichier qui fait autorité et qui
ment est pire qu'un fichier incomplet :

- le lot H actait « le retour passe par l'historique du navigateur, jamais par
  une destination calculée » et décrivait js/navigation.js, supprimé depuis. Le
  texte d'origine est conservé en citation — son motif reste vrai — sous le
  renversement qui explique pourquoi il n'a pas suffi, et pourquoi toute route
  nouvelle doit entrer dans la table de RemonteeRoutes ;
- « Cinq instantanés » : ils sont neuf, et une vue d'API sans instantané est un
  écran mort hors-ligne ;
- le modèle de données ignorait Livre.NombrePages, Livre.UrlNotice et l'entité
  RevueSouhaitee, dont Utilisateur est une frontière comme pour LivreSouhaite ;
- la fiche d'une série ne porte plus de barre d'actions flottante en
  consultation ; elle ne subsiste que sur l'écran d'ordre.

IDEES.md marque les lots Q à Y traités, en gardant le texte qui dit le besoin,
et ouvre trois points que la série laisse : la vérification en navigateur de
tous les écrans touchés, le réordonnancement des envies de revues, et un
éventuel signalement « déjà possédée » pour elles — plus douteux qu'il n'y
paraît, une envie portant souvent la revue entière. Ce qui était déjà ouvert
(A5, K1, N2, homonymes, OpenLibrary, EAN-2) reste intact.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mathieu
2026-08-21 14:56:23 +02:00
co-authored by Claude Opus 5
parent 498579f27b
commit d7ea12ddbf
2 changed files with 332 additions and 10 deletions
+57
View File
@@ -466,6 +466,11 @@ Deux points à trancher avant de coder :
# Retours d'usage du 2026-08-21 (7ᵉ série)
**Les lots Q à Y ont tous été traités le 2026-08-21** — voir `CLAUDE.md`, section « Lots Q à Y
— retours d'usage du 2026-08-21 ». Le texte d'origine de chaque lot est conservé ci-dessous : il
dit le **besoin**, que la décision ne remplace pas. Ce que la série laisse ouvert est listé en fin
de fichier.
Dix demandes remontées en usage. **Rien n'est acté** : ce qui suit est la matière brute, classée
en lots, avec ce que la relecture du code a déjà établi. Deux items portent sur le même sujet
(la flèche de retour) et sont réunis dans le lot S.
@@ -474,6 +479,10 @@ en lots, avec ce que la relecture du code a déjà établi. Deux items portent s
## Lot Q — L'ordre des champs du formulaire d'ajout
**Traité le 2026-08-21.** Ordre retenu : titre, type, thèmes, auteurs, rôles, reste. ⚠️ La
règle des rôles est **maintenue telle quelle** — deux auteurs au moins, BD ou non : la lier au
type aurait été un revirement.
Demande : dans « Ajouter un ouvrage », placer le **type de document juste après le titre**, puis
les **thèmes**, puis les **auteurs**, puis — **si c'est une BD** — les rôles, le reste ensuite.
@@ -495,6 +504,9 @@ est exactement le but ; le préremplir écrirait quelque chose de faux.
## Lot R — Le menu ne doit pas fuir au défilement
**Traité le 2026-08-21.** Un seul conteneur collant (bandeau + menu), plein écran sous 40 rem,
trois portes de sortie. Les règles restent en feuille **globale**.
Deux comportements demandés, un par famille d'appareil :
| Appareil | Aujourd'hui | Demandé |
@@ -523,6 +535,10 @@ mais il faudra aussi une fermeture explicite (croix, Échap, clic hors du menu)
## Lot S — La flèche de retour
**Traité le 2026-08-21**, et la question S1 est tranchée : le retour ne passe plus par
l'historique du tout. `RemonteeRoutes` calcule la parenté et rend **toujours** un chemin interne ;
`js/navigation.js` est supprimé.
Deux items remontés ensemble, qui ne demandent pas la même chose.
- **S1. Elle ne doit pas faire sortir de l'application.** ⚠️ **C'est censé être déjà tenu** :
@@ -549,6 +565,8 @@ Deux items remontés ensemble, qui ne demandent pas la même chose.
## Lot T — La fiche d'une série : les actions à droite du titre
**Traité le 2026-08-21.** La barre flottante disparaît de la consultation d'une série.
Demande : sur `/series/{id}`, grouper **« Modifier »** et **« Changer l'ordre »** tout à droite,
sur la ligne du titre et du compteur « x sur n tomes ».
@@ -564,6 +582,9 @@ sous-séries. Un bouton toujours présent mais inerte serait un recul.
## Lot U — Le nombre de pages sur la fiche d'un livre
**Traité le 2026-08-21.** Colonne nullable, `0` refusé, préremplissage depuis `dc:format` avec
des règles étroites — tout ce qui n'est pas « n p. » rend `null`.
Nouvelle colonne sur `Livre`, donc **migration**. Deux points à trancher avant de coder :
- **Nullable, obligatoirement.** Aucun livre déjà catalogué n'a cette information, et `0` page se
@@ -581,6 +602,9 @@ S'il est saisi, il l'est comme une indication, pas comme une propriété du fich
## Lot V — Dans la liste des revues, toute la ligne s'ouvre
**Traité le 2026-08-21**, en même temps que le lot W : le clic du titre ne remonte pas à la
ligne.
Aujourd'hui seul le **titre** est cliquable. C'est le motif inverse de ce que le projet tient
ailleurs : sur une carte du catalogue, c'est la carte entière qui mène à la fiche.
@@ -592,6 +616,9 @@ que le lot W, qui ajoute précisément des boutons sur ces écrans.
## Lot W — La fiche d'une revue : mêmes actions à droite, et l'édition d'un numéro
**Traité le 2026-08-21.** Tranché : édition et retrait d'un numéro **dans `/revues/{id}/edition`
seulement** ; « Ajouter un numéro » **reste en consultation**, le geste ne modifiant pas la fiche.
Symétrique du lot T, en trois demandes :
1. **« Ajouter un numéro » et « Modifier la revue » groupés à droite** du titre.
@@ -609,6 +636,10 @@ accordée au statut de lecture et au prêt. Ne pas trancher au clavier : c'est u
## Lot X — Éditer une envie, et savoir ce qu'on peut souhaiter
✅ **Traité le 2026-08-21.** `PUT /api/souhaits/{id}` existe, et le second volet est tranché : une
**table sœur `RevueSouhaitee`**, pas un titre libre. Ce qui reste ouvert est listé en fin de
fichier.
Demande : dans `/souhaits`, un bouton **« Éditer »** au-dessus de « Retirer », pour corriger le
livre souhaité.
@@ -642,6 +673,10 @@ casser ; le second rouvre la question d'une table de plus.
## Lot Y — Une page « À propos »
✅ **Traité le 2026-08-21.** `/a-propos`, entrée de menu **détachée** des six destinations,
`GET /api/version` — et l'horodatage de build comme **témoin** de l'injection, pour ne jamais
afficher le `1.0.0` du SDK.
Contenu demandé : **manuel** (à venir), **e-mail** `mailto:info@limonier.be`, **site**
`www.limonier.be` dans une autre fenêtre, **version publiée**, et la **licence du dépôt**.
@@ -663,3 +698,25 @@ désactivés faute de pouvoir aboutir.
Où la ranger : une septième destination dans le menu déséquilibrerait une navigation qu'on vient
justement de reprendre (lot R). À peser — pied de page, ou entrée à part visuellement.
---
# Ce que la 7ᵉ série laisse ouvert
Aux items déjà ouverts plus haut — **A5** (alléger les couvertures), **K1** (photographier une
couverture), **N2** (stocker l'URL finale après redirections), les **homonymes**, **OpenLibrary
en second rideau** et l'**EAN-2 à confirmer en kiosque** — la série du 2026-08-21 en ajoute trois.
- **Vérifier en navigateur tous les écrans touchés.** ⚠️ C'est le plus important : **aucun** n'a
été regardé s'afficher. Formulaire livre réordonné, menu collant et plein écran, flèche de
retour sur chaque branche, actions en tête des fiches série et revue, édition d'un numéro,
deux sections de la liste d'envies, page « À propos ». Les services et l'API sont couverts par
618 tests ; le rendu ne l'est par rien.
- **Réordonner les envies de revues.** Elles ont un `Rang` et une section à elles, mais aucun
écran pour les déplacer — les livres, eux, ont `/souhaits/ordre`. Le besoin n'est pas constaté :
la section est courte par nature. À faire le jour où elle ne l'est plus.
- **Signaler une envie de revue « déjà possédée ».** Les envies de livres le sont depuis le
2026-08-19. ⚠️ Le rapprochement est plus douteux ici : une envie porte souvent la **revue
entière** (`Numero` à `NULL`), et posséder un numéro ne comble pas ce souhait-là. Un signalement
faux sur une liste de cadeaux est pire que pas de signalement — même raisonnement que le grisage
faillible de la bibliographie.