From 0a7c0a8367db3a9e83f85a24793f332f87271649 Mon Sep 17 00:00:00 2001 From: Omar Abou Selo Date: Wed, 17 Jul 2024 17:04:12 +0300 Subject: [PATCH] Add artefact due date filters (#190) * Add artefact due date filters * Rewording and removing a useless filter option --- frontend/lib/models/filters.dart | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/frontend/lib/models/filters.dart b/frontend/lib/models/filters.dart index 04643f19..8b12ff4f 100644 --- a/frontend/lib/models/filters.dart +++ b/frontend/lib/models/filters.dart @@ -91,6 +91,20 @@ final emptyArtefactFilters = Filters( name: 'Status', extractOption: (artefact) => artefact.status.name, ), + Filter( + name: 'Due date', + extractOption: (artefact) { + final now = DateTime.now(); + final dueDate = artefact.dueDate; + + if (dueDate == null) return 'No due date'; + if (dueDate.isBefore(now)) return 'Overdue'; + + final daysDueIn = now.difference(dueDate).inDays; + if (daysDueIn >= 7) return 'More than a week'; + return 'Within a week'; + }, + ), ], );