v18.0.0.23.5 - #415
Merged
Merged
Conversation
Closes #413 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…-after-running-it' of https://github.com/ElPuig/EMS into v18.0.0.23.5
…s-at-least' of https://github.com/ElPuig/EMS into v18.0.0.23.5
Member
Author
|
/changelog-clean |
FherStk
marked this pull request as ready for review
September 7, 2026 23:43
Member
Author
|
/deploy-check |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What's new
Guard duty board: filter by level:
Teachers can now filter the guard-duty board by education level (multi-select, e.g. ESO+Batxillerat together vs. vocational levels). The board's rows, guard assignments, break rows and PDF export all respect the selection, and selecting every level behaves identically to selecting none.
Subject enrollments now follow a student's study changes:
Changing a student's Studies field now auto-assigns their main group and regenerates their subject enrollments from that study's enrollment template, keeping any enrollment that already has grades recorded instead of discarding it.
Teaching hour reduction types (age-based reductions):
Added a new catalog for teaching-hour reduction types (e.g. the R55 reduction for teachers aged 55 and over), assignable per teacher and shown as an extra line in their weekly teaching-hours summary and schedule report.
Teachers can now export list views to CSV:
Teachers can export any list view they can already read (students, attendance, grades, enrollments...) to CSV, using Odoo's own all-or-nothing export permission.
Fixes
Guard duty board no longer shows phantom or empty rows:
Fixed the guard-duty board (and its PDF export) showing near-duplicate or entirely empty rows when a teacher's personal schedule ended a period a few minutes earlier than the surrounding standard slot.
Attendance templates could silently disappear or pile up:
Fixed the calendar-to-attendance-template sync losing a solo teacher's templates when they taught the same subject to several groups, and made superseded templates with no real history get deleted instead of piling up forever as archived records. Existing production data repaired via migration.
devel.shwas leaving some real email addresses untouched:Extended the anonymization step to also rewrite a few address columns it was missing (LimeSurvey recipients, employees' private email, the secretariat email, and the company's own email), closing a gap in the guarantee that no real person can receive an email from a dev environment.
Department and staff hierarchy fixes:
Fixed several related issues on department/employee hierarchy: a Department Chief can now be removed without immediately assigning a replacement, only real teaching/administrative staff can be selected as a Chief, Seminar Chief or Area Manager, and nobody - including a Director who is a regular member of a department - can end up outranking the Director.
Secretary couldn't create manual subject enrollments from the student form:
Fixed the student form's subject-enrollment lines being read-only for secretary despite their access rules already granting full access, and corrected an error message that wrongly claimed a group's tutor also had this access.
Reinforcement group students were invisible on the group's own form:
Reinforcement groups had two disconnected notions of membership: a manually-edited list, and the real per-subject enrollments that actually drive attendance and grading. The group's form now shows real enrollments for both group types, making it the single source of truth for membership.
Internal changes
Shared scheduling helpers deduplicated:
Moved the float-hour comparison tolerance used by schedule-related computations into a shared mixin instead of leaving it duplicated, and dropped an unused manual ordering field from two catalog models (non-teaching types, teaching hour reduction types) in favor of ordering by name.
Related with