Move the member overview query into the Membership domain closes #590 #596

Merged
simon merged 5 commits from issue/mitgliederverwaltung-590 into main 2026-10-16 17:04:38 +02:00
Owner

Description of the implemented changes

The changes were:

  • Bugfixing
  • New Feature
  • Breaking Change
  • Refactoring

Move the member overview query into the Membership domain. The query that decides which members match the overview's filters, and in which order, is business logic. It lived under MvWeb.MemberLive.Index, and since #536 the CSV and PDF export controllers depended on it there. It now lives in Mv.Membership, and the web layer only decodes URL parameters and calls into the domain. Behaviour is unchanged, and the overview/export parity property and the existing overview tests guard it.

What has been changed?

  • Move overview date filter expressions into the domain
  • Move the member overview query into the domain
  • Load member export data in the domain

Definition of Done

Code Quality

  • No new technical depths
  • Linting passed
  • Documentation is added were needed

Accessibility

  • New elements are properly defined with html-tags
  • Colour contrast follows WCAG criteria
  • Aria labels are added when needed
  • Everything is accessible by keyboard
  • Tab-Order is comprehensible
  • All interactive elements have a visible focus

Testing

  • Tests for new code are written
  • All tests pass
  • axe-core dev tools show no critical or major issues

Additional Notes

  • Larger commits: "Move the member overview query into the domain" touches 25 files, mostly test files moved to test/mv/membership/ with only module names and aliases changed. "Move overview date filter expressions into the domain" moves about 240 lines into a new domain module.
## Description of the implemented changes The changes were: - [ ] Bugfixing - [ ] New Feature - [ ] Breaking Change - [x] Refactoring Move the member overview query into the Membership domain. The query that decides which members match the overview's filters, and in which order, is business logic. It lived under `MvWeb.MemberLive.Index`, and since #536 the CSV and PDF export controllers depended on it there. It now lives in `Mv.Membership`, and the web layer only decodes URL parameters and calls into the domain. Behaviour is unchanged, and the overview/export parity property and the existing overview tests guard it. ## What has been changed? - Move overview date filter expressions into the domain - Move the member overview query into the domain - Load member export data in the domain ## Definition of Done ### Code Quality - [ ] No new technical depths - [x] Linting passed - [ ] Documentation is added were needed ### Accessibility - [ ] New elements are properly defined with html-tags - [ ] Colour contrast follows WCAG criteria - [ ] Aria labels are added when needed - [ ] Everything is accessible by keyboard - [ ] Tab-Order is comprehensible - [ ] All interactive elements have a visible focus ### Testing - [x] Tests for new code are written - [x] All tests pass - [ ] axe-core dev tools show no critical or major issues ## Additional Notes - Larger commits: "Move the member overview query into the domain" touches 25 files, mostly test files moved to `test/mv/membership/` with only module names and aliases changed. "Move overview date filter expressions into the domain" moves about 240 lines into a new domain module.
Merge branch 'main' into issue/mitgliederverwaltung-590
Some checks reported errors
continuous-integration/drone/push Build was killed
continuous-integration/drone/promote/production Build is passing
ce1e5b8a61
simon merged commit b4fc83b9d4 into main 2026-10-16 17:04:38 +02:00
simon deleted branch issue/mitgliederverwaltung-590 2026-10-16 17:04:39 +02:00
Sign in to join this conversation.
No description provided.