Skip to content

Meeting: config-driven MeetingType + relation dropdowns + field-dedup migration #835

Description

@rubenvdlinde

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.

Metadata

Metadata

Assignees

Labels

triageAwaiting triage

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions