Follow-up to the Meeting create-form cleanup (PR: human-friendly property titles). The schema-only, non-breaking parts shipped; these parts need frontend work + a data migration + live verification, so they are split out.
1. Config-driven MeetingType objects
- New
MeetingType schema (title, key, description, defaultQuorum, requiresChairAuthorization, color/icon).
- Change
Meeting.meetingType from a hardcoded enum to a relation to MeetingType objects.
- Seed the current enum values (regular, extraordinary, committee, public hearing, general_assembly) as default MeetingType objects.
- Data migration: map existing
meetingType enum strings → seeded MeetingType UUIDs (repair step).
2. Quorum derives from MeetingType
MeetingService / MeetingTransitionGuard should resolve the effective quorum from the meeting type, with Meeting.quorumRequired (now titled "Quorum override") as the optional per-meeting override. Move the loose quorum off the create form.
3. Generic object-relation dropdown widget (nextcloud-vue)
- The generic OR create/edit form renders relation UUID properties (
chair, governanceBody, meetingType) as plain text boxes — there is no schema-only way to get a searchable object picker today (fieldsFromSchema/resolveWidget only support enum/format widgets or registered integrations).
- Add a schema-driven object-relation widget so a property declaring an OR relation renders as a searchable dropdown of the target schemas objects. Benefits the whole fleet, not just decidesk. Until then
chair/Body/Meeting type stay text/enum.
4. Field-dedup data migration (already hidden in the form)
eventAttendanceMode (schema.org) and virtualLocation are now visible:false duplicates of meetingMode / location. Add a migration that backfills meetingMode/location from the old fields, then the deprecated properties can be removed.
Tracked from the 2026-06-26 schema-titles sweep.
Gemigreerd van Codeberg — oorspronkelijk Conduction/decidesk#101, geopend door rubenvdlinde op 2026-06-26.
Follow-up to the Meeting create-form cleanup (PR: human-friendly property titles). The schema-only, non-breaking parts shipped; these parts need frontend work + a data migration + live verification, so they are split out.
1. Config-driven MeetingType objects
MeetingTypeschema (title, key, description,defaultQuorum,requiresChairAuthorization, color/icon).Meeting.meetingTypefrom a hardcodedenumto a relation toMeetingTypeobjects.meetingTypeenum strings → seeded MeetingType UUIDs (repair step).2. Quorum derives from MeetingType
MeetingService/MeetingTransitionGuardshould resolve the effective quorum from the meeting type, withMeeting.quorumRequired(now titled "Quorum override") as the optional per-meeting override. Move the loose quorum off the create form.3. Generic object-relation dropdown widget (nextcloud-vue)
chair,governanceBody,meetingType) as plain text boxes — there is no schema-only way to get a searchable object picker today (fieldsFromSchema/resolveWidgetonly support enum/format widgets or registered integrations).chair/Body/Meeting typestay text/enum.4. Field-dedup data migration (already hidden in the form)
eventAttendanceMode(schema.org) andvirtualLocationare nowvisible:falseduplicates ofmeetingMode/location. Add a migration that backfillsmeetingMode/locationfrom the old fields, then the deprecated properties can be removed.Tracked from the 2026-06-26 schema-titles sweep.
Gemigreerd van Codeberg — oorspronkelijk Conduction/decidesk#101, geopend door
rubenvdlindeop 2026-06-26.