From 69524171470380c5227b30dba7d51b824e1474f7 Mon Sep 17 00:00:00 2001 From: Pierre Date: Mon, 26 Jan 2026 11:12:57 +0100 Subject: [PATCH] fix: Utiliser box Hive membres pour filtre membre (#42) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Correction du filtre membre : utilise membreRepository.getMembresBox() - Récupère les membres depuis la box Hive (ope_users) - Filtre uniquement les membres ayant des passages (memberIdsInPassages) - Affichage : member.name ou member.firstName - Tri alphabétique par nom 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- app/lib/presentation/pages/history_page.dart | 32 +++++++++++--------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/app/lib/presentation/pages/history_page.dart b/app/lib/presentation/pages/history_page.dart index b671a1d9..6c45a7d2 100755 --- a/app/lib/presentation/pages/history_page.dart +++ b/app/lib/presentation/pages/history_page.dart @@ -598,21 +598,24 @@ class _HistoryContentState extends State { /// Construit le dropdown de sélection de membre (admin uniquement) Widget _buildMemberDropdown() { - // Récupérer les membres uniques depuis les passages de l'opération courante - final memberIds = {}; - final memberNames = {}; - + // Récupérer les IDs de membres uniques depuis les passages + final memberIdsInPassages = {}; for (final passage in _originalPassages) { - if (!memberIds.contains(passage.fkUser)) { - memberIds.add(passage.fkUser); - // Utiliser le nom du passage (qui contient prenom + nom) - memberNames[passage.fkUser] = passage.name.isNotEmpty ? passage.name : 'Membre #${passage.fkUser}'; - } + memberIdsInPassages.add(passage.fkUser); } + // Récupérer les membres depuis la box Hive + final membresBox = membreRepository.getMembresBox(); + final membres = membresBox.values.where((membre) { + return memberIdsInPassages.contains(membre.id); + }).toList(); + // Trier par nom - final sortedMembers = memberIds.toList() - ..sort((a, b) => (memberNames[a] ?? '').compareTo(memberNames[b] ?? '')); + membres.sort((a, b) { + final nameA = a.name ?? a.firstName ?? ''; + final nameB = b.name ?? b.firstName ?? ''; + return nameA.compareTo(nameB); + }); return DropdownButtonFormField( value: _selectedMemberId, @@ -628,11 +631,12 @@ class _HistoryContentState extends State { value: null, child: Text('Tous'), ), - ...sortedMembers.map((memberId) { + ...membres.map((membre) { + final displayName = membre.name ?? membre.firstName ?? 'Membre #${membre.id}'; return DropdownMenuItem( - value: memberId, + value: membre.id, child: Text( - memberNames[memberId] ?? 'Membre #$memberId', + displayName, overflow: TextOverflow.ellipsis, ), );