Skip to content

Commit f355412

Browse files
rubenvdlindeConduction Release Bot
andauthored
refactor(nav): retire five superseded pages instead of only hiding them (#1682)
* refactor(nav): retire five superseded pages instead of only hiding them `removals` in src/menu-layout.json hid a menu entry and left the page routable. For five entries the page had nothing left to show, so this deletes the page rather than the link to it, and the array drops to 9. Bezwaren and Beroepen were each an index over register dossiq and schema case narrowed only by filter.caseType, and both narrowed on case types sitting under _caseTypes_disabled in lib/Settings/bezwaar_seed_data.json, so both listed zero rows in every install. Cases carries the same register, the same schema and the same field through folderSidebar.filterField. complaints-bezwaar.spec.ts had been describe.fixme on exactly that ground since procest#675. Advice was an index over adviesAanvraag, a model decidesk has owned since consume-decidesk-besluitvorming-leaf. Parafeerroutes was the design screen for approval routes, which dossiq#1632 turned into flows, so editing there reached nothing that runs. Both detail routes stay registered: /advice/:id and /settings/parafeerroutes/:id keep resolving, and so does the audit context that names parafeerrouteId. BezwaarBeroepOverview goes with them. Its four cards pointed at Bezwaren, Beroepen, BezwaarDecisions and BezwaarAdviceRequests; the last two were already retired by case-type-navigation, so every card on the page resolved to nothing. Its change proposal is marked superseded rather than rewritten. BesluitvormingAgenda leaves the array as a stale entry matching no merged menu entry, which is what gate-53 had been reporting. CaseMap and SubstitutionAdminMenu stay hidden rather than deleted, and the coverage note now records why. Both pages are type: custom, which means the standard types cannot host what they do, so a waiver naming Cases covers where the user lands and not what they can do there. Cases carries one of SubstitutionAdmin's five capabilities, and its own _note says the standard list type cannot host the others. The three Reports waivers stay for the opposite reason: the Reports page's cards route straight at those pages. Also declares requiredApp on the case-kpis-hours widget, which reads register humaniq without it (gate-55, pre-existing on development). * style(registry): drop the blank line left by removing the BezwaarBeroepOverview entry Removing that registry block left the object literal opening on a blank line, which prettier --check rejects. Whitespace only. --------- Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
1 parent 4344c30 commit f355412

15 files changed

Lines changed: 104 additions & 510 deletions

File tree

openspec/changes/bezwaar-beroep-cards-collapse/proposal.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Proposal: bezwaar-beroep-cards-collapse
22

3+
> **SUPERSEDED 2026-09-02.** The landing page this change delivered
4+
> (`BezwaarBeroepOverview`, route `/bezwaar-beroep`) has been deleted, along with
5+
> its manifest fragment, its Vue component and its registry entry. Every one of
6+
> its four cards had stopped resolving: `BezwaarDecisions` and
7+
> `BezwaarAdviceRequests` were retired by `case-type-navigation`, and `Bezwaren`
8+
> and `Beroepen` were retired as pages on 2026-09-02 because each was an index
9+
> over register `dossiq` and schema `case` narrowed by a `caseType` that sits
10+
> under `_caseTypes_disabled`, so both listed nothing. Objections and appeals are
11+
> case types on `Cases`. Their detail routes `/bezwaren/:id` and `/beroepen/:id`
12+
> stay registered. Read this file as history, not as a description of the app.
13+
314
## Summary
415

516
Collapse the **Bezwaar & Beroep** group (`BezwaarBeroepGroup`) in the dossiq navigation into a single top-level menu item that links to a new card-grid landing page. Each of the four former child leaves (`Bezwaren`, `Beroepen`, `BezwaarDecisions`, `BezwaarAdviceRequests`) is rendered as a card on that landing page. All former leaf page routes remain registered and reachable as deep links; only the navigation nesting changes. This change follows the ADR-044 "Menu architecture" cards-collapse rule.

openspec/specs/advice-management/spec.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,21 @@ Advice management lets behandelaars request, track, and process internal and ext
1212

1313
## Requirements
1414

15-
**Advice Page Render (UI surface)**
16-
17-
### Requirement: Advice index page render
18-
19-
The Advice (adviezen) index page (`CnIndexPage`, route `/advice`) SHALL mount and
20-
render its stable list shell on navigation — the Cards/Table view toggle, an "Add"
21-
create button, a per-row "Actions" control, and an empty-state message when no
22-
advice requests are visible — independently of whether the OpenRegister collection
23-
returns rows.
24-
25-
#### Scenario: Advice index page renders list shell
26-
- **GIVEN** an authenticated user on the Dossiq app
27-
- **WHEN** they navigate to the Advice page
28-
- **THEN** the Cards/Table view-mode toggle MUST be visible
29-
- **AND** an "Add" create button MUST be visible
30-
- **AND** the page MUST NOT show an Internal Server Error
15+
**Advice surface (UI surface)**
16+
17+
### Requirement: Advice surface
18+
19+
Per-case advice SHALL reach the user through the `besluitvorming` leaf on
20+
CaseDetail and the `case-decidesk-decisions` widget. `/advice/:id` SHALL stay
21+
registered so every advice detail link keeps resolving.
22+
23+
REPLACED 2026-09-02. The standalone `/advice` index page is retired, not hidden.
24+
`consume-decidesk-besluitvorming-leaf` moved decision-making to decidesk, which
25+
owns the `adviesAanvraag` model and the CROSS-CASE advice queue by design. dossiq
26+
keeps the per-case view and the detail route. A dossiq-side list over a model
27+
dossiq no longer owns is the duplication that change set out to remove.
28+
29+
@e2e exclude The per-case surface is covered by the besluitvorming leaf specs; the cross-case queue is decidesk's and is not a dossiq surface to test.
3130

3231
**ADDED Requirements**
3332

openspec/specs/bezwaar-lifecycle/spec.md

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,23 @@ Defines the end-to-end bezwaar (objection) lifecycle: the pre-seeded Bezwaar cas
1212

1313
## Requirements
1414

15-
**Bezwaren Page Render (UI surface)**
16-
17-
### Requirement: Bezwaren index page render
18-
19-
The Bezwaren (objections) index page (`CnIndexPage`, route `/bezwaren`) SHALL mount
20-
and render its stable list shell on navigation — the Cards/Table view toggle, an
21-
"Add" create button, a per-row "Actions" control, and an empty-state message when
22-
no objection cases are visible — independently of whether the OpenRegister
23-
collection returns rows.
24-
25-
#### Scenario: Bezwaren index page renders list shell
26-
- **GIVEN** an authenticated user on the Dossiq app
27-
- **WHEN** they navigate to the Bezwaren page
28-
- **THEN** the Cards/Table view-mode toggle MUST be visible
29-
- **AND** an "Add" create button MUST be visible
30-
- **AND** the page MUST NOT show an Internal Server Error
15+
**Bezwaren list surface (UI surface)**
16+
17+
### Requirement: Bezwaren list surface
18+
19+
Objections SHALL be listed on the Cases page, narrowed to the Bezwaar case type.
20+
`/bezwaren/:id` SHALL stay registered so every objection detail link keeps
21+
resolving.
22+
23+
REPLACED 2026-09-02. The standalone `/bezwaren` index page is retired, not hidden.
24+
It was an index over register `dossiq` and schema `case` whose only narrowing was
25+
`filter: { caseType: <bezwaar> }`. Cases carries the same register and the same
26+
schema, and narrows the same field through its `folderSidebar`
27+
(`filterField: caseType`). Picking the Bezwaar folder returns the rows the retired
28+
page returned, so this is the same query on the same data rather than an
29+
approximation.
30+
31+
@e2e exclude The list shell is covered by `case-management/spec.md#cases-index-page-renders-list-shell`, which drives the same `CnIndexPage` over the same register and schema.
3132

3233
**ADDED Requirements**
3334

openspec/specs/dossiq-config-to-settings/spec.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,20 @@ Neither SHALL be added to the `SettingsGroup` relocations.
8585
### Requirement: REQ-PCTS-004 — Relocated Pages Stay Routable
8686

8787
Every page whose nav leaf is relocated SHALL remain reachable by its existing route after the change.
88+
89+
AMENDED 2026-09-02. One exception: the `/settings/parafeerroutes` INDEX page is retired outright.
90+
dossiq#1666 moved parafering to the decision app and retired the local engine, so the design screen
91+
invited edits that reach nothing that runs. `/settings/parafeerroutes/:id` stays registered, so a
92+
reader can still open a legacy route object, and the audit context naming `parafeerrouteId` keeps
93+
resolving.
8894
dossiq SHALL NOT change any page `id`, `route`, `type` or `component` as part of this relocation; the
8995
change SHALL touch only the menu structure (`src/manifest.json#menu`, `src/menu-layout.json`) and the
9096
`Legesberekeningen` section flag.
9197

9298
#### Scenario: Deep links to relocated config pages still resolve
9399

94100
- **GIVEN** the configuration leaves have been relocated under `SettingsGroup`
95-
- **WHEN** a user navigates directly to `/settings/tenants`, `/settings/parafeerroutes`,
101+
- **WHEN** a user navigates directly to `/settings/tenants`, `/settings/parafeerroutes/:id`,
96102
`/settings/wms-layers`, `/settings/workflow-definitions`, `/settings/automatic-actions`,
97103
`/settings/lhs-matrices`, `/legesverordeningen`, `/tenant-onboarding`, `/leges/verordeningen` or `/settings`
98104
- **THEN** each route SHALL resolve to its existing page

openspec/specs/objections-appeals-nav-group/spec.md

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,26 @@ contiguous run (`Bezwaren`=45, `Beroepen`=46, `BezwaarDecisions`=47, `BezwaarAdv
5656

5757
### Requirement: REQ-POAG-003 — Every Grouped Page Stays Routable (Relocation Moves The Entry, Not The Page)
5858

59-
dossiq SHALL keep every objections-and-appeals page routable at its existing route after the
60-
grouping. Relocation SHALL move only the menu entry; the `pages[]` declarations and their routes —
61-
`/bezwaren` (+`/bezwaren/:id`), `/beroepen` (+`/beroepen/:id`), `/bezwaar-decisions`
62-
(+`/bezwaar-decisions/:id`), `/bezwaar-advice-requests` (+`/bezwaar-advice-requests/:id`),
63-
`/settings/bezwaar-committees` (+`/settings/bezwaar-committees/:id`) — SHALL remain registered and
64-
reachable by direct URL and e2e specs. No page SHALL be added to `src/menu-layout.json#removals`.
59+
dossiq SHALL keep every objections-and-appeals DETAIL page routable at its existing route.
60+
Relocation moves only the menu entry, so `/bezwaar-decisions` (+`/bezwaar-decisions/:id`),
61+
`/bezwaar-advice-requests` (+`/bezwaar-advice-requests/:id`), `/settings/bezwaar-committees`
62+
(+`/settings/bezwaar-committees/:id`), `/bezwaren/:id` and `/beroepen/:id` SHALL remain registered
63+
and reachable by direct URL and e2e specs.
64+
65+
AMENDED 2026-09-02. The `/bezwaren` and `/beroepen` INDEX pages are retired outright, not hidden.
66+
Each was an index over register `dossiq` and schema `case` whose only narrowing was
67+
`filter: { caseType: <uuid> }`, and Cases carries the same register, the same schema and the same
68+
narrowing through its `folderSidebar` (`filterField: caseType`). A second list over identical data
69+
is the duplication this grouping set out to remove, so hiding the entry stopped half way. Detail
70+
routes stay, so every objection and appeal link keeps resolving. The original clause forbidding a
71+
`src/menu-layout.json#removals` entry now holds for a different reason: there is no entry left to
72+
remove.
6573

6674
#### Scenario: Deep links to grouped pages still resolve
6775

6876
- **GIVEN** the grouping has shipped
69-
- **WHEN** a user navigates directly to `/bezwaren`, `/beroepen`, `/bezwaar-decisions`,
70-
`/bezwaar-advice-requests`, or `/settings/bezwaar-committees`
77+
- **WHEN** a user navigates directly to `/bezwaar-decisions`, `/bezwaar-advice-requests`, or
78+
`/settings/bezwaar-committees`
7179
- **THEN** the corresponding page SHALL load
7280
- **AND** the page route SHALL be unchanged from before the grouping
7381

openspec/specs/parafeerroute-engine/spec.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,27 @@ The system SHALL execute parafeerroute steps in sequential order. Each step SHAL
5555
- **AND** the step 4 actor SHALL receive a Nextcloud notification
5656
- **AND** the voorstel updatedAt SHALL be refreshed
5757

58-
### Requirement: Admin Parafeerroute Configuration
58+
### Requirement: Admin parafeerroute configuration
5959

60-
The system SHALL provide an admin UI for creating and managing parafeerroutes. Routes SHALL be linkable to case types and voorstel types.
60+
Approval routes SHALL be authored in the decision app. dossiq raises a voorstel's
61+
chain there and records the outcome, and SHALL NOT offer a local authoring surface.
62+
63+
AMENDED 2026-09-02. dossiq#1666 moved the parafering RUNTIME to decidiq and retired
64+
the local engine with no facade, including the dossiq-side flow projection that
65+
dossiq#1632 had introduced. So there is no dossiq authoring surface left to keep,
66+
and the `/settings/parafeerroutes` index page is retired with it: editing a route
67+
object here would reach nothing that runs. `/settings/parafeerroutes/:id` stays
68+
registered so a reader can still open a legacy route object, and so the frozen
69+
`procest.parafering.*` audit trail that names `parafeerrouteId` keeps resolving.
6170

6271
**Feature tier**: V1
6372

64-
#### Scenario: Create a new parafeerroute
73+
#### Scenario: Create a new approval route
6574

66-
- **WHEN** the beheerder navigates to admin settings and opens the "Parafeerroutes" tab
75+
- **WHEN** the beheerder authors the approval route in the decision app
6776
- **THEN** the beheerder SHALL be able to create a new route with a name
6877
- **AND** the beheerder SHALL be able to add steps with: step type (advies/parafering/accordering), actor type (user/group/role), actor selection, mandatory flag
69-
- **AND** the beheerder SHALL be able to reorder steps via drag-and-drop
78+
- **AND** the beheerder SHALL be able to reorder steps on the canvas
7079

7180
#### Scenario: Link route to case type
7281

src/components/bezwaar/BezwaarBeroepOverview.vue

Lines changed: 0 additions & 152 deletions
This file was deleted.

src/manifest.d/bezwaar-beroep-cards.json

Lines changed: 0 additions & 26 deletions
This file was deleted.

0 commit comments

Comments
 (0)