fix: Utiliser box Hive membres pour filtre membre (#42)
- 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 <noreply@anthropic.com>
This commit is contained in:
@@ -598,21 +598,24 @@ class _HistoryContentState extends State<HistoryContent> {
|
||||
|
||||
/// 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 = <int>{};
|
||||
final memberNames = <int, String>{};
|
||||
|
||||
// Récupérer les IDs de membres uniques depuis les passages
|
||||
final memberIdsInPassages = <int>{};
|
||||
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<int?>(
|
||||
value: _selectedMemberId,
|
||||
@@ -628,11 +631,12 @@ class _HistoryContentState extends State<HistoryContent> {
|
||||
value: null,
|
||||
child: Text('Tous'),
|
||||
),
|
||||
...sortedMembers.map((memberId) {
|
||||
...membres.map((membre) {
|
||||
final displayName = membre.name ?? membre.firstName ?? 'Membre #${membre.id}';
|
||||
return DropdownMenuItem<int?>(
|
||||
value: memberId,
|
||||
value: membre.id,
|
||||
child: Text(
|
||||
memberNames[memberId] ?? 'Membre #$memberId',
|
||||
displayName,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user