Skip to content

chore: decidiq integration batch 1 - #1772

Merged
rubenvdlinde merged 39 commits into
developmentfrom
integration/dd-batch-1
Oct 20, 2026
Merged

rubenvdlinde merged 39 commits into
developmentfrom
integration/dd-batch-1

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Integration batch 1 for decidiq: the nextcloud-vue 2.114 bump, the tabbed detail pages that follow the drawn boards, and the example set concept decision on the portaliq case. Each branch is merged with --no-ff, in this order:

  • chore/nextcloud-vue-2.114 (1e2a621)
  • feat/motion-page-tabs (13eb2a9)
  • feat/meeting-page-overview-history (da5d12e)
  • feat/decision-page-overview-history (45bb8da)
  • feat/amendment-page-overview-history (509e30e)
  • feat/agenda-item-page-tabs (2d95c33)
  • feat/minutes-page-tabs (97c9587)
  • feat/commitment-page-tabs (baa3baf)
  • feat/action-item-page-tabs (f03954b)
  • feat/body-page-tabs (e6ab505)
  • feat/person-page-tabs (18574ae)
  • feat/proposals-body-and-meeting-columns (99ef114)
  • feat/register-pages-tabs (f98e9a7)
  • feat/example-set-concept-on-portaliq-case (0e44a32)

All merges were clean.

On top of the merges: the boards name the record history tab "Historie", so the nl translation of History in decidiq's l10n goes from "Geschiedenis" to "Historie". The twelve vitest specs that assert the Dutch tab strip expect the new label.

