Ajoute les notices sources et le renommage fusionné des auteurs

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
LIMONIER Mathieu
2026-08-20 14:27:42 +02:00
co-authored by Copilot
parent 6b8f08ef26
commit e28d5bce32
24 changed files with 935 additions and 3 deletions
+27
View File
@@ -1981,3 +1981,30 @@ exception explicite à la règle générale « griser, ne jamais masquer ».
Enfin, plusieurs œuvres non possédées peuvent être cochées puis ajoutées aux envies en une seule
action d'écran. Chaque ajout reprend le même rapprochement et les mêmes validations que l'ajout
unitaire ; les doublons sont rapportés sans effacer la sélection des autres œuvres.
## Lot F — enrichir la fiche d'un livre (F1 et F3, 2026-08-20)
### F1 : lien vers la notice source
`Livre.UrlNotice` conserve l'URL de la notice utilisée pour préremplir une fiche depuis un
lookup ISBN. La BnF expose dans `srw:recordIdentifier` un ARK stable
(`ark:/12148/cb…`) : il est transformé en `https://catalogue.bnf.fr/{ark}`. OpenLibrary expose
la clé d'édition (`/books/OL…M`) : elle devient
`https://openlibrary.org/{clé}`. Ce sont des pages de notice directement consultables, et non
les endpoints JSON.
L'URL traverse `CandidatLivre`, `EnregistrementLivre` et le client jusqu'à la création du livre.
Une saisie manuelle laisse la colonne nulle. Les livres déjà en base n'ont pas cette information :
aucun rétro-remplissage n'est possible puisque la notice choisie n'a pas été conservée à l'époque.
La fiche affiche « Voir la notice source » uniquement quand l'URL existe.
### F3 : renommer et fusionner un auteur
`PUT /api/auteurs/{id}` recalcule `NomNormalise` et `CleRegroupement`. Si la clé de regroupement
est déjà portée par une autre fiche, l'API répond `409` avec la fiche cible ; l'écran explique
la fusion et demande confirmation. La confirmation réutilise la fusion existante : tous les liens
`LivreAuteur` sont réattribués, les doublons de lien pour un même livre sont réunis en conservant
la position la plus précoce et un rôle renseigné plutôt que `NonPrecise`, puis la fiche source et
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.