Ajoute ISBN, tris et nouveautés d'auteur

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
LIMONIER Mathieu
2026-08-20 13:49:08 +02:00
co-authored by Copilot
parent 359f4f59c6
commit 6b8f08ef26
10 changed files with 441 additions and 13 deletions
+57 -9
View File
@@ -30,7 +30,16 @@ else if (_erreur is not null)
}
else if (_bibliographie is { } biblio)
{
<h1 class="titre-page">@biblio.Auteur.Nom</h1>
<h1 class="titre-page">
@if (biblio.EstNouveautes)
{
<text>Nouveautés de @biblio.Auteur.Nom</text>
}
else
{
@biblio.Auteur.Nom
}
</h1>
@*
⚠️ Les deux cas ci-dessous s'excluent, et c'est TOUT l'objet de ce bloc.
@@ -65,13 +74,27 @@ else if (_bibliographie is { } biblio)
}
else if (biblio.Oeuvres.Count == 0)
{
@* La source a répondu, et elle ne connaît rien : là, et là seulement, on peut
l'expliquer. Le cas est fréquent et n'a rien d'anormal. *@
<p class="message-discret">
La BnF ne connaît aucun livre de cet auteur. C'est le cas attendu pour les auteurs
étrangers : le dépôt légal français ne couvre que l'édition francophone, et un
auteur traduit n'y a souvent pas de notice à son nom.
</p>
@if (biblio.EstNouveautes && biblio.SeuilNouveautesInconnu)
{
<p class="message-discret">
Impossible de dater le livre le plus récent que vous possédez dans les notices
reçues. La BnF a répondu, mais aucune nouveauté fiable ne peut être déduite.
</p>
}
else if (biblio.EstNouveautes)
{
<p class="message-discret">Aucune nouveauté trouvée depuis @biblio.AnneeSeuilNouveautes.</p>
}
else
{
@* La source a répondu, et elle ne connaît rien : là, et là seulement, on peut
l'expliquer. *@
<p class="message-discret">
La BnF ne connaît aucun livre de cet auteur. C'est le cas attendu pour les auteurs
étrangers : le dépôt légal français ne couvre que l'édition francophone, et un
auteur traduit n'y a souvent pas de notice à son nom.
</p>
}
}
else if (biblio.Avertissement is not null)
{
@@ -92,6 +115,13 @@ else if (_bibliographie is { } biblio)
}
</p>
@if (biblio.EstNouveautes)
{
<p class="message-discret">
Œuvres parues après @biblio.AnneeSeuilNouveautes, d'après les éditions BnF reçues.
</p>
}
@* Deux phrases distinctes plutôt qu'une seule à trous : enchaîner des fragments
conditionnels dans une même phrase produit une ponctuation bancale dès qu'un des
fragments manque (« exister. .34 notices ont été écartées »). *@
@@ -290,6 +320,19 @@ else if (_bibliographie is { } biblio)
@if (_bibliographie is { } b)
{
<nav class="actions-flottantes">
@if (!b.EstNouveautes)
{
<a class="bouton bouton-discret"
href="@($"auteurs/{b.Auteur.Id}/bibliographie?nouveautes=true")">
Nouveautés
</a>
}
else
{
<a class="bouton bouton-discret" href="@($"auteurs/{b.Auteur.Id}/bibliographie")">
Toute la bibliographie
</a>
}
<a class="bouton bouton-discret" href="@($"?auteur={b.Auteur.Id}")">Ses livres chez vous</a>
</nav>
}
@@ -298,6 +341,9 @@ else if (_bibliographie is { } biblio)
[Parameter]
public int AuteurId { get; set; }
[SupplyParameterFromQuery(Name = "nouveautes")]
public bool Nouveautes { get; set; }
private BibliographieDto? _bibliographie;
private int _modePossession;
private bool _filtresOuverts;
@@ -337,7 +383,9 @@ else if (_bibliographie is { } biblio)
try
{
_bibliographie = await Api.ObtenirBibliographieAsync(AuteurId);
_bibliographie = Nouveautes
? await Api.ObtenirNouveautesAsync(AuteurId)
: await Api.ObtenirBibliographieAsync(AuteurId);
_livresCatalogue = await Api.ListerAsync(new CritereLivres());
if (_bibliographie is null)