From a0cb727ff0a335cee15cca8d131fa48a3bb3d3ea Mon Sep 17 00:00:00 2001 From: LIMONIER Mathieu Date: Thu, 20 Aug 2026 14:42:23 +0200 Subject: [PATCH] =?UTF-8?q?Filtre=20les=20pr=C3=AAts=20en=20cours=20par=20?= =?UTF-8?q?nom=20d'emprunteur=20(lot=20G)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ajoute un champ de recherche insensible aux accents sur l'écran des prêts en cours, visible dès qu'il y a plus d'un prêt. Filtrage en mémoire, sans colonne normalisée : la liste est courte par construction, une forme dédiée en base serait disproportionnée. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- CLAUDE.md | 15 ++++++++++++++ IDEES.md | 8 +++----- MaBibli.Client/Pages/Prets.razor | 35 +++++++++++++++++++++++++++++++- 3 files changed, 52 insertions(+), 6 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 377e9a4..354b461 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -2033,3 +2033,18 @@ Le filtre par thème n'est **pas inclus dans F2**. Il aurait fallu ajouter une d 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. + +## Lot G — filtrer les prêts par emprunteur (2026-08-20) + +`Prets.razor` filtre désormais la liste des prêts en cours par nom d'emprunteur, en mémoire +côté client. **Pas de colonne normalisée ajoutée** : la liste des prêts en cours est courte par +construction (ce qui n'est pas à la maison, pas tout l'historique), une table déjà bornée en +pratique par la taille d'un foyer — ajouter une forme normalisée en base et l'entretenir via +`ServiceRenormalisation` aurait été disproportionné pour ce seul besoin, conformément à la +mise en garde d'IDEES.md. + +La recherche passe par `NormalisationTexte.Normaliser`, comme partout ailleurs : insensible aux +accents et à la casse, cohérente avec le reste de l'application sans dupliquer de logique. Le +champ n'apparaît que s'il y a plus d'un prêt en cours — avec un seul prêt, filtrer n'apprendrait +rien, même raison que les lignes de filtre qui se cachent déjà ailleurs dans le catalogue quand +elles seraient inutiles. diff --git a/IDEES.md b/IDEES.md index ccbf854..5eeaa49 100644 --- a/IDEES.md +++ b/IDEES.md @@ -255,9 +255,7 @@ L'écran `/souhaits/ajout` rend aujourd'hui une liste plate. --- -## Lot G — Prêts +## Lot G — Prêts — traité le 2026-08-20 -- **G1. Filtrer les prêts en cours par nom d'emprunteur.** Le plus petit item de la liste. - ⚠️ `Emprunteur` est un texte libre sans colonne normalisée : soit on cherche en mémoire (la - liste est courte, c'est probablement suffisant), soit on ajoute une forme normalisée — et alors - `ServiceRenormalisation` doit la reprendre, comme pour les six autres colonnes. +**G1. Filtrer les prêts en cours par nom d'emprunteur** : fait, en mémoire, sans colonne +normalisée (voir `CLAUDE.md`). diff --git a/MaBibli.Client/Pages/Prets.razor b/MaBibli.Client/Pages/Prets.razor index 8c72444..7dda4ca 100644 --- a/MaBibli.Client/Pages/Prets.razor +++ b/MaBibli.Client/Pages/Prets.razor @@ -1,4 +1,5 @@ @page "/prets" +@using MaBibli.Shared.Textes @inject ServiceLivresApi Api @inject EtatReseau Reseau @implements IDisposable @@ -38,8 +39,24 @@ else {

@_prets.Count livre@(_prets.Count > 1 ? "s" : "") dehors

+ @* Filtre en mémoire : la liste des prêts en cours est courte, une forme normalisée en + base serait disproportionnée pour ce seul besoin (voir IDEES.md, lot G). La recherche + reste insensible aux accents et à la casse, comme partout ailleurs dans l'application. *@ + @if (_prets.Count > 1) + { +
+ +
+ } + + @if (PretsAffiches().Count == 0) + { +

Aucun prêt ne correspond à « @_recherche ».

+ } +