Improve task feedback and show scheduled tasks to directors

Replace alerts with toast notifications for task operations and grant directors visibility into scheduled tasks, previously only visible to admins.

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/IUKNI3f
This commit is contained in:
michaelschal committed 2025-08-19 11:35:36 +00:00
1 parent 90480201ee
commit f407cdceb7
2 files changed
+38 -7

No files matched your search

+18 -3
View File
@@ -1612,7 +1612,7 @@ export class DatabaseStorage implements IStorage {
)
);
}
// Admin et directeur voient toutes les tâches (pas de filtre additionnel)
// Admin et directeur voient toutes les tâches, y compris les tâches programmées
if (whereConditions.length > 0) {
query = query.where(and(...whereConditions));
@@ -2950,17 +2950,32 @@ export class MemStorage implements IStorage {
};
}
async getTasks(groupIds?: number[]): Promise<TaskWithRelations[]> {
async getTasks(groupIds?: number[], userRole?: string): Promise<TaskWithRelations[]> {
const today = new Date();
today.setHours(0, 0, 0, 0);
let tasks = Array.from(this.tasks.values());
if (groupIds && groupIds.length > 0) {
tasks = tasks.filter(task => groupIds.includes(task.groupId));
}
// Filtrage par rôle pour la date de départ
if (userRole === 'manager' || userRole === 'employee') {
// Managers et employés : seulement les tâches dont la date de départ est atteinte ou passée
tasks = tasks.filter(task => {
if (!task.startDate) return true; // Tâches sans date de départ (toujours visibles)
const startDate = new Date(task.startDate);
return startDate <= today; // Tâches dont la date de départ est arrivée
});
}
// Admin et directeur voient toutes les tâches, y compris les tâches programmées
return tasks.map(task => ({
...task,
group: this.groups.get(task.groupId)!,
creator: this.users.get(task.createdBy)!
creator: this.users.get(task.createdBy)!,
isFutureTask: task.startDate ? new Date(task.startDate) > today : false
}));
}