Skip to content

Application: Allow sending accept/reject mails to selected students#1919

Open
rappm wants to merge 3 commits into
mainfrom
328-send-status-mails-to-selected
Open

Application: Allow sending accept/reject mails to selected students#1919
rappm wants to merge 3 commits into
mainfrom
328-send-status-mails-to-selected

Conversation

@rappm

@rappm rappm commented Jul 13, 2026

Copy link
Copy Markdown
Member

📝 Pull Request Template

✨ What is the change?

Adds Send Acceptance Mail and Send Rejection Mail row actions to the application participants
table. They send the configured acceptance/rejection status mail to only the selected students
instead of to every applicant with that pass status.

  • Backend: PUT /api/mailing/:coursePhaseID (SendStatusMail) now accepts an optional
    recipientCourseParticipationIDs list. When provided, the status mail is sent only to those
    participants (reusing the existing GetParticipantMailingInformationByIDs query); when omitted the
    behavior is unchanged (all participants with the given status).
  • Frontend: the two new bulk actions (with confirmation dialogs) call the mailing endpoint with
    the selected rows' participation IDs and report the result via a toast.

📌 Reason for the change / Link to issue

Previously accept/reject mails could only be sent to all students of a given status. Lecturers asked
to be able to send them to a hand-picked subset (e.g. re-sending to a few students).

Closes #328

🧪 How to Test

  1. Configure the acceptance/rejection mail templates for an Application phase (Mailing settings).
  2. Open Participants, select one or more applicants.
  3. Use the row action Send Acceptance Mail or Send Rejection Mail and confirm.
  4. Verify only the selected students receive the mail (toast reports the counts).

🖼️ Screenshots (if UI changes are included)

Before After
before after

✅ PR Checklist

  • Tested locally or on the dev environment
  • Code is clean, readable, and documented
  • Tests added or updated (if needed)
  • Screenshots attached for UI changes (if any)
  • Documentation updated (if relevant)

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@rappm, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 45 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 6a401af4-a0a1-427e-be77-c6de7ab17f9b

📥 Commits

Reviewing files that changed from the base of the PR and between a4c7721 and 2fd650d.

📒 Files selected for processing (12)
  • clients/core/src/managementConsole/applicationAdministration/pages/ApplicationParticipantsPage/components/table/ApplicationParticipantsTable.tsx
  • clients/core/src/managementConsole/applicationAdministration/pages/ApplicationParticipantsPage/components/table/applicationActions.tsx
  • clients/core/src/managementConsole/applicationAdministration/pages/ApplicationParticipantsPage/hooks/useSendStatusMail.ts
  • clients/core/src/network/mutations/sendStatusMail.ts
  • servers/core/database_dumps/manual_mail_test.sql
  • servers/core/docs/docs.go
  • servers/core/docs/swagger.json
  • servers/core/docs/swagger.yaml
  • servers/core/mailing/mailingDTO/SendStatusMail.go
  • servers/core/mailing/manualMail_test.go
  • servers/core/mailing/router.go
  • servers/core/mailing/service.go
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 328-send-status-mails-to-selected

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@rappm rappm marked this pull request as ready for review July 15, 2026 14:24
@rappm rappm requested a review from a team July 15, 2026 14:24
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.

Send accept/reject mails to specifically selected students

1 participant