- Configuration complète Stripe pour les 3 environnements (DEV/REC/PROD) * DEV: Clés TEST Pierre (mode test) * REC: Clés TEST Client (mode test) * PROD: Clés LIVE Client (mode live) - Ajout de la gestion des bases de données immeubles/bâtiments * Configuration buildings_database pour DEV/REC/PROD * Service BuildingService pour enrichissement des adresses - Optimisations pages et améliorations ergonomie - Mises à jour des dépendances Composer - Nettoyage des fichiers obsolètes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
210 lines
11 KiB
Markdown
210 lines
11 KiB
Markdown
# 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_
|