fix(event): dates no longer break when editing event

This commit is contained in:
ElPoyo
2026-06-15 15:28:52 +02:00
parent f32fe3e4e8
commit 3c49d6ed21
14 changed files with 105 additions and 29 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
/// Configuration de la version de l'application
class AppVersion {
static const String version = '1.2.8';
static const String version = '1.2.10';
/// Retourne la version complète de l'application
static String get fullVersion => 'v$version';
+1 -1
View File
@@ -154,7 +154,7 @@ class AlertModel {
DateTime parseDate(dynamic value) {
if (value == null) return DateTime.now();
if (value is Timestamp) return value.toDate();
if (value is String) return DateTime.tryParse(value) ?? DateTime.now();
if (value is String) return DateTime.tryParse(value)?.toLocal() ?? DateTime.now();
return DateTime.now();
}
+2 -2
View File
@@ -254,7 +254,7 @@ class ContainerModel {
DateTime? parseDate(dynamic value) {
if (value == null) return null;
if (value is Timestamp) return value.toDate();
if (value is String) return DateTime.tryParse(value);
if (value is String) return DateTime.tryParse(value)?.toLocal();
if (value is int) return DateTime.fromMillisecondsSinceEpoch(value);
return null;
}
@@ -375,7 +375,7 @@ class ContainerHistoryEntry {
DateTime parseDate(dynamic value) {
if (value == null) return DateTime.now();
if (value is Timestamp) return value.toDate();
if (value is String) return DateTime.tryParse(value) ?? DateTime.now();
if (value is String) return DateTime.tryParse(value)?.toLocal() ?? DateTime.now();
if (value is int) return DateTime.fromMillisecondsSinceEpoch(value);
return DateTime.now();
}
+1 -1
View File
@@ -407,7 +407,7 @@ class EquipmentModel {
DateTime? parseDate(dynamic value) {
if (value == null) return null;
if (value is Timestamp) return value.toDate();
if (value is String) return DateTime.tryParse(value);
if (value is String) return DateTime.tryParse(value)?.toLocal();
if (value is int) return DateTime.fromMillisecondsSinceEpoch(value);
return null;
}
+1 -1
View File
@@ -356,7 +356,7 @@ class EventModel {
DateTime parseDate(dynamic value, DateTime defaultValue) {
if (value == null) return defaultValue;
if (value is Timestamp) return value.toDate();
if (value is String) return DateTime.tryParse(value) ?? defaultValue;
if (value is String) return DateTime.tryParse(value)?.toLocal() ?? defaultValue;
return defaultValue;
}
+1 -1
View File
@@ -18,7 +18,7 @@ class EventTypeModel {
DateTime parseCreatedAt(dynamic value) {
if (value == null) return DateTime.now();
if (value is Timestamp) return value.toDate();
if (value is String) return DateTime.tryParse(value) ?? DateTime.now();
if (value is String) return DateTime.tryParse(value)?.toLocal() ?? DateTime.now();
return DateTime.now();
}
+1 -1
View File
@@ -72,7 +72,7 @@ class MaintenanceModel {
DateTime? parseDate(dynamic value) {
if (value == null) return null;
if (value is Timestamp) return value.toDate();
if (value is String) return DateTime.tryParse(value);
if (value is String) return DateTime.tryParse(value)?.toLocal();
if (value is int) return DateTime.fromMillisecondsSinceEpoch(value);
return null;
}
+2 -2
View File
@@ -48,10 +48,10 @@ class FirebaseFunctionsApiService implements ApiService {
// Types Firestore
if (value is Timestamp) {
return value.toDate().toIso8601String();
return value.toDate().toUtc().toIso8601String();
}
if (value is DateTime) {
return value.toIso8601String();
return value.toUtc().toIso8601String();
}
if (value is DocumentReference) {
return value.path;
+2 -3
View File
@@ -104,9 +104,8 @@ class CalendarUtils {
static List<EventModel> getEventsForDay(
DateTime day, List<EventModel> events) {
final nextDay = day.add(const Duration(days: 1));
final dayStart = DateTime(day.year, day.month, day.day, 2, 0);
final dayEnd = DateTime(nextDay.year, nextDay.month, nextDay.day, 2, 59, 59);
final dayStart = DateTime(day.year, day.month, day.day, 0, 0, 0);
final dayEnd = DateTime(day.year, day.month, day.day, 23, 59, 59);
return events.where((event) {
return !(event.endDateTime.isBefore(dayStart) ||