Filter routine upcoming categories
This commit is contained in:
@@ -571,6 +571,9 @@ func filterUpcomingAssignments(assignments []Assignment, now time.Time, days int
|
||||
var filtered []Assignment
|
||||
for _, assignment := range assignments {
|
||||
if !assignment.DueDate.Before(start) && !assignment.DueDate.After(end) {
|
||||
if isExcludedUpcomingAssignment(assignment) {
|
||||
continue
|
||||
}
|
||||
filtered = append(filtered, assignment)
|
||||
}
|
||||
}
|
||||
@@ -737,6 +740,15 @@ func isRevisionStatus(status string) bool {
|
||||
return strings.Contains(status, "revision") || strings.Contains(status, "revise")
|
||||
}
|
||||
|
||||
func isExcludedUpcomingAssignment(assignment Assignment) bool {
|
||||
category := strings.ToLower(strings.TrimSpace(assignment.Category))
|
||||
title := strings.ToLower(strings.TrimSpace(assignment.Title))
|
||||
if strings.Contains(category, "preparedness") || strings.Contains(title, "preparedness") {
|
||||
return true
|
||||
}
|
||||
return strings.Contains(category, "r.i.c.e")
|
||||
}
|
||||
|
||||
func inferAssignmentDate(monthDay string, now time.Time) time.Time {
|
||||
return inferDate(monthDay, now, false)
|
||||
}
|
||||
|
||||
@@ -42,6 +42,8 @@ func TestFilterUpcomingAssignments(t *testing.T) {
|
||||
assignments := []Assignment{
|
||||
{DueDate: time.Date(2026, 3, 29, 0, 0, 0, 0, time.UTC), Title: "Soon"},
|
||||
{DueDate: time.Date(2026, 4, 20, 0, 0, 0, 0, time.UTC), Title: "Later"},
|
||||
{DueDate: time.Date(2026, 3, 30, 0, 0, 0, 0, time.UTC), Title: "Preparedness", Category: "Preparedness"},
|
||||
{DueDate: time.Date(2026, 3, 31, 0, 0, 0, 0, time.UTC), Title: "Weekly assessment", Category: "R.I.C.E. (weekly assessment)"},
|
||||
}
|
||||
got := filterUpcomingAssignments(assignments, now, 14)
|
||||
if len(got) != 1 || got[0].Title != "Soon" {
|
||||
|
||||
Reference in New Issue
Block a user