Skip to content

feat(admin): hint when Nextcloud does not forward notifications by email - #300

Merged
luflow merged 1 commit into
mainfrom
claude/guest-handling-app-063bd9
Oct 9, 2026
Merged

luflow merged 1 commit into
mainfrom
claude/guest-handling-app-063bd9

Conversation

@luflow

@luflow luflow commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • The reminder settings warn when the Notifications app keeps email forwarding at "Never" (the default on a fresh instance), link to its settings and can be collapsed. The choice is stored for all admins. Triggered by Guest Participation by mail is not working #298, where guests never got an email about an appointment.
  • Missing psalm type imports in the admin and appointment controllers are added. Findings they had hidden are fixed in code, and 12 baseline entries are gone.

API changes (all additive, nothing removed)

  • Talk room create/delete, check-in and book/unbook now answer with the serialized appointment or response, so they carry occupancy, isFull, waitlisted and the effective booking status. The web client merges the talk room answer into its state, which now gets the resolved allowMaybe instead of the raw nullable value.
  • Spec corrections: navigation no longer documents seriesId/seriesPosition (never sent), isGuest/waitlisted on the response list are optional, team options are {id, label, type}.
  • Web frontend and attendance-flutter checked: neither reads the changed fields from these answers, so no client change is needed.

Test plan

  • ./scripts/check.sh passes
  • Reminder settings: warning shows with "Never", hides after hiding the hint, collapsed note can be reopened
  • Talk room open/delete and book/unbook in the web UI

🤖 Generated with Claude Code

On a fresh instance the Notifications app keeps "Send email reminders about
unhandled notifications" at "Never", so reminders and appointment
notifications only reach the bell and the mobile app. The reminder settings
now say so, link to the Notifications settings and can be collapsed, since
some instances want it that way. The choice is stored for all admins.

The admin and several appointment controllers lacked their psalm type
imports, which hid findings and left baseline entries behind. With the
imports in place:
- Talk room, booking and check-in responses now go through the serializers
  and carry the fields their documented types promise (occupancy, isFull,
  waitlisted, effective booking status).
- Vacation, audit and self-check-in payloads are typed at their source.
- The navigation and response-list types no longer claim fields the server
  never sent.
- The deprecated getAppValue and getJobs calls in the admin settings are
  replaced.

Nothing is removed from any response, so older mobile clients keep working.
@luflow
luflow merged commit 48198c6 into main Oct 9, 2026
6 checks passed
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