Skip to content

feat(ui): meetings list to board DcVergaderingen: lenses and columns - #1712

Merged
rubenvdlinde merged 2 commits into
developmentfrom
feat/meetings-board-filters
Oct 13, 2026
Merged

rubenvdlinde merged 2 commits into
developmentfrom
feat/meetings-board-filters

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

The meetings list gets the board's lenses and columns (board DcVergaderingen). Manifest configuration and Dutch strings only, no app component.

What changed

Before Now
Lenses none Komende (default, scheduledDate[gte] @now), Deze maand (@monthStart to @nextMonthStart), Afgerond (lifecycle: closed, counted), Alles (counted)
Columns Titel, Vergaderingstype, Startdatum, Modus, Status Datum en tijd (date with time), Orgaan (body name via labelField, the meeting title as second line), Locatie, Agendapunten (count of agenda items, "nog geen" for zero), Status (badge with colorMap), Voorzitter (participant name via fkResolve)
Order newest created first soonest meeting first, as the board's count line says
Search field "Zoeken..." "Zoeken in deze lijst"
Footer "5 van 5" "5 van 5 · klik een kolomkop om te sorteren"

What a user had before, and where it is now

Before Now
Every meeting in one list The Alles lens (a fourth chip the board does not draw). Without it a scheduled meeting whose date passed but that was never closed sits in no lens.
Column Titel Second line under Orgaan; the columns tab adds the Titel column back
Columns Vergaderingstype, Modus Not default columns any more; the columns tab adds them back (they are schema properties). Not declared hidden: true because 2.81 renders such a column anyway (gap 9 below).
Column Startdatum Datum en tijd, now with the time
Sorting by any header, filters, row menus, Tabel / Kalender toggle, Acties Unchanged

Library gaps, named and not built here

  1. Datum en tijd as the board draws it (date tile, weekday, "09.30 tot 12.00 uur" from endDate): widget: date has one line. Needs a block variant with an endField.
  2. Second line under Orgaan / Locatie ("Gewone vergadering", "Op locatie"): secondary fills the stored value, so an enum reads "regular". Needs enum labels in secondary.
  3. Voorzitter with avatar: chair holds a Participant uuid; fkResolve gives the name but no avatar.
  4. Per-lens sort (Afgerond newest first): quickFilters[] has no sort.
  5. Counts on Komende and Deze maand are off on purpose: fetchFilterCounts.singleEqualityOf treats a flat scheduledDate[gte] key as an equality and counts it through the aggregate endpoint, which answers 0 while the list shows 5. Needs: a key ending in [op] counted via fetchListTotal.
  6. Column hidden: true is ignored without a saved column set.

Also not this PR: the status label "Bijeengeroepen" (the meeting schema has no x-enum-labels; "scheduled" reads "gepland"), the page title and count line (held draft #1708), the Acties menu (nextcloud-vue #1551).

Pixel diff against DcVergaderingen (user pieter)

Total Top bar Nav Page header Content
Before 11.27 8.85 4.13 16.60 11.87
After 9.82 8.85 4.13 16.85 9.19

Content: data differs (12 test meetings, no body, chair or location on most).

Verified locally

Check Exit code
npm run lint 0
npm run check:manifest 0
npm run test:l10n 0
npm run check:l10n-js 0
npm run build 0
npx vitest run --maxWorkers=2 (full) 1: 973 of 973 tests pass in 91 files; tests/vitest/shared-instance.spec.ts does not load (@vue/tsconfig not installed). Inherited, untouched.

No PHP changed.

🤖 Generated with Claude Code

…and the board's columns

Upcoming (default), This month, Completed and All as quick filters with
counts; columns Date and time, Body (title under it), Location, Agenda
items, Status, Chair; title, meeting type and mode stay as hidden
columns; soonest first; search placeholder 'Search in this list'.
@rubenvdlinde
rubenvdlinde merged commit 1fec795 into development Oct 13, 2026
37 of 38 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/decidiq @ a100fba

Check PHP Vue Security License Tests
lint ✅
phpcs ✅
phpmd ✅
psalm ✅
phpstan ✅
phpmetrics ✅
eslint ✅
stylelint ✅
build ✅
check-manifest ✅
check-nav-ceiling ✅
test-l10n ✅
format ✅
check-l10n-js ✅
check-schema-l10n ✅
composer ✅ ✅ 107/107
npm ✅ ✅ 652/652
app:check-code ⏭️
info.xml ✅
REUSE ❌
lockfile sync ✅
PHPUnit ✅ 2656/2656 · 8 skipped
Newman ✅ 363/363 · 1 skipped
Playwright ⏭️ deferred: E2E runs locally and on the promotion path only. This pull request targets development, so the suite is asked once per promotion into beta and main rather than once per push per open pull request. Run it locally with npx playwright test, or from the Actions tab on a branch with no open pull request into development.
Hydra gates ❌

Quality workflow — 2026-10-13 13:32 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants