Friday, November 21, 2025
9 changes · 18.0
Enhancements to existing features
This update makes the test runner more forgiving when no tests are found, avoiding an error and recording the situation as a log instead. It also improves how test results are reported at the end of a run in headless mode, making debugging easier and test output clearer.
Original PR description
[FIX] web: Hoot - remove error if no tests This commit replaces the error thrown if there is no test found by a log. --- [IMP] web: Hoot - log root suites at end of run This commit makes the unit test runner log all root suites results after each test run, only in headless mode.
The system now waits longer between homepage data refreshes when a browser tab stays open for a long time. This reduces unnecessary traffic to the IoT Box while still keeping the homepage information up to date.
Original PR description
In order to avoid spamming the IoT Box with requests to update the homepage when a tab is kept open, we now progressively delay the `/data` fetch during the first 30min to end up fetching only once every 30min. Forward-Port-Of: odoo/odoo#236664
Resolved issues and error corrections
This fix makes website anchor links behave as users expect when “Open in New Window” is enabled. Instead of staying in the same tab and scrolling on the page, the link now opens in a new tab while still jumping to the selected section.
Original PR description
Steps to Reproduce: 1. Create an anchor link for any dropped snippet. 2. Insert the link through the link popover. 3. Enable the "Open in New Window" option. 4. Click on Save. 5. Click on the link. Issue: Even though the "Open in New Window" option is enabled, the page scrolls in the same tab instead of opening in a new window and scrolling to the targeted view. Reason: When an anchor link has target="_blank", `ev.preventDefault()` was still being called, which prevented the browser from performing its default behavior of opening the link in a new tab. Fix: Removed `ev.preventDefault()` for such links, as the expected behavior is to open them in a new tab whenever target="_blank" is set. Additionally, the offcanvas mobile-specific logic has been removed, as it is no longer necessary now that `ev.preventDefault()` is no longer used. task-5104027 Forward-Port-Of: odoo/odoo#228787
Documentation and clarification updates
This change updates the corporate contributor agreement documentation for Moduon. It matters for legal and compliance tracking, but does not affect product behavior for users.
Original PR description
@moduon MT-12696 Forward-Port-Of: odoo/odoo#236642
Certification lines now refresh their status color correctly when a certificate passes its end date. This ensures the Certifications report reflects the current situation without requiring any manual change.
Original PR description
**Steps to reproduce:** 1. Install `hr_skills_survey` 2. Go to Employees > Reporting > Certifications. 3. Create a certification line with a future end date → record shows in black. 4. Change the system date to after the end date. **Issue:** - The line color is not updated when time passes. **Cause:** https://github.com/odoo/odoo/blob/76a8d6bc28eb5998bd976b3c41bf9772d325c8bf/addons/hr_skills_survey/models/hr_resume_line.py#L17 https://github.com/odoo/odoo/blob/76a8d6bc28eb5998bd976b3c41bf9772d325c8bf/addons/hr_skills_survey/views/hr_employee_certification_views.xml#L7 - The color was based on the stored computed field `expiration_status`, which only depends on `date_end`. Since `date_end` does not change with time, the field value is not recomputed daily. **Solution:** - Introduce a non-stored computed field `expiration_status_ui`, depending on `date_end` and use it in the view to update expiration_status. opw-5065185
The Documents settings page now shows clearer labels and helper text for each access right option. This makes it easier for administrators to understand what each permission does and choose the right setting with confidence.
Original PR description
This commit fix the label of documents access rights which now shows a helper for each documents res.groups. Task-5186096
This fix prevents parent folders from automatically expanding when a user opens a folder inside them. It makes folder navigation in Documents more predictable and keeps the folder tree easier to scan.
Original PR description
Steps to reproduce =================== - Go to the `All` section. - Open the folder hosted in the `My Drive`. - `My Drive` gets unfolded. To Be ===== - The` My Drive` folder should not be unfolded when opening folders inside it, like `Company`. Technical =========== - Earlier, we were sticking to the condition that allows other root folders to unfold when we open a folder inside it, except the `Company` folder. After this commit ================== - This commit addresses the issue, and now whenever we click on a certain folder it will not unfold until its root is unfolded. Task-5046161
The system now uses the current official state code for Odisha in India. This avoids incorrect location data when creating contacts and related documents like sales orders.
Original PR description
**Steps to reproduce:** 1. Install the `Contacts` module. 2. Go to Contacts > Create a new contact. 3. Select country India, and state Odisha. 4. Create a sales order using the newly created contact. **Issue:** As per [Government of India](https://www.iso.org/obp/ui/#iso:code:3166:IN), the state code was officially changed from "OR" to "OD" in 2023. However, Odoo still uses the outdated code. <img width="407" height="163" alt="image" src="https://github.com/user-attachments/assets/1631a831-f455-4a51-886f-7e4ed691add0" /> **Solution:** Update the name of the state from "OR" to "OD" in state records. **opw-4935633** Forward-Port-Of: odoo/odoo#234697
This change fixes how Mail’s automated tests simulate browser environments. It ensures the test tool is used with the intended device/platform values, which helps keep test behavior accurate and reliable.
Original PR description
The `mockUserAgent()` is meant to be used with a "platform" ("mac",
"windows", "android"...) as parameter and not a whole user agent string.
In specific cases, a custom string can be used instead, but only to be
added to the user agent string.
This commit adapts its usage(s) accordingly.