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:
@@ -285,27 +285,9 @@ public sealed class ServiceCatalogue(MaBibliDbContext db, IServiceAuteurs auteur
|
||||
private IQueryable<Livre> AvecAuteurs() =>
|
||||
db.Livres.AsNoTracking().Include(l => l.Auteurs).ThenInclude(la => la.Auteur);
|
||||
|
||||
/// <summary>
|
||||
/// Un des auteurs du livre catalogué est-il l'un de ceux qu'on est en train de saisir ?
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Deux fiches sans aucun auteur comptent comme concordantes : le titre est alors la seule
|
||||
/// information disponible, et refuser de le signaler reviendrait à ne rien dire du tout.
|
||||
/// </remarks>
|
||||
private static bool MemeAuteur(Livre livre, IReadOnlyList<string> saisis)
|
||||
{
|
||||
var connus = livre.Auteurs
|
||||
.Select(la => la.Auteur?.Nom)
|
||||
.Where(nom => !string.IsNullOrWhiteSpace(nom))
|
||||
.ToList();
|
||||
|
||||
if (connus.Count == 0 && saisis.Count == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return connus.Any(connu => saisis.Any(saisi => RapprochementAuteurs.SontLeMemeAuteur(connu, saisi)));
|
||||
}
|
||||
/// <summary>Un des auteurs du livre catalogué est-il l'un de ceux qu'on est en train de saisir ?</summary>
|
||||
private static bool MemeAuteur(Livre livre, IReadOnlyList<string> saisis) =>
|
||||
RapprochementAuteurs.PartagentUnAuteur(livre.Auteurs.Select(la => la.Auteur?.Nom), saisis);
|
||||
|
||||
/// <summary>Phrase d'avertissement, écrite pour être lue telle quelle par l'utilisateur.</summary>
|
||||
/// <remarks>
|
||||
|
||||
Reference in New Issue
Block a user