page-teasers: upgrade 'section' param from text to page field #89

Closed
opened 2026-07-18 02:25:30 +02:00 by dominik.polakovics · 1 comment

What to build

Upgrade the section param of scaffold/editor/elements/page-teasers.yaml from type: text to type: page, so editors pick the section from the shared page-tree picker (same UX as news-list.section) instead of typing a raw site-relative path.

Stored values are already canonical pretty URLs (e.g. /posts), so existing content must stay valid without migration. Do not restrict pageType: — any section-like page may be teased.

Acceptance criteria

  • page-teasers.yaml declares section as type: page (required, label unchanged in spirit)
  • The Page module form shows the page-tree picker for the param; picking a page stores its canonical pretty URL
  • A pre-existing page-teasers element with a stored text path (e.g. /posts) loads, validates, and publishes unchanged
  • Server-side CheckPageParams existence validation passes for valid sections and rejects dangling paths
  • Shortcode output is byte-identical for the same stored value before/after the sidecar change

Blocked by

None - can start immediately

## What to build Upgrade the `section` param of `scaffold/editor/elements/page-teasers.yaml` from `type: text` to `type: page`, so editors pick the section from the shared page-tree picker (same UX as `news-list.section`) instead of typing a raw site-relative path. Stored values are already canonical pretty URLs (e.g. `/posts`), so existing content must stay valid without migration. Do not restrict `pageType:` — any section-like page may be teased. ## Acceptance criteria - [ ] `page-teasers.yaml` declares `section` as `type: page` (required, label unchanged in spirit) - [ ] The Page module form shows the page-tree picker for the param; picking a page stores its canonical pretty URL - [ ] A pre-existing page-teasers element with a stored text path (e.g. `/posts`) loads, validates, and publishes unchanged - [ ] Server-side `CheckPageParams` existence validation passes for valid sections and rejects dangling paths - [ ] Shortcode output is byte-identical for the same stored value before/after the sidecar change ## Blocked by None - can start immediately
Author
Owner

This was generated by AI during triage.

Triage confirmed — enhancement, ready-for-agent. The issue body is the authoritative agent brief.

Verified against the codebase: page-teasers.yaml still declares section as type: text; the page field type and shared page-tree picker landed with the news-list work (#86), so this follows an established pattern. Stored canonical pretty URLs make the no-migration criterion sound.

> *This was generated by AI during triage.* **Triage confirmed — enhancement, ready-for-agent.** The issue body is the authoritative agent brief. Verified against the codebase: `page-teasers.yaml` still declares `section` as `type: text`; the `page` field type and shared page-tree picker landed with the news-list work (#86), so this follows an established pattern. Stored canonical pretty URLs make the no-migration criterion sound.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Cloonar/deckle#89
No description provided.