Ajoute les thèmes communs sur les fiches de livres
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
Copilot
parent
e28d5bce32
commit
c2d408afc6
@@ -2008,3 +2008,28 @@ la position la plus précoce et un rôle renseigné plutôt que `NonPrecise`, pu
|
||||
ses refus deviennent obsolètes. Sans collision, le renommage est direct. Cette opération est
|
||||
volontairement distincte de la renormalisation automatique : c'est un choix explicite de
|
||||
l'utilisateur.
|
||||
|
||||
### F2 : thèmes en étiquettes (2026-08-20)
|
||||
|
||||
Les thèmes décrivent l'œuvre (« dark fantasy », « space opera »), pas la relation personnelle
|
||||
d'un lecteur à un livre. Ils sont donc **communs au foyer**, comme le catalogue, les auteurs et
|
||||
les séries : `AjoutePar` reste une trace de saisie et ne crée aucune frontière. Les statuts de
|
||||
lecture et les envies restent les seules données personnelles parce qu'elles expriment une
|
||||
relation de l'utilisateur, et non une propriété de l'œuvre.
|
||||
|
||||
La saisie est **manuelle uniquement**. La BnF expose bien `dc:subject`, mais son vocabulaire
|
||||
Rameau est une indexation documentaire professionnelle et ne correspond pas aux étiquettes
|
||||
attendues par l'utilisateur. Aucun thème n'est donc déduit automatiquement d'un lookup ISBN ;
|
||||
comme pour les rôles d'auteurs, l'utilisateur choisit ce qu'il veut réellement afficher.
|
||||
|
||||
Le modèle est une table dédiée `Theme` (`Nom`, `NomNormalise`) et une table n-n `LivreTheme`,
|
||||
avec clé composite et suppression en cascade depuis le livre. La forme normalisée réutilise
|
||||
`NormalisationTexte` et porte un index unique : « Fantasy » et « fantasy » partagent la même
|
||||
fiche. Le formulaire accepte une liste séparée par des virgules, dédoublonnée avant résolution ;
|
||||
le premier libellé saisi devient la forme affichée. Les thèmes apparaissent en étiquettes sur la
|
||||
carte partagée `CarteLivre` et sur la fiche en consultation.
|
||||
|
||||
Le filtre par thème n'est **pas inclus dans F2**. Il aurait fallu ajouter une dimension aux deux
|
||||
implémentations de filtrage (`FiltreLivres` et `FiltreLivresLocal`), au contrat de cache et aux
|
||||
tests de confrontation ; cette extension est reportée à un lot ultérieur plutôt que d'introduire
|
||||
un filtre partiel ou divergent.
|
||||
|
||||
Reference in New Issue
Block a user