feat: Add calendar page, enhance activity search and approval logic, and refactor activity filtering UI.

This commit is contained in:
Van Leemput Dayron
2025-11-26 12:15:13 +01:00
parent 258f10b42b
commit f7eeb7c6f1
11 changed files with 952 additions and 700 deletions

View File

@@ -20,6 +20,7 @@ class Activity {
final Map<String, int> votes; // userId -> vote (1 pour pour, -1 pour contre)
final DateTime createdAt;
final DateTime updatedAt;
final DateTime? date; // Date prévue pour l'activité
Activity({
required this.id,
@@ -40,6 +41,7 @@ class Activity {
this.votes = const {},
required this.createdAt,
required this.updatedAt,
this.date,
});
/// Calcule le score total des votes
@@ -104,6 +106,8 @@ class Activity {
Map<String, int>? votes,
DateTime? createdAt,
DateTime? updatedAt,
DateTime? date,
bool clearDate = false,
}) {
return Activity(
id: id ?? this.id,
@@ -124,6 +128,7 @@ class Activity {
votes: votes ?? this.votes,
createdAt: createdAt ?? this.createdAt,
updatedAt: updatedAt ?? this.updatedAt,
date: clearDate ? null : (date ?? this.date),
);
}
@@ -148,6 +153,7 @@ class Activity {
'votes': votes,
'createdAt': Timestamp.fromDate(createdAt),
'updatedAt': Timestamp.fromDate(updatedAt),
'date': date != null ? Timestamp.fromDate(date!) : null,
};
}
@@ -172,6 +178,7 @@ class Activity {
votes: Map<String, int>.from(map['votes'] ?? {}),
createdAt: (map['createdAt'] as Timestamp).toDate(),
updatedAt: (map['updatedAt'] as Timestamp).toDate(),
date: map['date'] != null ? (map['date'] as Timestamp).toDate() : null,
);
}