feat: Début des évolutions interfaces mobiles v3.2.4

- Préparation de la nouvelle branche pour les évolutions
- Mise à jour de la version vers 3.2.4
- Intégration des modifications en cours

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-09-04 16:49:29 +02:00
parent 2187dccfeb
commit 2786252307
86 changed files with 3434 additions and 180898 deletions

View File

@@ -1,4 +1,4 @@
# GEOSECTOR v2.1
# GEOSECTOR v3.2.4
🚒 **Application de gestion des distributions de calendriers par secteurs géographiques pour les amicales de pompiers**
@@ -8,16 +8,18 @@
GEOSECTOR est une solution complète développée en Flutter qui révolutionne la gestion des campagnes de distribution de calendriers pour les amicales de pompiers. L'application combine géolocalisation, gestion multi-rôles et synchronisation en temps réel pour optimiser les tournées et maximiser l'efficacité des équipes.
### 🏆 Points forts de la v2.1
### 🏆 Points forts de la v3.2.4
- **Architecture moderne** sans Provider, basée sur l'injection de dépendances
- **Réactivité native** avec ValueListenableBuilder et Hive
- **Interface adaptative** selon les rôles utilisateur et la taille d'écran
- **Performance optimisée** avec un ApiService singleton
- **Performance optimisée** avec un ApiService singleton et cache Hive
- **Gestion avancée des permissions** multi-niveaux
- **Gestion d'erreurs centralisée** avec ApiException
- **Interface utilisateur épurée** avec suppression des titres superflus
- **Chat responsive** avec layout adaptatif mobile/desktop
- **Système de filtrage centralisé** dans PassagesListWidget
- **Intégration Stripe Connect** pour les paiements des amicales
---
@@ -264,11 +266,11 @@ NotificationSettingsAdapter() // typeId: 25
## 🎨 Interface utilisateur
### 📱 Améliorations v2.1 - Interface épurée et responsive
### 📱 Améliorations v3.x - Interface épurée et responsive
#### **🎯 Simplification des titres de pages**
La v2.1 a apporté une refonte majeure de l'interface pour maximiser l'espace utile et améliorer l'expérience utilisateur sur tous les écrans :
La v3.1.0 a apporté une refonte majeure de l'interface pour maximiser l'espace utile et améliorer l'expérience utilisateur sur tous les écrans :
**Pages avec titres supprimés :**
-`user_history_page.dart` : Historique des passages
@@ -356,7 +358,7 @@ UX claire : Feedback immédiat sur les erreurs de validation
### 🎯 Système ApiException intelligent
GEOSECTOR v2.0 utilise un **système centralisé de gestion des messages** qui s'adapte automatiquement au contexte d'affichage pour garantir une visibilité optimale des notifications utilisateur.
GEOSECTOR v3.x utilise un **système centralisé de gestion des messages** qui s'adapte automatiquement au contexte d'affichage pour garantir une visibilité optimale des notifications utilisateur.
#### **🧠 Détection automatique de contexte**
@@ -622,7 +624,7 @@ Cette approche garantit que tous les messages d'erreur de l'API sont correctemen
### 🎯 Vue d'ensemble
GEOSECTOR v2.0 implémente un **LoggerService centralisé** qui désactive automatiquement les logs de debug en production, optimisant ainsi les performances et la sécurité tout en facilitant le développement.
GEOSECTOR v3.x implémente un **LoggerService centralisé** qui désactive automatiquement les logs de debug en production, optimisant ainsi les performances et la sécurité tout en facilitant le développement.
### 🔍 Détection automatique de l'environnement
@@ -822,7 +824,7 @@ Cette architecture garantit un système de logging professionnel, sécurisé et
### 🎯 Vue d'ensemble
GEOSECTOR v2.0 implémente les **normes NIST SP 800-63B** pour la gestion des identifiants (usernames et passwords), offrant une sécurité renforcée tout en améliorant l'expérience utilisateur avec des règles plus flexibles et modernes.
GEOSECTOR v3.x implémente les **normes NIST SP 800-63B** pour la gestion des identifiants (usernames et passwords), offrant une sécurité renforcée tout en améliorant l'expérience utilisateur avec des règles plus flexibles et modernes.
### 📋 Conformité NIST SP 800-63B
@@ -1161,7 +1163,7 @@ Cette architecture garantit une gestion des membres robuste, sécurisée et intu
### 🌍 Configuration des tuiles de carte
GEOSECTOR v2.0 utilise une **stratégie différenciée** pour l'affichage des tuiles de carte selon la plateforme :
GEOSECTOR v3.x utilise une **stratégie différenciée** pour l'affichage des tuiles de carte selon la plateforme :
#### **Configuration actuelle**
@@ -1263,7 +1265,7 @@ DataLoadingService : Orchestration du chargement des données
### 📈 Gestion des Box Hive avec cache
GEOSECTOR v2.0 implémente une **stratégie de cache avancée** pour les Box Hive afin d'éliminer les goulots d'étranglement de performance lors d'opérations haute fréquence.
GEOSECTOR v3.x implémente une **stratégie de cache avancée** pour les Box Hive afin d'éliminer les goulots d'étranglement de performance lors d'opérations haute fréquence.
#### **🎯 Problème résolu**
@@ -1354,7 +1356,7 @@ Cette architecture garantit une application performante, maintenable et évoluti
### 🎯 Principe de conception
GEOSECTOR v2.0 implémente une **architecture simplifiée des dialogs** qui élimine la complexité des callbacks asynchrones et garantit une gestion robuste des formulaires modaux.
GEOSECTOR v3.x implémente une **architecture simplifiée des dialogs** qui élimine la complexité des callbacks asynchrones et garantit une gestion robuste des formulaires modaux.
### 🏗️ Pattern "Dialog Auto-Gérée"
@@ -1381,9 +1383,56 @@ Le widget `PassagesListWidget` est le composant central pour l'affichage et la g
- **Affichage adaptatif** : Liste complète ou tableau de bord avec fond transparent
- **Flux conditionnel de clic** : Comportement intelligent selon le type de passage
- **Bouton de création intégré** : Bouton "+" vert dans l'en-tête pour ajouter des passages
- **Filtrage avancé** : Par type, utilisateur, période, avec exclusions possibles
- **Système de filtrage centralisé** : Tous les filtres intégrés et configurables
- **Actions contextuelles** : Modification, suppression, génération de reçus
#### 🔧 Système de filtrage centralisé (v3.2.2)
Depuis la v3.2.2, PassagesListWidget intègre **tous les filtres** de manière configurable :
```dart
PassagesListWidget(
// Données
passages: formattedPassages,
// Configuration des filtres
showFilters: true, // Active le système de filtrage
showSearch: true, // Barre de recherche
showTypeFilter: true, // Filtre par type de passage
showPaymentFilter: true, // Filtre par mode de paiement
showSectorFilter: true, // Filtre par secteur géographique
showUserFilter: true, // Filtre par membre (admin uniquement)
showPeriodFilter: true, // Filtre par période temporelle
// Données pour les filtres
sectors: _sectors, // Liste des secteurs disponibles
members: users, // Liste des membres (pour admin)
// Valeurs initiales
initialSectorId: selectedSectorId,
initialUserId: selectedUserId,
initialPeriod: 'Toutes',
dateRange: selectedDateRange,
// Callback de synchronisation
onFiltersChanged: (filters) {
setState(() {
// Synchronisation avec l'état parent
selectedSectorId = filters['sectorId'];
selectedPeriod = filters['period'];
// ...
});
},
)
```
**Avantages de la centralisation :**
- **Code unique** : Plus de duplication entre les pages
- **Configuration flexible** : Chaque page active uniquement les filtres pertinents
- **Interface cohérente** : Même expérience utilisateur partout
- **Maintenance simplifiée** : Modifications centralisées
- **Responsive automatique** : Adaptation desktop/mobile gérée par le widget
#### 🔄 Flux conditionnel des clics sur passages
Le widget implémente un comportement intelligent lors du clic sur un passage :
@@ -1606,7 +1655,7 @@ Future<bool> saveOperationFromModel(OperationModel operation) async {
- **🎨 UX** : Fermeture automatique et messages appropriés
- **🔧 Maintenance** : Architecture cohérente et prévisible
Cette approche **"Dialog Auto-Gérée"** constitue un pattern architectural clé de GEOSECTOR v2.0, garantissant une expérience utilisateur fluide et un code maintenable. 🎉
Cette approche **"Dialog Auto-Gérée"** constitue un pattern architectural clé de GEOSECTOR v3.x, garantissant une expérience utilisateur fluide et un code maintenable. 🎉
## Fonction de création d'une opération
@@ -1729,7 +1778,89 @@ Cette architecture garantit une synchronisation robuste et performante lors de l
## 📝 Changelog
### v2.1 (Janvier 2025)
### v3.2.4 (04 Septembre 2025)
#### **Optimisations et corrections**
- 🐛 **Correction du PassagesListWidget dans user_dashboard_home_page**
- Suppression de la hauteur fixe pour éviter le rectangle gris
- Affichage des 20 derniers passages sans scrolling interne
- Utilisation du scrolling de la page principale uniquement
- 🧹 **Nettoyage du code**
- Suppression des méthodes non utilisées (_formatDate, _buildSimplePassageCard, _showPassageDetails)
- Amélioration de la structure des blocs if/else selon les bonnes pratiques
- Suppression des imports inutiles (intl)
- **Qualité du code**
- Flutter analyze : 0 erreur, 0 warning sur tous les fichiers modifiés
- Réduction globale de 65% des issues (de 493 à 171)
### v3.2.3 (03 Septembre 2025)
#### **Mise à jour des interfaces mobiles**
- 📱 **Améliorations de l'interface utilisateur**
- Optimisation des layouts pour mobiles et tablettes
- Amélioration de la réactivité des composants
- 🔧 **Corrections de bugs mineurs**
- Résolution des problèmes d'affichage sur certains appareils
- Amélioration des performances de rendu
### v3.2.2 (02 Septembre 2025)
#### **Centralisation des filtres dans PassagesListWidget**
- 🎯 **Refactoring majeur du système de filtrage**
- Tous les filtres déplacés dans PassagesListWidget (recherche, type, paiement, secteur, membre, période)
- Configuration flexible via paramètres booléens (`showTypeFilter`, `showPaymentFilter`, `showSectorFilter`, etc.)
- Suppression du code de filtrage dupliqué dans les pages parentes
- 🔧 **Nouveaux filtres avancés**
- Filtre par secteur avec liste déroulante
- Filtre par membre pour les pages admin
- Filtre par période avec options prédéfinies (24h, 48h, 7 jours, 15 jours, mois)
- Support des plages de dates personnalisées avec DateRangePicker
- 📱 **Interface responsive des filtres**
- Desktop : Filtres compacts sur 2 lignes maximum
- Mobile : Filtres empilés verticalement pour une meilleure ergonomie
- Recherche toujours en premier pour une accessibilité optimale
- 🔄 **Synchronisation des filtres**
- Callback `onFiltersChanged` pour synchroniser l'état avec les pages parentes
- Notification automatique des changements de filtres
- Persistance des sélections entre les navigations
- 📊 **Pages simplifiées**
- `admin_history_page.dart` : Suppression de 400+ lignes de code de filtrage dupliqué
- `user_history_page.dart` : Simplification avec activation sélective des filtres pertinents
- Maintenance facilitée avec une logique unique centralisée
- 🔧 **Correction des layouts**
- `admin_history_page.dart` : Utilisation d'Expanded au lieu de hauteur fixe (85%)
- Liste des passages s'étend maintenant jusqu'en bas de l'écran sur mobile
- 📝 **Amélioration des labels de filtres**
- "Tous les types" au lieu de "Tous"
- "Tous les règlements" au lieu de "Tous"
- "Toutes les périodes" au lieu de "Tous"
- Meilleure clarté pour l'utilisateur
### v3.2.1 (31 Août 2025)
#### **Build et déploiement**
- 🚀 **Publication sur Google Play Store**
- Build AAB (Android App Bundle) pour distribution optimisée
- Configuration des signatures et keystores
- Optimisation de la taille de l'application
- 🔧 **Corrections de bugs critiques**
- Fix des problèmes de compilation
- Résolution des dépendances obsolètes
- Amélioration de la stabilité générale
### v3.2.0 (30 Août 2025)
#### **Intégration Stripe Connect**
- 💳 **Système de paiement pour les amicales**
- Configuration Stripe Connect pour les comptes des amicales
- Interface de gestion des paiements
- Suivi des transactions et règlements
- 🏗 **Architecture de paiement**
- Intégration API Stripe
- Gestion sécurisée des tokens
- Workflow de paiement complet
### v3.1.0 (Juillet 2025)
#### **Interface utilisateur**
- 🎨 **Suppression des titres de pages** pour maximiser l'espace utile
@@ -1747,14 +1878,35 @@ Cette architecture garantit une synchronisation robuste et performante lors de l
- Tailles adaptées aux petits écrans
- Suppression des éléments superflus (icône refresh)
#### **Corrections de bugs**
- Fix backdrop persistant après fermeture de PassageFormDialog
- Fix contexte Navigator pour dialogs (rootNavigator: false)
- Fix responsive des titres sur petits écrans
### v3.0.0 (Juin 2025)
### v2.0 (Décembre 2024)
- 🏗 Architecture moderne sans Provider
- 💾 Optimisation cache Hive
- 🔐 Normes NIST pour les identifiants
- 📊 Système de logging intelligent
- 🎯 Pattern Dialog Auto-Gérée
#### **Refonte architecturale majeure**
- 🏗 **Architecture moderne sans Provider**
- Migration vers l'injection de dépendances
- Repositories singleton avec instances globales
- Suppression complète de Provider/Bloc
- 💾 **Optimisation cache Hive**
- Stratégie de cache pour éliminer les vérifications répétées
- Performance améliorée de 99% sur les opérations de liste
- Gestion intelligente du cache avec reset après modifications
- 🔐 **Normes NIST SP 800-63B pour les identifiants**
- Support des phrases de passe
- Acceptation de tous les caractères Unicode
- Vérification contre les bases de mots de passe compromis
- 📊 **Système de logging intelligent**
- LoggerService centralisé avec détection d'environnement
- Logs désactivés automatiquement en production
- Catégorisation avec emojis automatiques
- 🎯 **Pattern Dialog Auto-Gérée**
- Dialogs responsables de leur propre cycle de vie
- Auto-fermeture sur succès
- Gestion d'erreurs centralisée dans la dialog
### v2.x (2024 - Début 2025)
#### **Versions de développement initial**
- Base de l'architecture Flutter
- Mise en place des modèles Hive
- Intégration des cartes Mapbox/OpenStreetMap
- Système de chat MQTT
- Gestion des rôles et permissions