# TODO GEOSECTOR - Application Flutter ## 📋 Tâches à effectuer --- ## 🔥 RÉUNION CLIENT - 27/10/2025 ### 🔴 Bugs critiques iOS - [x] **iOS - Enregistrement passage bloqué** - Le clavier numérique du montant bloque l'enregistrement d'un passage ### 🔴 Bugs critiques Web - [ ] **Bug F5** - Corriger la déconnexion lors du rafraîchissement de la page (F5) ⚠️ - [ ] **Nouveau membre non synchronisé** - Un nouveau membre ne se retrouve pas dans l'opération active - [ ] **Création membre impossible** - Ne peut pas créer un membre - [ ] **Création opération impossible** - Ne peut pas créer une nouvelle opération : erreur ! - [ ] **Mot de passe non enregistré** - N'enregistre pas le mot de passe - [ ] **Export opération cassé** - Export de l'opération ne fonctionne plus - [ ] **Reçus PDF non fonctionnels** - Reçus PDF ne fonctionnent pas ### 🔴 Bugs critiques généraux - [ ] **Enregistrement des passages** - L'enregistrement d'un nouveau passage ne fonctionne pas correctement - [ ] **Création membre en double** - Bloquer l'enregistrement à 1 seul (plusieurs clics créent X membres en double) - [ ] **Requêtes en attente dupliquées** - Finaliser modifs sur les requêtes en attente : traitements effectués plusieurs fois !! - [ ] **Synchronisation bases de données** - Synchroniser les 2 bases rca_geo et pra_geo ! ### 📝 Formulaires - UX critique - [ ] **Bloquer boutons submit** - Dans toutes les forms bloquer le clic du bouton enregistrer dès qu'il est cliqué - [ ] **Ajouter spinner** - Mettre un spin pendant le traitement - [ ] **Messages clairs 3s** - Revoir les messages pour afficher clairement le message sur 3s ### 👥 Gestion des membres - [ ] **Trier liste membres** - Page amicale admin pouvoir trier la liste des membres - [ ] **Membres affectés en 1er** - Modif secteur : mettre les membres affectés en 1er - [ ] **Figer membres dans combobox** - Figer Tous les membres dans la liste de la combobox ? - [ ] **Autocomplete combobox membres** - Faire un autocomplete pour la combobox de membres - [ ] Ajouter des filtres sur la liste des membres dans "Amicale et membres" - [ ] Afficher les membres sélectionnés en haut de liste lors de modifications - [ ] Permettre la modification de l'identifiant utilisateur - [ ] Email non obligatoire si identifiant et mot de passe sont saisis manuellement - [ ] Améliorer les textes d'aide (helpers) dans les fiches membres ### 📊 Historique - [ ] **Onglets types de passage** - Ecran historique pour utilisateur : remettre des onglets pour les types de passage (comme ancienne version) - [ ] **Suppression lot de passages** - Sur Historique : liste des passages pouvoir supprimer tout un lot de passages - [ ] Historique en bas : 1-2 adresses seulement visibles, impossibilité de cliquer dessus ### 🏠 Page Home - [ ] **Home - Filtres et graphes** - Ecran home : mettre les filtres et les graphes - [ ] **Home - Figer headers tableau** - Sur Home : figer l'écran aux headers du tableau - [ ] **Home - Bouton export données** - Home_page : mettre le bouton exporter les données - [ ] **Home - Export par membre** - Ajouter un export par membre ### 🗺️ Carte et géolocalisation - [ ] **Secteur sans membre** - Map : secteur peut être créé sans membre - [ ] **Modifier secteur au clic** - Clic sur un secteur pour modifier sa couleur et les affectations - [ ] **Déplacer markers** - Carte pouvoir déplacer un marker en double-cliquant sur le marker pour le déplacer - [x] **Immeubles groupés** - Un seul point sur la carte carré avec le nombre d'appartements et cliquer dessus pour avoir la liste des appartements/passages avec la même adresse par niveau - [ ] **Couleur markers à finaliser** - Sur la version actuelle : changer la couleur des markers de type passage à finaliser comme nouvelle version - [ ] Définir un zoom maximal pour éviter le sur-zoom - [ ] Étudier l'utilisation d'un style de carte type Snapchat - [ ] Optimiser la précision et la fiabilité du GPS en mode terrain - [ ] Mode Web utilisateur : impossible de se déplacer sur la carte en mode terrain (retour automatique à la position) - [ ] Mode terrain smartphone : carte trop petite, le zoom revient automatiquement - [ ] Points de carte affichés devant les textes (z-index) - [ ] Listing des rues invisible (le clavier se met devant) - [ ] Recherche de rue : ne trouve pas si pas à proximité même si la rue est dans le secteur - [ ] Carte en mode utilisateur : évaluer la possibilité de valider un passage directement depuis la carte #### ⚡ Performance map_page.dart - [x] **Analyse surcharge CPU** - Ventilation importante du PC lorsque la page carte reste affichée sans interaction - **Sources identifiées et corrigées** : - ✅ **ActivityChart** : Suppression des debugPrint massifs (passages type 2 sans date) - ✅ **ValueListenableBuilder boucle infinie** : addPostFrameCallback + setState en boucle - Solution : Ajout méthode `_arePassagesEqual()` pour comparer avant setState - Ne déclenche setState QUE si les IDs de passages ont changé - ✅ **Logs de debug** : Ajout de traces 🔄 pour identifier les appels en boucle - **Résultat** : - Plus de boucle infinie de rebuilds - Mise à jour unitaire des markers conservée (réactivité OK) - Performance Web desktop restaurée - **Fichiers modifiés** : - `lib/presentation/widgets/charts/activity_chart.dart` (ligne 272-276) - `lib/presentation/pages/map_page.dart` (lignes 405, 416-425) - Statut : ✅ Résolu - Date : 08/11/2025 ### 📋 Gestion des passages - [ ] **Corbeille passages** - Pouvoir sauvegarder les passages supprimés pour pouvoir les représenter à l'admin, et si modif passages pouvoir chercher toutes les adresses et ensuite supprimer ces passages supprimés sauvegardés - [ ] Désactiver temporairement l'envoi de reçu (ne doit pas encore être actif) - [ ] Permettre la suppression de plusieurs passages en une seule fois - [ ] Implémenter la possibilité de récupérer des passages supprimés (corbeille/historique) - [ ] Corriger l'affichage du règlement par chèque qui n'apparaît pas dans le graphe pie ### 📈 Graphiques et statistiques - [ ] **Graphique règlements par secteur** - Graphique de répartition des règlements par secteur - [ ] **Comparatif année précédente** - Connexions : créer un comparatif année précédente ### 🔧 Opérations - [ ] **Bloquer création opération** - Sur operations+ bloquer la création d'une opération une seule fois - [ ] **Renommer operations+** - Renommer operations+ par "opérations" ### 💬 Module de messagerie / Chat - [ ] **Revoir chat complet** - Le chat à revoir côté admin et utilisateur - [ ] Améliorer la visibilité du bouton "Envoyer un message" - [ ] Augmenter l'épaisseur de la police pour une meilleure lisibilité ### 🔐 Authentification et sécurité - [ ] **Reconnaissance biométrique** - Authentification par Face ID / Touch ID / Empreinte digitale - [ ] Ajouter packages `local_auth` et `flutter_secure_storage` - [ ] Créer service `BiometricAuthService` pour gérer l'authentification - [ ] Stocker credentials de manière sécurisée (Keychain iOS / Keystore Android) - [ ] Ajouter option "Activer connexion biométrique" dans les paramètres utilisateur - [ ] Vérifier disponibilité biométrique au démarrage (canCheckBiometrics) - [ ] Implémenter fallback mot de passe si échec biométrique - [ ] Ajouter toggle dans écran de connexion pour activer/désactiver - [ ] Tester sur iOS (Face ID + Touch ID) et Android (Empreinte) - Temps estimé : 1-2 jours - Priorité : Moyenne (confort utilisateur mobile) ### 🏗️ Architecture et refactoring - [ ] Simplifier l'architecture DashboardLayout et AppScaffold (actuellement redondants) - [ ] Refactoriser pour séparer clairement les responsabilités (fond, navigation, restrictions d'accès) ### 🔐 Restrictions d'accès - [ ] L'accès administrateur doit être limité au web uniquement (pas sur mobile) - [ ] Permettre à un utilisateur de choisir son rôle (admin/membre) à la connexion - [ ] Un admin (fkRole==2) doit pouvoir se connecter en tant qu'utilisateur également ### 👑 Mode Super Admin - [ ] **FAQ gérée depuis Super-Admin** - FAQ dans le site Web gérée depuis l'application web Super-Admin - [ ] Corriger le ralentissement après 3 suppressions d'amicales consécutives - [ ] Optimiser le processus de purge des données - [ ] Ajouter des filtres sur la liste des amicales - [ ] Implémenter un mode démo pour les présentations - [ ] Distinguer visuellement les amicales actives (ayant réglé) des autres - [ ] Si suppression de l'opération active, réactiver automatiquement l'opération précédente ### 🏢 Gestion Clients - [ ] **Ecran Clients** - Ecran Clients à créer/améliorer - [ ] **Page clients paiements en ligne** - Page clients avec paiements en ligne ### 📧 Processus d'inscription - [ ] Envoyer 2 emails séparés lors de l'inscription (Email 1: identifiant, Email 2: mot de passe) ### 💳 Stripe - [ ] **Double configuration Stripe** - Configuration Stripe : 2x configuration Stripe - [ ] Intégrer la gestion du paiement en ligne directement dans le formulaire de passage - [ ] Détection automatique du statut Stripe de l'amicale - [ ] Option "Paiement par carte" dans les modes de règlement - [ ] Interface de paiement sécurisée intégrée - [ ] Génération automatique du reçu après paiement - [ ] Étudier les possibilités de paiement Stripe en mode hors ligne - [ ] Mettre en place un environnement de test pour Tap to Pay - [ ] Documenter la procédure de test pour Tap to Pay - [ ] Vérifier la compatibilité des appareils de test disponibles - [x] **Paiement par QRcode (Option 1 - Payment Links)** ⭐⭐ - [x] Ajouter package `qr_flutter` au `pubspec.yaml` - [x] Créer endpoint backend `/api/stripe/payment-links` - [x] Créer widget Flutter `QRCodePaymentDialog` avec génération QR - [x] Créer widget `PaymentMethodSelectionDialog` pour choisir QRcode ou Tap to Pay - [x] Ajouter champs `stripe_payment_link_id` et `stripe_payment_link_url` dans passages (Flutter) - [x] Icône QR code cliquable dans la liste des passages pour ré-afficher le QR - [x] Sauvegarde automatique de l'URL du Payment Link après création - [ ] **Backend SQL** : Ajouter `stripe_payment_link_url` VARCHAR(255) dans table `ope_pass` - [ ] Implémenter webhook backend pour confirmation paiement et update passage - [ ] Tests complets sur Web et Mobile (Android/iOS) - Temps total : 1 jour (frontend complet, backend SQL + webhook reste à faire) ### 🚀 Déploiement et migration - [x] **Migrer Poissy en Prod** - Migrer Poissy sur la Prod ### 🧪 Tests - [ ] **Tests multi-départements** - Tests sur secteurs sur 2 départements ### 🌍 Internationalization - [ ] **Devises multiples** - Devises doubles à gérer pour le Franc Suisse ### 📡 Fonctionnalités futures prioritaires - [ ] **MQTT temps réel** - MQTT pour le chat et les updates d'infos vers l'admin et les utilisateurs ⭐⭐⭐ - [ ] **SMS impératif** - SMS à mettre en place impérativement ! ⭐⭐⭐ --- _Dernière mise à jour : 27 octobre 2025 - Réunion client intégrée_