mirror of
https://github.com/R0m1k3/LogiFlow.git
synced 2026-10-11 17:27:31 +02:00
Improve task management by handling date errors and ensuring data integrity
Implement robust error handling and data validation for task dates and properties in both frontend and backend to resolve production issues. Replit-Commit-Author: Agent Replit-Commit-Session-Id: cc2d271b-82f0-4d6a-9302-a0b067ffb429 Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/cc2d271b-82f0-4d6a-9302-a0b067ffb429/0taewQN
This commit is contained in:
1 parent
aa1906a9bb
commit
0d863da97e
7 files changed
+765
-56
No files matched your search
+44
-6
@@ -1619,12 +1619,50 @@ export class DatabaseStorage implements IStorage {
|
||||
}
|
||||
|
||||
const results = await query.orderBy(desc(tasks.createdAt));
|
||||
return results.map((row: any) => ({
|
||||
...row.task,
|
||||
group: row.group,
|
||||
// Ajouter le statut "future" pour les tâches futures (admin/directeur)
|
||||
isFutureTask: row.task.startDate && new Date(row.task.startDate) > today
|
||||
}));
|
||||
|
||||
console.log('📋 DatabaseStorage.getTasks - Raw results:', {
|
||||
resultCount: results.length,
|
||||
userRole,
|
||||
sampleTasks: results.slice(0, 2).map(r => ({
|
||||
taskExists: !!r.task,
|
||||
taskId: r.task?.id,
|
||||
title: r.task?.title,
|
||||
startDate: r.task?.startDate,
|
||||
groupExists: !!r.group
|
||||
}))
|
||||
});
|
||||
|
||||
return results
|
||||
.filter((row: any) => row.task) // Filtrer les tâches nulles
|
||||
.map((row: any) => {
|
||||
try {
|
||||
const task = row.task;
|
||||
const group = row.group || null;
|
||||
|
||||
// Calculer si la tâche est future de manière sécurisée
|
||||
let isFutureTask = false;
|
||||
if (task.startDate) {
|
||||
try {
|
||||
const startDate = new Date(task.startDate);
|
||||
if (!isNaN(startDate.getTime())) {
|
||||
isFutureTask = startDate > today;
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn('Error parsing startDate:', error, task.startDate);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
...task,
|
||||
group,
|
||||
isFutureTask
|
||||
};
|
||||
} catch (error) {
|
||||
console.error('Error processing task row:', error, row);
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.filter(Boolean);
|
||||
}
|
||||
|
||||
async getTask(id: number): Promise<TaskWithRelations | undefined> {
|
||||
|
||||
Reference in new issue
Block a user