Friday, September 11, 2026
13 changes · master
Code cleanup and technical improvements
Updated internal spreadsheet component setup to use the current supported approach for handling component inputs. This helps keep the spreadsheet experience maintainable and reduces the risk of future compatibility issues, with no expected functional change for users.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`, providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.This change reorganizes several internal Odoo test modules into a single shared test_base module. It helps simplify maintenance of the test suite without changing day-to-day business functionality for users.
Original PR description
enterprise: https://github.com/odoo/enterprise/pull/130186 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change removes an unused navigation bar template from the web module. It has no expected impact on day-to-day use, but it helps keep the codebase cleaner and easier to maintain.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update modernizes internal website component setup so it uses the current validation approach. It reduces deprecated code and helps keep website-related features easier to maintain without changing visible functionality for users.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`, providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.This update modernizes internal VOIP screen components by replacing an outdated validation pattern with the current approach. It should not change day-to-day behavior for users, but it helps keep the calling interface easier to maintain and less prone to future compatibility issues.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`, providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.This update removes unused internal pieces from the report editor in Web Studio. It does not change the visible experience, but helps keep the codebase simpler and easier to maintain.
Several internal test modules have been reorganized into a single base test area. This keeps the testing structure simpler and easier to maintain without changing business features or user workflows.
Original PR description
community: https://github.com/odoo/odoo/pull/285672
Odoo’s mail and discussion tools now handle temporary messages through the standard server-driven process instead of special browser-side logic. This reduces complexity and helps messages behave more consistently, including unread markers and message ordering.
Original PR description
Before this commit, a dedicated bus handler builds the transient message in JS: it fills the author, the note subtype and an id made of the last known message id plus 0.01, then pushes the message in the message lists of its thread. There is no need for custom JS code here, as all these values can be computed server side. This commit sends the message as a plain store insert, so the handler goes away and the client applies it like any other record. Its id comes from the message sequence. A transient message therefore holds a real id, where two mechanisms counted on a fractional one. The persistent message getters of a thread now test is_transient and isPending, as persistentMessages already does, and the unread separator skips transient messages. https://github.com/odoo/enterprise/pull/130112
This change updates internal automated tests for the Helpdesk live chat feature to use a standard verification method. It does not change customer-facing behavior, but it helps keep future updates safer and easier to maintain.
Original PR description
Enterprise counterpart of "[REF] mail: drop the transient message bus handler", which explains why a transient message is sent as a store insert. Before this commit, the test searches the last bus record of the operator and digs the message body out of its json payload. There is no need for that, as the bus tests provide assertBus. This commit asserts the notification with assertBus. The Load More case expects the whole reply, as the tool compares the payload as a whole. https://github.com/odoo/odoo/pull/280252
Mail and live chat now calculate certain status values only when they are needed instead of storing duplicate internal data. This keeps the underlying messaging data model simpler and reduces unnecessary writes, with no expected change for users.
Original PR description
Before this commit, a value like isVideoStreaming or offlineMembers is a field with a compute. Nothing else writes it, so the field only stores what the compute makes. This commit declares each of them as a computed instead, made on read. A member list writes nothing when it sorts now, so its FIXME goes.
The mail interface’s tab structure was simplified so each tab is defined in one place instead of split across separate header and content lists. This reduces the chance of configuration mistakes and makes future maintenance of mail-related screens easier, with minimal expected impact for end users.
Original PR description
Tabs used two static slots (headers/panels) as a workaround for Owl not supporting dynamic slot names, forcing callers to keep two parallel lists in sync by id. This was cumbersome to could cause errors (tab id set in two different places. Portal a Tab's header into the nav bar instead, so header and panel content live on one <Tab> declared once, including from a single t-foreach. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update modernizes internal component setup across several HR-related Odoo apps to align with the newer interface framework. It helps keep expense, time off, recruitment, skills, timesheet, and work entry screens maintainable and ready for future upgrades without changing business workflows.
Original PR description
- https://github.com/odoo/enterprise/pull/131078 See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update refreshes internal HR app screen components to align with the newer interface framework. It helps keep appraisal, attendance, salary, expense, and payroll features stable and easier to maintain without changing day-to-day user workflows.
Original PR description
- https://github.com/odoo/odoo/pull/287445 See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr