Signaler les envies déjà entrées au catalogue, sans les supprimer
La demande initiale était de retirer l'envie ; c'est refusé. Le catalogue est commun et la liste d'envies personnelle : supprimer modifierait la liste d'un autre en silence, avec sa note. Et le rapprochement par clé d'œuvre est faillible, alors qu'une suppression ne se rattrape pas. L'étiquette « Déjà au catalogue » mène à la fiche, pour vérifier avant de retirer. Le critère est celui des doublons, la convention d'auteur commun étant désormais partagée par les deux (RapprochementAuteurs). Au passage : accolade manquante sur .etiquette-souhaite, qui avalait la règle suivante — le bandeau de mise à jour perdait son style. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1049,6 +1049,50 @@ ISBN est connu, y compris pour les résultats d'une recherche par titre (l'ISBN
|
||||
vignette retombe sur son substitut à initiale. Décidé de **ne pas** offrir de champ « URL de
|
||||
couverture » : il inviterait à coller des liens morts pour un gain nul.
|
||||
|
||||
## Une envie déjà au catalogue est signalée, jamais supprimée (2026-08-19)
|
||||
|
||||
Demande d'origine : quand un livre souhaité entre au catalogue, retirer l'envie correspondante.
|
||||
**Décidé : on signale.** `SouhaitDto.Possede` / `LivreId` portent le rapprochement, et l'écran
|
||||
des envies affiche une étiquette « Déjà au catalogue » **cliquable vers la fiche**.
|
||||
|
||||
Deux raisons, dont la première est structurelle :
|
||||
|
||||
- **le catalogue est commun, la liste d'envies personnelle.** L'envie n'est pas forcément celle
|
||||
de la personne qui a saisi le livre : la supprimer modifierait la liste d'un autre en silence,
|
||||
et lui ferait perdre sa note (« demandé à Noël »). L'API ne sait pas — délibérément — écrire
|
||||
dans la liste d'autrui, et lui ouvrir cette porte percerait un invariant tenu partout ailleurs ;
|
||||
- **le rapprochement est faillible** (`CleOeuvre` : titre retraduit, tome, intégrale). Une
|
||||
suppression fondée sur un rapprochement faux est irréversible ; un signalement se corrige d'un
|
||||
coup d'œil — d'où l'étiquette qui **mène à la fiche**, pour vérifier avant de retirer.
|
||||
|
||||
C'est la même règle que le grisage de la bibliographie, dans l'autre sens : on **marque**, on ne
|
||||
masque ni ne supprime jamais une ligne.
|
||||
|
||||
### Le critère est celui des doublons, et c'est voulu
|
||||
|
||||
ISBN identique (il tranche seul, désignant une édition précise), sinon même clé d'œuvre **et**
|
||||
un auteur commun. La convention « deux jeux de noms tous deux vides concordent » vit désormais
|
||||
en un seul endroit, `RapprochementAuteurs.PartagentUnAuteur`, partagée avec la détection de
|
||||
doublons du catalogue — deux règles voisines qui divergeraient en silence seraient pires qu'une
|
||||
règle imparfaite.
|
||||
|
||||
⚠️ `LivreSouhaite.TitreNormalise` **est déjà** la clé d'œuvre (voir l'entité) : rien à
|
||||
recalculer de ce côté, contrairement au catalogue dont `TitreNormalise` garde le titre entier.
|
||||
|
||||
⚠️ **Le catalogue est chargé en entier** (projection minimale) pour ce rapprochement. Assumé à
|
||||
l'échelle d'un foyer, et cohérent avec l'instantané hors-ligne qui l'emporte déjà tout entier
|
||||
dans le navigateur. Le jour où la bibliothèque compterait des milliers de fiches, c'est là qu'il
|
||||
faudrait dégrossir en SQL — pas renoncer au signalement.
|
||||
|
||||
⚠️ Piège rencontré, et pris par les tests seuls : `GetValueOrDefault` sur un
|
||||
`Dictionary<int, int>` rend **zéro**, pas `null`. Toute envie se disait donc possédée, en
|
||||
pointant vers un livre inexistant. Le compilateur ne pouvait rien dire — `0` est un `int`
|
||||
parfaitement valide.
|
||||
|
||||
**Ce qui n'est délibérément pas fait** : les exports `.txt` et `.csv` ne portent pas la mention.
|
||||
Ce sont des instantanés qu'on emporte, alors que le signalement appelle une action — vérifier,
|
||||
puis retirer — qui a lieu dans l'application.
|
||||
|
||||
## Bibliographie par auteur — SRU BnF, validé le 2026-08-18
|
||||
|
||||
Le déclencheur décrit dans IDEES.md : depuis un auteur déjà présent, voir tout ce qu'il a écrit,
|
||||
|
||||
Reference in New Issue
Block a user