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"
|
||||
}
|
||||
],
|
||||
"generated": "2026-01-26T16:20:37.426166Z",
|
||||
"generated": "2026-01-26T16:39:01.556621Z",
|
||||
"generator": "pub",
|
||||
"generatorVersion": "3.5.4",
|
||||
"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
|
||||
// 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
|
||||
//
|
||||
// GEOSECTOR App Version Service
|
||||
@@ -8,10 +8,10 @@
|
||||
|
||||
class AppInfoService {
|
||||
// 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)
|
||||
static const String buildNumber = '26012606';
|
||||
static const String buildNumber = '26012607';
|
||||
|
||||
// Full version string (format: vYY.MM.DDNN+YYMMDDNN)
|
||||
static String get fullVersion => 'v$version+$buildNumber';
|
||||
|
||||
@@ -42,14 +42,19 @@ class DataLoadingService extends ChangeNotifier {
|
||||
// Chat boxes removed - handled by new chat module
|
||||
|
||||
/// 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 {
|
||||
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
|
||||
_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)
|
||||
if (apiResult['clients'] != null) {
|
||||
await _processClients(apiResult['clients']);
|
||||
@@ -111,6 +116,31 @@ class DataLoadingService extends ChangeNotifier {
|
||||
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
|
||||
Future<void> cleanDataAfterLogout() async {
|
||||
try {
|
||||
|
||||
@@ -3,8 +3,8 @@ FLUTTER_ROOT=/opt/flutter
|
||||
FLUTTER_APPLICATION_PATH=/home/pierre/dev/geosector/app
|
||||
COCOAPODS_PARALLEL_CODE_SIGN=true
|
||||
FLUTTER_BUILD_DIR=build
|
||||
FLUTTER_BUILD_NAME=26.01.2606
|
||||
FLUTTER_BUILD_NUMBER=26012606
|
||||
FLUTTER_BUILD_NAME=26.01.2607
|
||||
FLUTTER_BUILD_NUMBER=26012607
|
||||
DART_OBFUSCATION=false
|
||||
TRACK_WIDGET_CREATION=true
|
||||
TREE_SHAKE_ICONS=false
|
||||
|
||||
@@ -4,8 +4,8 @@ export "FLUTTER_ROOT=/opt/flutter"
|
||||
export "FLUTTER_APPLICATION_PATH=/home/pierre/dev/geosector/app"
|
||||
export "COCOAPODS_PARALLEL_CODE_SIGN=true"
|
||||
export "FLUTTER_BUILD_DIR=build"
|
||||
export "FLUTTER_BUILD_NAME=26.01.2606"
|
||||
export "FLUTTER_BUILD_NUMBER=26012606"
|
||||
export "FLUTTER_BUILD_NAME=26.01.2607"
|
||||
export "FLUTTER_BUILD_NUMBER=26012607"
|
||||
export "DART_OBFUSCATION=false"
|
||||
export "TRACK_WIDGET_CREATION=true"
|
||||
export "TREE_SHAKE_ICONS=false"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
name: geosector_app
|
||||
description: 'GEOSECTOR - Gestion de distribution des calendriers par secteurs géographiques pour les amicales de pompiers'
|
||||
publish_to: 'none'
|
||||
version: 26.01.2606+26012606
|
||||
version: 26.01.2607+26012607
|
||||
|
||||
environment:
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
| Date | ID | Tâche | Cat | Statut |
|
||||
|-------|------|-------------------------------------|--------|--------|
|
||||
| 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 | |
|
||||
| 16/02 | `#83` | Filtres liste amicales | ADMIN | |
|
||||
| 16/02 | `#85` | Distinguer amicales actives | ADMIN | |
|
||||
|
||||
Reference in New Issue
Block a user