Documente les lots I à P, et ce qui reste volontairement de côté
Les décisions, les pièges, et ce qui n'a pas été vérifié : les écrans reposent sur la compilation et la relecture, pas sur une exécution en navigateur. Restent écartés, avec leur motif : l'allègement des couvertures (à mesurer d'abord, même règle que l'AOT), la photo de couverture (le projet ne stocke pas de fichiers), l'URL finale après redirections, les homonymes d'auteur, et la confirmation de l'EAN-2, qui demande un magazine devant la caméra. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -268,6 +268,11 @@ Non actés : ce fichier ne fait pas autorité, `CLAUDE.md` reste la référence.
|
||||
|
||||
## Lot I — La bibliographie d'un auteur
|
||||
|
||||
✅ **Traité le 2026-08-21** : voir `CLAUDE.md`, section « Lots I à P ». « Tout cocher » vit à
|
||||
côté du filtre (la barre de sélection n'apparaît qu'une fois une case cochée, trop tard pour
|
||||
rendre service) et ne coche que ce qui est **visible** ; la couverture d'une œuvre non possédée
|
||||
n'est chargée qu'au dépliage.
|
||||
|
||||
- **I1. « Tout cocher », à côté de « Tout décocher »**. Dès qu'une case est cochée, la barre de
|
||||
sélection n'offre que le geste inverse : pour ajouter aux envies l'essentiel d'une
|
||||
bibliographie, il faut cocher ligne à ligne. ⚠️ « Tout » doit signifier **ce qui est
|
||||
@@ -283,6 +288,10 @@ Non actés : ce fichier ne fait pas autorité, `CLAUDE.md` reste la référence.
|
||||
|
||||
## Lot J — Le scan là où il manque
|
||||
|
||||
✅ **Traité le 2026-08-21.** Les deux items étaient du raccordement, `ScannerCodeBarres` étant
|
||||
déjà autonome. Pour J1, le scanner s'ouvre **dans la place visée** : il n'y a donc pas de retour
|
||||
à organiser, on n'a jamais quitté la série.
|
||||
|
||||
- **J1. Scanner depuis une série**, sur une place vide. Le flux existe déjà en pièces détachées
|
||||
(`/ajout` décode, la place sait accueillir un livre créé par ISBN), mais il faut passer par
|
||||
l'écran d'ajout puis revenir rattacher à la main. ⚠️ Le retour doit ramener **sur la série et
|
||||
@@ -294,6 +303,13 @@ Non actés : ce fichier ne fait pas autorité, `CLAUDE.md` reste la référence.
|
||||
|
||||
## Lot K — Couvertures et saisie
|
||||
|
||||
**K2 traité le 2026-08-21** ; **K1 écarté avec l'utilisateur** au profit d'une URL collée (voir
|
||||
le lot O1) — le stockage de fichiers reste hors du projet.
|
||||
|
||||
⚠️ K2 est allé un cran plus loin que ce qui est écrit ci-dessous : la forme à tiret est aussi
|
||||
celle **rangée en base**, faute de quoi un ISSN saisi à la main ne se rapprochait ni du
|
||||
code-barres ni de `bib.issn`. Les champs de saisie, eux, gardent bien la valeur tapée.
|
||||
|
||||
- **K1. Photographier la couverture** quand aucune source n'en fournit. ⚠️ C'est le premier
|
||||
point du projet qui **stocke un fichier**, ce que « Ebooks : fiches uniquement » écartait
|
||||
jusqu'ici : espace disque YunoHost, sauvegarde plus lourde, et cache hors-ligne à alimenter
|
||||
@@ -310,6 +326,10 @@ Non actés : ce fichier ne fait pas autorité, `CLAUDE.md` reste la référence.
|
||||
|
||||
## Lot L — Rendre l'attente visible
|
||||
|
||||
✅ **Traité le 2026-08-21** : composant `Patience`, posé sur le lookup ISBN, les recherches BnF,
|
||||
la bibliographie et les nouveautés. ⚠️ Il ne remplace aucun message d'échec — une source muette
|
||||
garde ses `EtatSourceBibliographie`.
|
||||
|
||||
- **L1. Un indicateur pendant les appels lents**, faute de quoi une recherche BnF (≈1 s par
|
||||
page, jusqu'à dix pages pour les nouveautés) se lit comme une application plantée. ⚠️ Le
|
||||
besoin n'est pas décoratif : le lot H a montré qu'un écran qui ne dit rien pousse à recliquer,
|
||||
@@ -320,6 +340,10 @@ Non actés : ce fichier ne fait pas autorité, `CLAUDE.md` reste la référence.
|
||||
|
||||
## Lot M — Détails d'écran
|
||||
|
||||
✅ **Traité le 2026-08-21.** ⚠️ Le point qui fait tenir la ligne à 320 px n'est pas le `flex`
|
||||
mais `min-width: 0` sur le champ : sans lui, un élément de formulaire refuse de rétrécir sous sa
|
||||
largeur intrinsèque et pousse le bouton hors de l'écran.
|
||||
|
||||
- **M1. Séries : « Nom d'une série » et le bouton « Créer » sur la même ligne.** Le champ et son
|
||||
bouton s'empilent aujourd'hui. ⚠️ À 320 px, la ligne doit rester lisible : le champ prend la
|
||||
place restante, le bouton garde sa largeur propre — et le libellé ne se tronque pas.
|
||||
@@ -361,6 +385,11 @@ Pistes, dans l'ordre où elles se testent :
|
||||
|
||||
## Lot O — Les numéros de revue s'enrichissent
|
||||
|
||||
✅ **O1 et O2 traités le 2026-08-21** : URL collée (pas de photo), table `ArticleUne` à part,
|
||||
séparateur point-virgule — et les thèmes de livres s'y alignent, la virgule restant acceptée.
|
||||
⚠️ Le garde du relais `GET /api/couvertures` a bien été étendu à `NumerosRevue.CoverUrl` :
|
||||
l'oublier n'aurait produit aucune erreur visible, seulement une image absente hors-ligne.
|
||||
|
||||
- **O1. Une image par numéro de revue.** `NumeroRevue` n'a aujourd'hui aucune couverture, et
|
||||
aucune source ne peut en fournir : l'ISSN désigne la revue, pas la parution. L'image viendra
|
||||
donc d'une photo ou d'une URL collée. ⚠️ **Même question ouverte que K1** — si c'est une
|
||||
@@ -387,15 +416,19 @@ Pistes, dans l'ordre où elles se testent :
|
||||
semble la bonne**, mais c'est une décision à acter, pas un détail d'implémentation.
|
||||
|
||||
✅ **Séparateur tranché le 2026-08-20 : le point-virgule.** Un titre d'article contient souvent
|
||||
une virgule (« Ukraine, deux ans après »), qui couperait le titre en deux. ⚠️ **Reste une
|
||||
question ouverte** : les thèmes de livres se saisissent à la virgule — faut-il les aligner sur
|
||||
`;` pour que deux champs voisins ne se saisissent pas différemment, ou assumer la divergence
|
||||
parce qu'un thème (« dark fantasy ») ne contient jamais de virgule ? À poser à l'utilisateur
|
||||
avant de coder. Le reste suit les règles déjà tenues : dédoublonnage avant résolution, `NormalisationTexte`,
|
||||
une virgule (« Ukraine, deux ans après »), qui couperait le titre en deux. ✅ **Question tranchée avec
|
||||
l'utilisateur le 2026-08-21 : les thèmes s'alignent sur `;`**, la virgule restant acceptée en
|
||||
repli — un thème n'en contient jamais, et c'était l'habitude. Le champ des auteurs se saisit
|
||||
déjà au point-virgule : trois champs voisins du même formulaire ne doivent pas se saisir de
|
||||
trois façons. Le reste suit les règles déjà tenues : dédoublonnage avant résolution, `NormalisationTexte`,
|
||||
premier libellé saisi = forme affichée.
|
||||
|
||||
## Lot P — Ranger une envie dans une série
|
||||
|
||||
✅ **Traité le 2026-08-21**, par la seconde voie du tableau ci-dessous et **depuis la série**
|
||||
(tranché avec l'utilisateur : c'est là qu'on voit l'ordre de lecture, donc là qu'on sait quelle
|
||||
position donner). L'envie survit au rattachement, et rien ne relie les deux en base.
|
||||
|
||||
Demande : depuis la liste d'envies, placer un livre souhaité dans une série, comme on y place un
|
||||
livre du catalogue. C'est le **chemin inverse** de `MettreEnEnviesAsync`, qui fait déjà « place
|
||||
vide → envie ».
|
||||
|
||||
Reference in New Issue
Block a user