Punch List -- Editorial and Publish-Schedule
One dashboard agenda for pages pending approval (with optional Approve) plus everything scheduled to publish or expire soon. Uses Concrete’s own workflow path.
Concrete CMS already tracks two real signals about content that isn't fully live yet: a page version can be approved with a future publish date and/or an expire date, and an in-flight Workflow approval is tracked with a start date and a last-action date. Neither has a dashboard view. Today, seeing either means running the Sitemap's advanced search "Version Status" filter three separate times (once per status, with no sense of urgency), or watching a notification-bell icon surface pending approvals one at a time with no sense of how long anything's been waiting.
Punch List is the missing aggregation view.
Pending approval
Every page whose most-recent version isn't approved yet, sorted by how long it's been waiting -- longest first. Pages with a real, in-flight Workflow approval are labeled "In workflow"; pages that are simply unapproved with no Workflow attached (a real, common case on sites without Workflow configured) are labeled "Unapproved -- no workflow" rather than silently dropped from the list. A configurable "stale" threshold flags anything that's been waiting an unusually long time.
Optional Approve (on by default; can be turned off in Settings for a read-only agenda) uses Concrete's own ApprovePageRequest / in-flight WorkflowProgress path and respects each user’s “Approve page versions” permission -- the same machinery as the Versions panel, not a second approval system.
Publishing soon
Every approved page with a future publish date, within a configurable horizon (30 days by default), sorted soonest first.
Expiring soon
Every currently-live page with a publish end date coming up within that same horizon, sorted soonest first -- so a time-limited page (a promo, an announcement) doesn't quietly disappear without anyone noticing it was about to.
Per-install settings
Horizon, stale threshold, workflow-less drafts, and Approve-from-agenda are stored once for the install. The agenda list itself is still scoped to the current site.
