feat(calendar): grey out past appointments across all views (PMS-599) #395
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/PMS-599-grey-past-appointments"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
PMS-599 (parent PMS-556 Calendar smoke)
Back-dated appointments should be enterable for record-keeping, must not trigger reminders, and should read as muted in the calendar.
What this changes (frontend only)
Adds a
past_classhelper (opacity-50whenend_time < now) and applies it to every appointment render site so elapsed events are muted, hovering un-mutes via the existinghover:opacity-*:The other two acceptance criteria need no code
end_time >= start_time; there is no min-date / not-in-past guard, so back-dating already works.calendar_remindersworker's selection is strictly forward-looking: the SQL pre-filter requiresstart_time > nowfor non-recurring rows, and an in-memoryif occ_start <= now { continue; }guard skips every past occurrence (recurring included). A back-dated appointment is never fetched or queued. (Verified in mokosh-servercalendar/service.rs::due_reminders+worker.rs.) No server change, no subtask needed.Verified
dx build clean (35s), no warnings, fmt clean. Dev app serves this branch.
Test
Create an appointment with a start/end in the past, or open a week with elapsed events: past appointments render dimmed in Month / Week / Day / Dispatch; hovering restores full opacity. Saving a back-dated appointment succeeds and queues no reminder.
🤖 Generated with Claude Code