PPDR Calendar Split (2026-07-30)

The single portal calendar mixed field inspections with PPDR desk-review submissions (yellow-highlighted on their submission date). Split into two calendars sharing one component (entirely-portal 3043d88):

  • Field Calendar (/calendar, sidebar label renamed from “Calendar” for all roles) — CalendarPage variant='field' (default), now filters OUT desk-review events.
  • PPDR Calendar (/ppdr-calendar, roles: triage, up_owner, up_admin) — variant='ppdr', shows ONLY desk-review submissions. Title: “PPDR Calendar (Desk Review Submissions)“.

The partition predicate is the existing isDeskReview() (event description’s Inspection Method contains “desk review”) — identical to the yellow-highlight rule, so the two calendars exactly partition the old view. Filtering is client-side at fetch time; the /portal/calendar/events API is unchanged.

Sidebar placement: owner Triage section reordered to Regional Overdue Permits → Desk Review Prep → PPDR Calendar → Triage Intake → Archive. up_admin gets PPDR Calendar in Monitoring (after Desk Review Prep); triage role gets it after Desk Review Prep. The status legend drops the Desk Review swatch on the field calendar and shows only it on the PPDR calendar.

Related:: portal-v2, portal-calendar, ppdr-staging-worklist