docs: insert Phase 12.2 admin form fields with deferred binding (v0.1.1)
This commit is contained in:
@@ -654,6 +654,27 @@ Plans:
|
||||
Plans:
|
||||
- [ ] TBD (run /gsd-plan-phase 12.1 to break down)
|
||||
|
||||
### Phase 12.2: Admin form fields: date, file upload, relation editing with deferred binding (INSERTED)
|
||||
|
||||
**Goal:** A plugin's admin forms cover the three gaps a downstream project on SummerCMS v0.1 hit: a date/datetime field, a file upload field, and creating, editing and deleting related records inside the parent form (WinterCMS RelationController parity). Uploads and related-record changes on a record that is not saved yet use Winter-like deferred binding: they are held against a session key and committed with the parent's first save, or discarded with it.
|
||||
**Requirements**: TBD
|
||||
**Depends on:** Phase 9 (cabana form schema and relation-manager), Phase 12 plan 12-01 (`lagoon/attach` public URLs, webp, image-dimension guard)
|
||||
**Repos:** summercms.go only (`modules/cabana`, `modules/lagoon/attach`, the admin SPA); framework READMEs and `docs/` updated in the same change
|
||||
**Release:** ships as tag v0.1.1
|
||||
**Ordering:** urgent; independent of Phase 12.1 and Phase 13, and Phase 12.1's relation managers can use it
|
||||
**Success Criteria** (what must be TRUE):
|
||||
|
||||
1. `fields.yaml` accepts `type: datepicker` with Winter's `mode` (date, datetime, time) and stores date, timestamp and time columns without a plugin defining its own date types.
|
||||
2. `type: fileupload` handles `attachOne` and `attachMany` relations: upload with size and MIME limits from the field config, image preview and thumbnail, remove, and reorder for `attachMany`. It works on both saved and unsaved records.
|
||||
3. The relation manager creates, updates and deletes `hasMany` (and `belongsToMany` with pivot) related records in a modal driven by the related model's `fields.yaml`, alongside the existing link and unlink. Every child endpoint is scoped to its parent record, so a child of another parent can be neither read nor changed.
|
||||
4. Deferred binding: on an unsaved parent, uploads and related-record changes bind to a session key, are committed in the parent's create transaction, and are discarded with the session. Orphaned deferred bindings and their files are purged.
|
||||
5. The new code has unit tests, delivered in the phase's last plan, and the docs checker passes.
|
||||
|
||||
**Plans:** 0 plans
|
||||
|
||||
Plans:
|
||||
- [ ] TBD (run /gsd-plan-phase 12.2 to break down)
|
||||
|
||||
### Phase 13: Płytarium API — wishlist, notifications, CSV, credentials, public routes
|
||||
|
||||
**Goal**: The remaining core API surface — wishlist, notifications, CSV import/export, per-user/org credentials, and onboarding/public/invitation routes — is ported with byte-compatible shapes and their own public rate-limit buckets.
|
||||
|
||||
@@ -5,12 +5,12 @@ current_phase: 12
|
||||
current_phase_name: Płytarium API — Collections and Albums
|
||||
status: executing
|
||||
stopped_at: Completed 12-03-PLAN.md
|
||||
last_updated: "2026-10-02T11:18:14.935Z"
|
||||
last_updated: "2026-10-02T12:36:15.774Z"
|
||||
last_activity: 2026-10-02
|
||||
last_activity_desc: Phase 12 execution started
|
||||
state_head: 6f37a3782f59f1d786016197f485c6d8f466e38e
|
||||
state_head: 66497635906aea588e28ba6d34afc6576423a662
|
||||
progress:
|
||||
total_phases: 20
|
||||
total_phases: 21
|
||||
completed_phases: 10
|
||||
total_plans: 101
|
||||
completed_plans: 99
|
||||
@@ -168,6 +168,7 @@ Progress: [██████░░░░] 60%
|
||||
- Phase 11.3 inserted after Phase 11.2: Newsletter plugin and signup on summercms.io (split out of the original 11.2)
|
||||
- Phase 11.3 deferred to the backlog as Phase 999.1 (2026-10-02): the Journal plugin and delivering Płytarium take priority
|
||||
- Phase 12.1 inserted after Phase 12: User plugin admin screens (sm-user-plugin): Users, User Groups, Organisations admin, before Phase 15 cutover
|
||||
- Phase 12.2 inserted after Phase 12: Admin form fields: date picker, file upload and relation-manager create/update/delete with Winter-like deferred binding (RelationController parity); framework only, ships as tag v0.1.1; blocks a downstream project on v0.1 (URGENT)
|
||||
|
||||
### Decisions
|
||||
|
||||
|
||||
Reference in New Issue
Block a user