Distinguer romans et BD par un type de document
Format disait physique ou numérique, jamais roman ou BD. Trois valeurs seulement : une valeur s'ajoute sans migration, la renommer une fois posée sur des centaines de fiches, non. Le défaut est « non précisé », pas « roman » : les fiches existantes n'ont pas été saisies avec cette question en tête, et un AddColumn suffit justement parce que la valeur par défaut ne prétend rien. L'interface n'affiche donc que ce qui a été choisi, comme pour le format. Filtre ajouté aux DEUX implémentations, serveur et hors-ligne, avec quatre jeux de critères de plus dans le test qui les confronte. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -686,6 +686,7 @@ Livre
|
||||
├── TitreNormalise (index — minuscules sans accents, recalculé à chaque écriture)
|
||||
├── Editeur
|
||||
├── Format : Physique | Numerique
|
||||
├── TypeDocument : NonPrecise | Roman | BandeDessinee (défaut = NonPrecise, PAS Roman)
|
||||
├── CoverUrl
|
||||
├── DateAjout
|
||||
└── AjoutePar (YNH_USER — traçabilité, PAS un cloisonnement)
|
||||
@@ -835,6 +836,53 @@ livre sorti depuis six mois qu'on avait oublié, pas celui prêté hier.
|
||||
(`ServiceLivresApi.EnUtc`). Sans cela le prêt se décalerait d'un jour pour la moitié du globe.
|
||||
Vérifié en exécution : saisie du 12/08 → `2026-08-11 22:00` en base (CEST).
|
||||
|
||||
## Type de document — migration `TypeDeDocument` (2026-08-19)
|
||||
|
||||
Besoin remonté : distinguer une BD d'un roman. Une BD était déjà catalogable telle quelle (elle
|
||||
a un ISBN, la BnF la connaît), mais rien ne permettait de la **reconnaître** — `Format` dit
|
||||
physique ou numérique, pas roman ou bande dessinée.
|
||||
|
||||
`Livre.TypeDocument` : **`NonPrecise` (0), `Roman`, `BandeDessinee`**. Trois valeurs, et c'est
|
||||
délibéré : une valeur s'ajoute **sans migration** (une énumération se stocke en entier), alors
|
||||
que renommer ou fusionner des valeurs déjà posées sur des centaines de fiches, non. Dans le
|
||||
doute, on n'ajoute pas.
|
||||
|
||||
### ⚠️ Le défaut est « non précisé », et surtout pas « roman »
|
||||
|
||||
C'est ce qui distingue cette migration de `RangDesEnvies`, qui avait dû reconduire un ordre en
|
||||
SQL : ici un simple `AddColumn` suffit, **parce que la valeur par défaut ne prétend rien**. Un
|
||||
défaut « Roman » aurait écrit quelque chose de faux sur chaque fiche existante — elles n'ont
|
||||
pas été saisies avec cette question en tête.
|
||||
|
||||
Deux conséquences tenues partout :
|
||||
|
||||
- **l'interface n'affiche que ce qui a été choisi** — étiquette au catalogue et ligne sur la
|
||||
fiche seulement si `TypeDocument != NonPrecise`, dans le prolongement exact de « le format ne
|
||||
s'affiche que pour les ebooks ». Sans cela, presque chaque ligne porterait « Non précisé » ;
|
||||
- **le formulaire ne présélectionne rien d'autre** que « Non précisé ». ⚠️ Symétrique inverse du
|
||||
format, qui **doit** rester sur *Physique* : là-bas l'absence d'étiquette signifie « physique »,
|
||||
ici elle signifie « on ne sait pas ».
|
||||
|
||||
### `NonPrecise` est une valeur de filtre à part entière
|
||||
|
||||
Contrairement au statut de lecture, dont l'absence n'est **pas** un statut. « Qu'est-ce que je
|
||||
n'ai pas encore rangé ? » est précisément la question qui se pose après avoir introduit ce champ,
|
||||
et c'est la seule façon d'y répondre. Le filtre suit pour le reste les règles déjà actées : la
|
||||
ligne se replie derrière « Filtrer », compte dans le compteur du bouton, et **disparaît tant que
|
||||
le fonds n'a qu'un seul type** — comme la ligne des formats, et avec la même précaution (les
|
||||
types présents ne se déduisent que d'un chargement `EstSansCritere`).
|
||||
|
||||
⚠️ **Le filtre existe en deux exemplaires** (`FiltreLivres` côté base, `FiltreLivresLocal` côté
|
||||
navigateur) : toute nouvelle dimension doit être ajoutée **aux deux**, et au test qui les
|
||||
confronte — quatre jeux de critères ont été ajoutés à `FiltreLivresLocalTests`, dont un croisant
|
||||
type, format et recherche. Une divergence silencieuse ferait chercher hors-ligne autre chose
|
||||
qu'en ligne.
|
||||
|
||||
**Ce qui n'est délibérément pas fait** : ni « magazine » dans l'énumération — le catalogage des
|
||||
périodiques demande un ISSN et une table de numéros, pas une étiquette de plus (voir IDEES.md) —
|
||||
ni les champs propres à la BD (série, tome, scénariste/dessinateur), le modèle mettant tous les
|
||||
auteurs dans `LivreAuteur` sans distinguer les rôles.
|
||||
|
||||
## Doublons du catalogue — avertir, jamais refuser (2026-08-19)
|
||||
|
||||
Défaut remonté en usage : rien n'empêchait de rescanner un livre déjà catalogué, et
|
||||
|
||||
Reference in New Issue
Block a user