Filter routine upcoming categories
CI / test (push) Successful in 30s
CI / publish (push) Failing after 1m13s

This commit is contained in:
Joe Julian
2026-04-02 07:18:00 -07:00
parent edb66e3a5a
commit 6097ea8093
2 changed files with 14 additions and 0 deletions
+12
View File
@@ -571,6 +571,9 @@ func filterUpcomingAssignments(assignments []Assignment, now time.Time, days int
var filtered []Assignment var filtered []Assignment
for _, assignment := range assignments { for _, assignment := range assignments {
if !assignment.DueDate.Before(start) && !assignment.DueDate.After(end) { if !assignment.DueDate.Before(start) && !assignment.DueDate.After(end) {
if isExcludedUpcomingAssignment(assignment) {
continue
}
filtered = append(filtered, assignment) filtered = append(filtered, assignment)
} }
} }
@@ -737,6 +740,15 @@ func isRevisionStatus(status string) bool {
return strings.Contains(status, "revision") || strings.Contains(status, "revise") 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 { func inferAssignmentDate(monthDay string, now time.Time) time.Time {
return inferDate(monthDay, now, false) return inferDate(monthDay, now, false)
} }
+2
View File
@@ -42,6 +42,8 @@ func TestFilterUpcomingAssignments(t *testing.T) {
assignments := []Assignment{ assignments := []Assignment{
{DueDate: time.Date(2026, 3, 29, 0, 0, 0, 0, time.UTC), Title: "Soon"}, {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, 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) got := filterUpcomingAssignments(assignments, now, 14)
if len(got) != 1 || got[0].Title != "Soon" { if len(got) != 1 || got[0].Title != "Soon" {