Skip to content

v18.0.0.23.3 - #401

Merged
FherStk merged 22 commits into
mainfrom
v18.0.0.23.3
Sep 5, 2026
Merged

v18.0.0.23.3#401
FherStk merged 22 commits into
mainfrom
v18.0.0.23.3

Conversation

@FherStk

@FherStk FherStk commented Sep 5, 2026

Copy link
Copy Markdown
Member

What's new

Head of Studies, Deputy Head of Studies and Quality coordinator gained access to Communications:

Notices and Surveys were previously only reachable by academic admins; these three roles can now use both, each scoped to what they should see - Head of Studies/Deputy see and manage their own records, the Quality coordinator gets read access to every survey centre-wide but can only edit the ones they created themselves.

Notices can target a student's personal address, corporate address, or both:

Replaces a hardcoded "corporate first" fallback with an explicit per-notice choice, including sending to both addresses separately when a student has them, and warning (instead of silently dropping) a student who has no address matching the chosen option.

Notice signature is now configurable, and replies route to the actual sender:

A previously hardcoded English-only signature is now a centre-wide default (editable per notice), and replies now go to whoever actually sent the notice instead of a fixed technical address.

Notices and Surveys lists default to "Show only mine":

Matches the same comfortable default already used elsewhere in the app - one click away from seeing everyone else's records, with no change to who can edit what.

Attendance correction requests list defaults to showing only Pending:

Standalone Accepted/Rejected filters and group-by are also available, so approvers aren't stuck scrolling through the full historic list to find what still needs a decision.

Changes

Tutors can edit most of a student's personal and demographic data:

Document ID, passport, medical ID, NUSS, car plate, birth date/country, citizenship and special educational needs are now editable by the tutor of that student - previously locked to admin/secretary only, even though tutors are the ones who actually notice data-entry mistakes. Student ID, the student's own email, and the computed "Adult" field stay admin/secretary-only as requested.

Student contact form separates personal and corporate email:

A student's contact form now shows a clearly labelled "Personal email" alongside a read-only "Corporate email" mirror, instead of one ambiguous "Email" field that looked interchangeable with the student's institutional address.

Vehicle-plate label no longer assumes a car:

Relabeled from a car-specific wording to a vehicle-neutral one.

Adding a new family contact no longer requires a DNI/NIE or passport:

That information is frequently unavailable when a contact is first added, so it's now optional at creation time.

Fixes

Several fields showed in English or with a wrong label regardless of the interface language:

Attendance-correction statuses (Pending/Accepted/Rejected), a Notice recipient option ("Both"), and a mislabeled surname field (a leftover from an unrelated, uninstalled module) all now render correctly translated in Catalan and Spanish - verified directly against the stored translations in the database, not just the translation files.

Academic admins were silently restricted to their own notices, and had no access to Surveys at all:

A permissions rule meant to be an alternative was instead being combined with every other rule, so an admin only ever saw the notices they personally created; Surveys had no access rows for admins whatsoever, despite already being listed in that menu. Both fixed.

Browser tours across the app were fragile against non-English admin accounts:

Many tours assert on literal English button/label text, which only works if the admin account driving them happens to have English as its language - not guaranteed on every environment. Audited and fixed across the large majority of the test suite (45+ files), plus two survey tours that broke separately because their fixtures were created as a different user than the one the "show only mine" default filter checks against.

The "Add contact" wizard silently failed to save for tutors:

An access-rights gap meant a tutor could fill in the whole form but the save would fail with no clear explanation. Fixed with an authorized bypass that reuses the exact same rule already governing whether the "Add contact" button is shown, so both stay in sync.

First/last name fields had reversed read-only behaviour for tutors:

The surname field was unexpectedly editable while the first-name field was correctly locked - fixed so both follow the same rule.

Several curriculum models crashed on the built-in "Duplicate" action:

Study, Subject, Level, Content, Criteria and Outcome all raised a raw database error instead of duplicating cleanly, due to an unhandled unique-code constraint. Duplication is disabled on all six for now.

A deploy could abort over an unrelated branch's stale state:

The deploy script's git pull step fetched every branch instead of just the one being deployed, so a completely unrelated broken branch reference could fail the whole deploy. Now scoped to only the branch actually being deployed.

Internal changes

Expanded regression coverage for the access-control and permission fixes above:

New tests cover Notice/Survey role-based visibility, the attendance-correction filters, and the tutor contact-wizard authorization bug, including real before/after checks rather than just asserting the fixed behaviour in isolation.

Developer and user documentation updated for all the above:

New or updated English developer docs, and trilingual (English/Catalan/Spanish) manuals for the roles affected (admin, head of studies) - this area previously had little to no user-facing documentation.

Investigated, not fixed: a data-quality gap in family contact names:

A sizeable share of existing family contacts have no first name recorded, only a single word stored as the surname - confirmed as a real historical data gap rather than a search/display bug. Flagged to the developer to decide on a one-off data migration; no migration has been run yet.

Related with

@FherStk

FherStk commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

/changelog-clean

@FherStk

FherStk commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

/deploy-check

@FherStk

FherStk commented Sep 5, 2026

Copy link
Copy Markdown
Member Author

/deploy-check

@FherStk
FherStk marked this pull request as ready for review September 5, 2026 16:40
@FherStk
FherStk merged commit 10d9689 into main Sep 5, 2026
9 checks passed
@FherStk
FherStk deleted the v18.0.0.23.3 branch September 5, 2026 16:40
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.

Tutor permission to create student's contacts. Communications: some fixes needed Attendance correction: display only pending by default.

1 participant