Context
Came up while designing the "Part of (series)" UX (see the series-linking
wizard work). `partOf.type: "multipart"` covers an event held across
several non-consecutive, not-necessarily-regular dates — e.g. a
3-session study jam on arbitrary Saturdays, or day 2/3 of a conference.
Per OTE's spec, each session is still its own document ("un documento =
una ocurrencia"), all pointing at the same `partOf.id`.
Current gap
The editor's only batch-generation mechanism today is "+ Add recurrence"
(renderRecurrenceRows in apps/editor/src/ui/form.ts), and it is
strictly rule-based: daily/weekly/monthly/yearly + interval
(apps/editor/src/lib/recurrence.ts). There is no way to enter a plain
list of arbitrary dates.
Two workarounds exist today, neither good for a genuinely irregular
multipart series:
- Approximate with a rule (e.g. weekly) and uncheck the occurrences
that don't apply in the generation-review dialog (that per-occurrence
checkbox list already exists, reused from ICS/JSON-LD import) — works
only when the real dates happen to be a subset of a regular pattern.
- Use "Create event" N times by hand, re-entering the same 4
partOf.* fields (id/name/url/type) on every single occurrence —
tedious and error-prone (easy to typo the shared partOf.id, which
breaks the grouping silently).
Suggested direction (not scoped/designed yet)
A dedicated "+ Add session" repeater for the multipart case — plain
date+time rows instead of a frequency rule — reusing the same batch
generation/review/submission pipeline recurrence rows already use
(onGenerateRecurrenceSeries / submitRecurringBatch in
apps/editor/src/main.ts), so all sessions share one partOf filled in
once.
Deliberately left open-ended — needs its own UX pass (where it lives in
the form, how it interacts with the "Part of" series-linking wizard once
that lands, whether it's its own row type or a mode of the existing
recurrence rows) rather than being bundled into the series-identity work.
Context
Came up while designing the "Part of (series)" UX (see the series-linking
wizard work). `partOf.type: "multipart"` covers an event held across
several non-consecutive, not-necessarily-regular dates — e.g. a
3-session study jam on arbitrary Saturdays, or day 2/3 of a conference.
Per OTE's spec, each session is still its own document ("un documento =
una ocurrencia"), all pointing at the same `partOf.id`.
Current gap
The editor's only batch-generation mechanism today is "+ Add recurrence"
(
renderRecurrenceRowsinapps/editor/src/ui/form.ts), and it isstrictly rule-based: daily/weekly/monthly/yearly + interval
(
apps/editor/src/lib/recurrence.ts). There is no way to enter a plainlist of arbitrary dates.
Two workarounds exist today, neither good for a genuinely irregular
multipart series:
that don't apply in the generation-review dialog (that per-occurrence
checkbox list already exists, reused from ICS/JSON-LD import) — works
only when the real dates happen to be a subset of a regular pattern.
partOf.*fields (id/name/url/type) on every single occurrence —tedious and error-prone (easy to typo the shared
partOf.id, whichbreaks the grouping silently).
Suggested direction (not scoped/designed yet)
A dedicated "+ Add session" repeater for the multipart case — plain
date+time rows instead of a frequency rule — reusing the same batch
generation/review/submission pipeline recurrence rows already use
(
onGenerateRecurrenceSeries/submitRecurringBatchinapps/editor/src/main.ts), so all sessions share onepartOffilled inonce.
Deliberately left open-ended — needs its own UX pass (where it lives in
the form, how it interacts with the "Part of" series-linking wizard once
that lands, whether it's its own row type or a mode of the existing
recurrence rows) rather than being bundled into the series-identity work.