Verified locally

  • composer check:strict: lint, phpcs, phpmd, psalm and phpstan clean. PHPUnit: 2702 tests, 1 error, which is inherited. PortalPublicRecordsTest::testTheExampleSetShowsEveryCouncillorsNamedVotes fails the same way on a clean export of development (since feat(example-set): concept Woo decision on the Lindelaan example case #1770), and no file in this PR touches that test or the data it reads.
  • npm run lint: 0 errors (286 warnings, inherited).
  • vitest, full suite: 110 files, 1115 passed, 4 skipped.
  • hydra gates (fresh ConductionNL/.github): 85 of 87 applicable gates pass. The two that fail are inherited. Gate 23 flags lib/Listener/RegisterApprovalChainLeafListener.php and lib/Service/ArchivalDossierService.php, and gate 26 flags src/views/meetings/MeetingCalendarView.vue. None of those files is in this diff.
  • Production webpack build: compiles, with 4 warnings.
  • The diff has no _rbac and no Co-Authored-By.

AI disclosure: Claude Code (claude-opus-5-5) assembled the branch, made the l10n change and ran the checks.

🤖 Generated with Claude Code

…aan case

The DqZaak boards draw the Woo case of the portal resident Sanne de
Vries, which portaliq's fragment writes; dossiq's duplicate goes. The
concept decision now finds that case by the portal reference only it
carries (externalReference MZ-ZDR-2026-0412), so earlier copies with the
same title or description cannot match, and the fragment loads after
portaliq's.

Assisted-by: ClaudeCode:claude-opus-5-5
Boards DcVoorstel, DcVoorstelOndertekenaars, DcStemvolgorde, DcStemuitslag
and the motion dialogs draw the motion page as tabs: Overview, Papers,
Amendments, Voting and History, with the key facts, the residents' advisory
vote and the conflicts of interest beside them. The simple structure showed
the ten blocks as one stack. Signers, Voting order and Stage go under More;
no block is dropped. The full structure is unchanged.

Assisted-by: ClaudeCode:claude-opus-5-5
Board DcToezegging draws the commitment page as tabs: Overview, Progress,
Documents, Related and History, with the key facts (made by, directed to,
deadline, meeting) beside them. The simple structure showed the four blocks
as one stack and the history only in the sidebar. The full structure is
unchanged.

Assisted-by: ClaudeCode:claude-opus-5-5
Board DcActie draws the action item page as tabs: Overview, Documents,
Related and History, with the key facts (status, assignee, deadline) beside
them. The simple structure showed the three blocks as one stack and the
history only in the sidebar. The full structure is unchanged.

Assisted-by: ClaudeCode:claude-opus-5-5
Board DcPersoon draws the person page as tabs: Overview, Memberships,
Voting record, Other positions and Gifts. The simple structure showed the
blocks as one stack and had no gifts list for a person; it now lists the
gifts and invitations the person received (declared-gift.recipient), as
the body page does per body. The full structure is unchanged.

Assisted-by: ClaudeCode:claude-opus-5-5
Boards DcOrgaan and DcZelfevaluatie draw the body page as tabs: Overview,
Members, Meetings, Documents and History, with the key facts and the
workspace beside them, and the other blocks under Go to in the Actions
menu. The simple structure showed twenty blocks as one stack. They are now
tabs under More, one per block in the board's order, which the library's
board look moves into the Actions menu. No block is dropped; the full
structure is unchanged.

Assisted-by: ClaudeCode:claude-opus-5-5
Boards DcAgendapunt, DcAgendapuntStukken and DcAgendapuntMoties draw the
agenda item page as tabs: Overview, Papers, Motions and Case, with the key
facts, the conflicts of interest and the paper summaries beside them. The
simple structure showed nine blocks as one stack. The board's Speakers tab
is not drawn: an agenda item has no speakers list outside the live meeting.
The full structure is unchanged.

Assisted-by: ClaudeCode:claude-opus-5-5
Board DcNotulen draws the minutes page as tabs with the key facts beside
them. The simple structure showed seven blocks as one stack. It now has
Overview (the minutes, the notes per agenda item, draft and send,
approval), Signers, Documents and Publication. The board's Transcription,
Versions and Action items tabs have no source on the minutes record and are
not drawn. The full structure is unchanged.

Assisted-by: ClaudeCode:claude-opus-5-5
…d History last

Boards DcVergadering and DcVergaderingPlanning draw the meeting tabs as
Overview, Agenda, Participants, Papers, Decisions, Minutes and History. The
simple structure opened on Agenda, kept the planning panel under More,
called the papers tab Documents and showed the history only in the
sidebar. The planning panel is now the Overview tab, the record history is
the last tab, and Broadcast, Case system, Audit statements and Stage stay
under More. The agenda tab carries `default: true` so a library that reads
the key opens a meeting on its agenda, as the board does.

Assisted-by: ClaudeCode:claude-opus-5-5
…nd History last

Board DcBesluit draws the decision tabs as Overview, Route and voting,
Documents, Consultation, Publication and History. The simple structure
called the first tab Content and showed the history only in the sidebar.
The first tab now reads Overview and the record history is the last tab
of the strip; Action items, Commitments, Related decisions and Lifecycle
stay under More.

Assisted-by: ClaudeCode:claude-opus-5-5
…and History last

Board DcAmendement draws the amendment tabs as Overview, Text changes,
Voting round and History, opened on the text changes. The simple structure
had Text changes, Amendment and Voting round, with the history only in the
sidebar. The amendment panel is now the Overview tab, the record history is
the last tab, and Text changes carries `default: true` so a library that
reads the key opens the page on it.

Assisted-by: ClaudeCode:claude-opus-5-5
…and the board tab menu

Every decidiq board ends the app menu with "Mijn weergaven" (the pinned
views, with a pen to change them) and lists a detail page's overflow tabs
under Go to in the Actions menu. nextcloud-vue draws the first since 2.107.0
(my-views-menu-section) and the second since 2.94.0
(board-tabs-overflow-in-actions); decidiq was on 2.89.2. decidiq's main
lists already enable the sidebar, so they offer saved views and the section
appears without app changes. The spec checks the lists offer views and the
section lands after Registers. Full vitest suite: 998 passed; development
build compiles.

Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
Assisted-by: ClaudeCode:claude-opus-5-5
The one inherited line prettier wraps, in a file this branch edits.

Assisted-by: ClaudeCode:claude-opus-5-5
…mmitment page's layout

My actions leaves commitments alone; the commitment page now has the
board's tabs (simpleCommitmentTabs.spec.js), so the check compares the
commitments list and the blocks' content instead of the whole page.

Assisted-by: ClaudeCode:claude-opus-5-5
…the board's order

Board DcVoorstellen draws the proposals list with the columns Title,
Proposer, Body, Stage, Next meeting and Portfolio holder. The simple
structure had no Body or Next meeting column. Both are added, from the
decision's governingBody and meeting (by its title), and the board's
columns lead in the board's order before the ones the list already had.
Portfolio holder has no field on a decision and is not drawn.

Assisted-by: ClaudeCode:claude-opus-5-5
Boards DcDoel, DcMandaat, DcGeheimhouding, DcAuditverklaring, DcBudgetronde
and DcPubliekeConsultatie draw these record pages as tabs, Overview first
and History last, with the key facts beside them. The simple structure
showed each as a stack with the history only in the sidebar. Goal,
delegation, confidentiality, audit statement, budget round and public
consultation now follow their boards; every block stays on its page. One
branch for the six because they share one shape and one place in the
profile file. The full structure is unchanged.

Assisted-by: ClaudeCode:claude-opus-5-5
…-batch-1

Assisted-by: ClaudeCode:claude-opus-5-5
…d-batch-1

Assisted-by: ClaudeCode:claude-opus-5-5
…dd-batch-1

Assisted-by: ClaudeCode:claude-opus-5-5
@rubenvdlinde
rubenvdlinde merged commit 5c07aa5 into development Oct 20, 2026
37 of 39 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/decidiq @ 11922a7

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 ❌ 2693/2694 · 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-20 16:58 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.

1 participant