From 2bd623b7198956be9dacb637f524028a8838a59b Mon Sep 17 00:00:00 2001 From: Youssef Date: Fri, 7 Aug 2026 14:45:43 +0200 Subject: [PATCH] =?UTF-8?q?feat(adherents):=20ajouter=20le=20r=C3=A9capitu?= =?UTF-8?q?latif=20des=20=C3=A9quipements=20et=20le=20filtre=20par=20statu?= =?UTF-8?q?t=20dans=20la=20liste=20des=20adh=C3=A9rents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/AdherentController.java | 21 ++++++++++ .../resources/templates/adherents/list.html | 38 ++++++++++++++++++- 2 files changed, 57 insertions(+), 2 deletions(-) diff --git a/as-talange-web/src/main/java/com/astalange/web/controller/AdherentController.java b/as-talange-web/src/main/java/com/astalange/web/controller/AdherentController.java index a7e67b5..7a99baa 100644 --- a/as-talange-web/src/main/java/com/astalange/web/controller/AdherentController.java +++ b/as-talange-web/src/main/java/com/astalange/web/controller/AdherentController.java @@ -47,6 +47,7 @@ public class AdherentController { @org.springframework.web.bind.annotation.RequestParam(required = false) String nom, @org.springframework.web.bind.annotation.RequestParam(required = false) String prenom, @org.springframework.web.bind.annotation.RequestParam(required = false) String categorie, + @org.springframework.web.bind.annotation.RequestParam(required = false) String equipements, @org.springframework.web.bind.annotation.RequestParam(required = false) String licence, @org.springframework.web.bind.annotation.RequestParam(required = false) String email, @org.springframework.web.bind.annotation.RequestParam(required = false) String paiement, @@ -89,6 +90,26 @@ public class AdherentController { ).collect(java.util.stream.Collectors.toList()); model.addAttribute("categorieFilter", categorie.trim()); } + if (equipements != null && !equipements.trim().isEmpty()) { + String eqFilter = equipements.trim(); + adherents = adherents.stream().filter(a -> { + Licence lic = a.getLicenceActuelle(); + if (lic == null || lic.getDotations() == null || lic.getDotations().isEmpty()) { + return false; + } + long total = lic.getDotations().size(); + long fournis = lic.getDotations().stream().filter(d -> Boolean.TRUE.equals(d.getFourni())).count(); + if ("TOUT_FOURNI".equalsIgnoreCase(eqFilter)) { + return fournis == total; + } else if ("PARTIEL".equalsIgnoreCase(eqFilter)) { + return fournis > 0 && fournis < total; + } else if ("NON_FOURNI".equalsIgnoreCase(eqFilter)) { + return fournis == 0; + } + return true; + }).collect(java.util.stream.Collectors.toList()); + model.addAttribute("equipementsFilter", eqFilter); + } if (licence != null && !licence.trim().isEmpty()) { String l = licence.trim().toLowerCase(); adherents = adherents.stream().filter(a -> diff --git a/as-talange-web/src/main/resources/templates/adherents/list.html b/as-talange-web/src/main/resources/templates/adherents/list.html index c740961..3b6a51b 100644 --- a/as-talange-web/src/main/resources/templates/adherents/list.html +++ b/as-talange-web/src/main/resources/templates/adherents/list.html @@ -74,7 +74,7 @@
- +
+ @@ -174,7 +183,7 @@ - + + +
@@ -107,6 +107,7 @@ Équipements
N° Licence @@ -147,6 +148,14 @@ +
+ +
Aucun adhérent enregistré.Aucun adhérent enregistré.
@@ -188,6 +197,31 @@ Jean - +
+ + Complet (3/3) + +
+ + + Maillot + +
+
+
+ - +
+
- jean@example.com