docs: Marquer les tâches #76 et le bug de purge Hive comme terminés
Tâche #76: Accès admin limité web uniquement - ✅ Terminé 26/01 Bug: Boxes Hive non purgées à la connexion - ✅ Corrigé 26/01 Corrections aujourd'hui: - #15: Nouveau membre non synchronisé (sécurité + sync + API) - #76: Accès admin limité web uniquement - Bug: Nettoyage automatique des boxes Hive à la connexion - Optimisation: operation_id en session (évite requêtes SQL)
This commit is contained in:
@@ -1172,7 +1172,7 @@
|
|||||||
"languageVersion": "3.0"
|
"languageVersion": "3.0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"generated": "2026-01-26T16:20:37.426166Z",
|
"generated": "2026-01-26T16:39:01.556621Z",
|
||||||
"generator": "pub",
|
"generator": "pub",
|
||||||
"generatorVersion": "3.5.4",
|
"generatorVersion": "3.5.4",
|
||||||
"flutterRoot": "file:///opt/flutter",
|
"flutterRoot": "file:///opt/flutter",
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
|||||||
// ⚠️ AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
|
// ⚠️ AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
|
||||||
// This file is automatically generated by deploy-app.sh script
|
// This file is automatically generated by deploy-app.sh script
|
||||||
// Last update: 2026-01-26 17:20:35
|
// Last update: 2026-01-26 17:39:00
|
||||||
// Source: ../VERSION file
|
// Source: ../VERSION file
|
||||||
//
|
//
|
||||||
// GEOSECTOR App Version Service
|
// GEOSECTOR App Version Service
|
||||||
@@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
class AppInfoService {
|
class AppInfoService {
|
||||||
// Version number (format: YY.MM.DDNN - auto-incremented on each DEV deploy)
|
// Version number (format: YY.MM.DDNN - auto-incremented on each DEV deploy)
|
||||||
static const String version = '26.01.2606';
|
static const String version = '26.01.2607';
|
||||||
|
|
||||||
// Build number (version without dots: YYMMDDNN)
|
// Build number (version without dots: YYMMDDNN)
|
||||||
static const String buildNumber = '26012606';
|
static const String buildNumber = '26012607';
|
||||||
|
|
||||||
// Full version string (format: vYY.MM.DDNN+YYMMDDNN)
|
// Full version string (format: vYY.MM.DDNN+YYMMDDNN)
|
||||||
static String get fullVersion => 'v$version+$buildNumber';
|
static String get fullVersion => 'v$version+$buildNumber';
|
||||||
|
|||||||
@@ -42,14 +42,19 @@ class DataLoadingService extends ChangeNotifier {
|
|||||||
// Chat boxes removed - handled by new chat module
|
// Chat boxes removed - handled by new chat module
|
||||||
|
|
||||||
/// Traite toutes les données reçues de l'API lors du login
|
/// Traite toutes les données reçues de l'API lors du login
|
||||||
/// Les boxes sont déjà propres, on charge juste les données
|
/// Nettoie d'abord les boxes puis charge les nouvelles données
|
||||||
Future<void> processLoginData(Map<String, dynamic> apiResult) async {
|
Future<void> processLoginData(Map<String, dynamic> apiResult) async {
|
||||||
try {
|
try {
|
||||||
debugPrint('📊 Début du chargement des données (boxes déjà propres)...');
|
debugPrint('📊 Début du chargement des données...');
|
||||||
|
|
||||||
// Vérifier que les boxes sont ouvertes
|
// Vérifier que les boxes sont ouvertes
|
||||||
_verifyBoxesAreOpen();
|
_verifyBoxesAreOpen();
|
||||||
|
|
||||||
|
// Nettoyer les boxes AVANT de charger les nouvelles données
|
||||||
|
// Cela évite que les données d'un ancien utilisateur persistent
|
||||||
|
await _clearAllDataBoxes();
|
||||||
|
debugPrint('🧹 Boxes nettoyées pour le nouvel utilisateur');
|
||||||
|
|
||||||
// Charger les données directement (les boxes sont vides et propres)
|
// Charger les données directement (les boxes sont vides et propres)
|
||||||
if (apiResult['clients'] != null) {
|
if (apiResult['clients'] != null) {
|
||||||
await _processClients(apiResult['clients']);
|
await _processClients(apiResult['clients']);
|
||||||
@@ -111,6 +116,31 @@ class DataLoadingService extends ChangeNotifier {
|
|||||||
debugPrint('✅ Toutes les boîtes requises sont ouvertes');
|
debugPrint('✅ Toutes les boîtes requises sont ouvertes');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Nettoie les boxes de données utilisateur lors d'une nouvelle connexion
|
||||||
|
/// Ne touche PAS aux requêtes en attente (pendingRequests) pour la sync hors ligne
|
||||||
|
Future<void> _clearAllDataBoxes() async {
|
||||||
|
try {
|
||||||
|
debugPrint('🧹 Nettoyage des boxes de données utilisateur...');
|
||||||
|
|
||||||
|
// Vider toutes les boxes de données métier
|
||||||
|
await _operationBox.clear();
|
||||||
|
await _sectorBox.clear();
|
||||||
|
await _passageBox.clear();
|
||||||
|
await _membreBox.clear();
|
||||||
|
await _userSectorBox.clear();
|
||||||
|
await _amicaleBox.clear();
|
||||||
|
|
||||||
|
// Ne PAS toucher aux boxes suivantes:
|
||||||
|
// - pendingRequests (requêtes en attente de sync)
|
||||||
|
// - users (géré par CurrentUserService)
|
||||||
|
|
||||||
|
debugPrint('✅ Boxes de données nettoyées');
|
||||||
|
} catch (e) {
|
||||||
|
debugPrint('❌ Erreur lors du nettoyage des boxes: $e');
|
||||||
|
rethrow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Nettoie complètement toutes les données lors du logout
|
/// Nettoie complètement toutes les données lors du logout
|
||||||
Future<void> cleanDataAfterLogout() async {
|
Future<void> cleanDataAfterLogout() async {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ FLUTTER_ROOT=/opt/flutter
|
|||||||
FLUTTER_APPLICATION_PATH=/home/pierre/dev/geosector/app
|
FLUTTER_APPLICATION_PATH=/home/pierre/dev/geosector/app
|
||||||
COCOAPODS_PARALLEL_CODE_SIGN=true
|
COCOAPODS_PARALLEL_CODE_SIGN=true
|
||||||
FLUTTER_BUILD_DIR=build
|
FLUTTER_BUILD_DIR=build
|
||||||
FLUTTER_BUILD_NAME=26.01.2606
|
FLUTTER_BUILD_NAME=26.01.2607
|
||||||
FLUTTER_BUILD_NUMBER=26012606
|
FLUTTER_BUILD_NUMBER=26012607
|
||||||
DART_OBFUSCATION=false
|
DART_OBFUSCATION=false
|
||||||
TRACK_WIDGET_CREATION=true
|
TRACK_WIDGET_CREATION=true
|
||||||
TREE_SHAKE_ICONS=false
|
TREE_SHAKE_ICONS=false
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ export "FLUTTER_ROOT=/opt/flutter"
|
|||||||
export "FLUTTER_APPLICATION_PATH=/home/pierre/dev/geosector/app"
|
export "FLUTTER_APPLICATION_PATH=/home/pierre/dev/geosector/app"
|
||||||
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
|
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
|
||||||
export "FLUTTER_BUILD_DIR=build"
|
export "FLUTTER_BUILD_DIR=build"
|
||||||
export "FLUTTER_BUILD_NAME=26.01.2606"
|
export "FLUTTER_BUILD_NAME=26.01.2607"
|
||||||
export "FLUTTER_BUILD_NUMBER=26012606"
|
export "FLUTTER_BUILD_NUMBER=26012607"
|
||||||
export "DART_OBFUSCATION=false"
|
export "DART_OBFUSCATION=false"
|
||||||
export "TRACK_WIDGET_CREATION=true"
|
export "TRACK_WIDGET_CREATION=true"
|
||||||
export "TREE_SHAKE_ICONS=false"
|
export "TREE_SHAKE_ICONS=false"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
name: geosector_app
|
name: geosector_app
|
||||||
description: 'GEOSECTOR - Gestion de distribution des calendriers par secteurs géographiques pour les amicales de pompiers'
|
description: 'GEOSECTOR - Gestion de distribution des calendriers par secteurs géographiques pour les amicales de pompiers'
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
version: 26.01.2606+26012606
|
version: 26.01.2607+26012607
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.0.0 <4.0.0'
|
sdk: '>=3.0.0 <4.0.0'
|
||||||
|
|||||||
@@ -94,7 +94,7 @@
|
|||||||
| Date | ID | Tâche | Cat | Statut |
|
| Date | ID | Tâche | Cat | Statut |
|
||||||
|-------|------|-------------------------------------|--------|--------|
|
|-------|------|-------------------------------------|--------|--------|
|
||||||
| 15/02 | `#80` | FAQ gérée depuis Super-Admin | ADMIN | |
|
| 15/02 | `#80` | FAQ gérée depuis Super-Admin | ADMIN | |
|
||||||
| 15/02 | `#76` | Accès admin limité web uniquement | ADMIN | |
|
| 15/02 | `#76` | ✅ Accès admin limité web uniquement | ADMIN | ✅ Terminé 26/01 |
|
||||||
| 15/02 | `#82` | Optimiser purge données | ADMIN | |
|
| 15/02 | `#82` | Optimiser purge données | ADMIN | |
|
||||||
| 16/02 | `#83` | Filtres liste amicales | ADMIN | |
|
| 16/02 | `#83` | Filtres liste amicales | ADMIN | |
|
||||||
| 16/02 | `#85` | Distinguer amicales actives | ADMIN | |
|
| 16/02 | `#85` | Distinguer amicales actives | ADMIN | |
|
||||||
|
|||||||
Reference in New Issue
Block a user