Skip to content

Attention needed overview member(ships)#545

Merged
tomudding merged 11 commits into
GEWIS:mainfrom
rinkp:feat/flagged-member-renewals-2026
Jul 7, 2026
Merged

Attention needed overview member(ships)#545
tomudding merged 11 commits into
GEWIS:mainfrom
rinkp:feat/flagged-member-renewals-2026

Conversation

@rinkp

@rinkp rinkp commented Jun 20, 2026

Copy link
Copy Markdown
Member

Description

Introduces an overview of members/memberships that require attention

Related issues/external references

Fixes GH-544.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation improvement (no changes to code)
  • Other (please specify)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new “attention needed” overview for members/memberships, intended to help administrators quickly identify members with expiring memberships or missing required information (Fixes GH-544).

Changes:

  • Added a new /member/attention-needed route + controller action and a new view to display members requiring attention.
  • Introduced AttentionReasons enum plus service/mapper logic to collect members and reasons (missing email/student ID, expiring by membership type/activity).
  • Updated translation catalogs with new UI strings for the new overview and adjusted button labels on the member index page.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
module/Database/view/database/member/index.phtml Adds a button linking to the new attention-needed overview; tweaks button label capitalization.
module/Database/view/database/member/attention-needed.phtml New table view rendering members requiring attention and recommended actions.
module/Database/src/Service/Member.php Adds getMembersRequiringAttention() orchestration method (collect + dedupe + sort).
module/Database/src/Model/SubDecision/Annulment.php Clarifies annulment semantics in doc comment.
module/Database/src/Model/Enums/AttentionReasons.php New enum encapsulating attention labels/actions + UI recommendations.
module/Database/src/Mapper/Organ.php Adds helper subquery to determine whether a member was active within a timeframe.
module/Database/src/Mapper/Member.php Adds mapper queries to find “attention-needed” members (missing email/student ID, expiring; active vs non-active).
module/Database/src/Controller/MemberController.php Adds attentionNeededAction() to serve the new overview.
module/Database/config/module.config.php Registers the new attention-needed child route under /member.
module/Application/language/nl.po Adds Dutch translations for newly introduced UI strings.
module/Application/language/en.po Adds English translations for newly introduced UI strings.
module/Application/language/gewisdb.pot Updates translation template with new msgids.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread module/Database/view/database/member/attention-needed.phtml
Comment thread module/Database/src/Mapper/Member.php
Comment thread module/Database/src/Model/Enums/AttentionReasons.php
Comment thread module/Database/src/Mapper/Organ.php Outdated
rinkp added a commit to rinkp/gewisdb that referenced this pull request Jun 20, 2026
@rinkp rinkp marked this pull request as ready for review June 20, 2026 20:44
@rinkp rinkp requested a review from tomudding June 20, 2026 20:45
@rinkp rinkp mentioned this pull request Jun 20, 2026
5 tasks
@rinkp rinkp force-pushed the feat/flagged-member-renewals-2026 branch from ed35037 to 4816887 Compare June 25, 2026 20:23
@rinkp

rinkp commented Jun 25, 2026

Copy link
Copy Markdown
Member Author

tomudding and others added 4 commits June 26, 2026 11:43
…hydrated

This is required for my next commit that expands the seeders. Without it, the
entity manager holds the old reference and the `OrganMember` will not be
available when discharging.

I made it fall back to looking up the `OrganMember` by its installation when the
inverse is unavailable. Behaviour is unchanged when it is available, and the
same exception is still thrown if it genuinely does not exist.
I want to move towards a seeder that covers all functionality in GEWISDB, such
that it easier for everyone to test the (existing) functionality. Ideally, this
would go hand in hand with proper unit tests rather than the manual testing we
currently have to do every time. But that is a pull request for the future.

Adds a purpose-built seed for members, with organ scaffolding for the
active/non-active classifications, so the page renders real rows and each edge
case.

All cases were defined by me, Claude wrote the boilerplate code for the members.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Done in most places, so should be done here as well.
tomudding
tomudding previously approved these changes Jun 26, 2026
Comment thread module/Database/src/Mapper/Member.php
Comment thread module/Database/view/database/member/attention-needed.phtml Outdated
`Days` was used as suffix in most places, so opted to fix it for the parameters
where this was note the case.
@tomudding tomudding force-pushed the feat/flagged-member-renewals-2026 branch from 4958a41 to 3f4d777 Compare June 26, 2026 10:45
@tomudding

Copy link
Copy Markdown
Member

I do not agree with the failure of the migration and seeder checker. It is unrelated to the changes here and something I wanted to address with GH-546 as well.

@rinkp rinkp requested a review from tomudding June 26, 2026 19:23
@tomudding tomudding merged commit 89965ff into GEWIS:main Jul 7, 2026
4 of 5 checks passed
github-actions Bot added a commit that referenced this pull request Jul 7, 2026
Rink: Attention needed overview member(ships) (#545)

* Introduce subquery to filter for active/non-active/inactive members

* feat: Introduce page with members requiring attention

* Add translations for members with attention overview

* fix: address copilot-identified issues GH-545

* fix: resolve discharge OrganMember by installation when inverse is unhydrated

This is required for my next commit that expands the seeders. Without it, the
entity manager holds the old reference and the `OrganMember` will not be
available when discharging.

I made it fall back to looking up the `OrganMember` by its installation when the
inverse is unavailable. Behaviour is unchanged when it is available, and the
same exception is still thrown if it genuinely does not exist.

* test: seed members for the requiring-attention overview

I want to move towards a seeder that covers all functionality in GEWISDB, such
that it easier for everyone to test the (existing) functionality. Ideally, this
would go hand in hand with proper unit tests rather than the manual testing we
currently have to do every time. But that is a pull request for the future.

Adds a purpose-built seed for members, with organ scaffolding for the
active/non-active classifications, so the page renders real rows and each edge
case.

All cases were defined by me, Claude wrote the boilerplate code for the members.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: remove unnecessary colons for DQL parameters

* fix: escape member name in attention-needed overview

Done in most places, so should be done here as well.

* chore: normalise parameter names

`Days` was used as suffix in most places, so opted to fix it for the parameters
where this was note the case.

* chore: change date handling

See #545 (comment)

* fix: performance when counting array of size <= 5

---------

Co-authored-by: Tom Udding <tomudding@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Co-authored-by: tomudding <tomudding@users.noreply.github.com>
@rinkp rinkp deleted the feat/flagged-member-renewals-2026 branch July 8, 2026 14:23
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.

Create overview of (expiring) members requiring attention

3 participants