feat: updated container management system with core models, providers, and UI pages
This commit is contained in:
@@ -29,6 +29,7 @@ class EquipmentProvider extends ChangeNotifier {
|
||||
String _searchQuery = '';
|
||||
bool _isLoading = false;
|
||||
bool _isInitialized = false;
|
||||
bool _isFullListLoaded = false;
|
||||
|
||||
// Mode de chargement (pagination vs full)
|
||||
bool _usePagination = false;
|
||||
@@ -48,6 +49,7 @@ class EquipmentProvider extends ChangeNotifier {
|
||||
bool get isLoadingMore => _isLoadingMore;
|
||||
bool get hasMore => _hasMore;
|
||||
bool get isInitialized => _isInitialized;
|
||||
bool get isFullListLoaded => _isFullListLoaded;
|
||||
bool get usePagination => _usePagination;
|
||||
|
||||
/// S'assure que les équipements sont chargés (charge si nécessaire)
|
||||
@@ -58,16 +60,8 @@ class EquipmentProvider extends ChangeNotifier {
|
||||
return;
|
||||
}
|
||||
|
||||
// Si initialisé MAIS _equipment est vide, forcer le rechargement
|
||||
if (_isInitialized && _equipment.isEmpty) {
|
||||
print('[EquipmentProvider] Equipment marked as initialized but _equipment is empty! Force reloading...');
|
||||
_isInitialized = false; // Réinitialiser le flag
|
||||
await loadEquipments();
|
||||
return;
|
||||
}
|
||||
|
||||
// Si déjà initialisé avec des données, ne rien faire
|
||||
if (_isInitialized) {
|
||||
// Si déjà initialisé avec le cache complet des données, ne rien faire
|
||||
if (_isFullListLoaded) {
|
||||
print('[EquipmentProvider] Equipment already loaded (${_equipment.length} items), skipping...');
|
||||
return;
|
||||
}
|
||||
@@ -120,7 +114,7 @@ class EquipmentProvider extends ChangeNotifier {
|
||||
|
||||
// Extraire les modèles et marques uniques
|
||||
_extractUniqueValues();
|
||||
|
||||
_isFullListLoaded = true;
|
||||
_isInitialized = true;
|
||||
_isLoading = false;
|
||||
notifyListeners();
|
||||
@@ -436,6 +430,8 @@ class EquipmentProvider extends ChangeNotifier {
|
||||
Future<void> deleteEquipment(String equipmentId, {bool forceDelete = false}) async {
|
||||
try {
|
||||
await _dataService.deleteEquipment(equipmentId, forceDelete: forceDelete);
|
||||
_isFullListLoaded = false;
|
||||
_equipment.clear();
|
||||
if (_usePagination) {
|
||||
await reload();
|
||||
} else {
|
||||
@@ -451,6 +447,8 @@ class EquipmentProvider extends ChangeNotifier {
|
||||
Future<void> addEquipment(EquipmentModel equipment) async {
|
||||
try {
|
||||
await _dataService.createEquipment(equipment.id, equipment.toMap());
|
||||
_isFullListLoaded = false;
|
||||
_equipment.clear();
|
||||
if (_usePagination) {
|
||||
await reload();
|
||||
} else {
|
||||
@@ -466,6 +464,8 @@ class EquipmentProvider extends ChangeNotifier {
|
||||
Future<void> updateEquipment(EquipmentModel equipment) async {
|
||||
try {
|
||||
await _dataService.updateEquipment(equipment.id, equipment.toMap());
|
||||
_isFullListLoaded = false;
|
||||
_equipment.clear();
|
||||
if (_usePagination) {
|
||||
await reload();
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user