Thursday, February 19, 2026
7 changes · saas-18.4
Resolved issues and error corrections
A test attachment name was adjusted so file type detection behaves consistently across different build environments. This helps keep automated checks reliable for the Turkish Nilvera e-Dispatch integration without changing customer-facing functionality.
Original PR description
The test `test_ereceipt_xml_without_errors_upload` was broken on builds using python-magic for mimetype detection due to some behavior discrepancies with of without the libmagic bindings (detecting the `test_ereceipt.xml` file content as either plain text or proper xml). This commit fixes it by simply renaming the attachment created for the test, as it was already done during the forward port of the original commit [^1] to 19.0. runbot-238805 [^1]: https://github.com/odoo/odoo/pull/232848/changes#diff-764d87a2598c60c585bf203412013c9ac89acf74e083178120168031f78a64f1R37
This fixes an editing issue where typing after pressing backspace near a button could insert text in the wrong place. Users editing notes or content with buttons now get behavior that matches the visible cursor position, reducing accidental formatting or content errors.
Original PR description
When using backspace after a button, the cursor is visually displayed as being inside the button, but it a character is typed, it is inserted after the button, while it should be inside. What actually happens is that after backspace after a button, the selection is set around the FEFF that follows the button. This commit fixes this by putting the selection before the FEFF inside the button instead. Steps to reproduce: - Go to a "To do" note - Insert a button - Insert text after the button - Put cursor before text after button - Press backspace: the cursor is displayed inside the button - Type a letter => The letter was inserted after the button. task-5928806 Forward-Port-Of: odoo/odoo#249126 Forward-Port-Of: odoo/odoo#248179
The Time Off test tour now skips non-clickable placeholder days in the yearly calendar. This prevents false test failures in years where the calendar starts with disabled cells, improving reliability without changing user-facing behavior.
Original PR description
Before, the tour attempted to click the “first Thursday” by selecting the first .fc-day-thu element in the DOM. The yearly calendar sometimes renders an initial “empty”/disabled weekday cell (when Jan 1 is Fri/Sat/Sun), so the first .fc-day-thu can be a disabled slot with no actionable element. That makes firstChild de-facto empty and the tour fails (seen reproducibly when the server date is set to years like 2027/2028, for example). Excluding .fc-day-disabled makes the selector target the first real Thursday cell task-5930501 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#248275
This fix prevents tooltips from disappearing when a user moves the mouse from a child element back within the parent area. It improves interface consistency and avoids situations where helpful on-screen guidance vanishes unexpectedly.
Original PR description
Have a tooltip on a parent. Hover on a child of that parent. Now, leave the child but stay in parent. Before this commit, the tooltip would be killed and never respawn. After this commit, the tooltip is not even killed if we stayed within the parent's physical space. task-5346498 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 Forward-Port-Of: odoo/odoo#248857
Website tests were updated to use a fake image instead of loading real images that could be slow or unreliable. This reduces random test failures and helps keep automated quality checks stable without changing the customer-facing website experience.
Original PR description
Runbot non-deterministic error 237641 is caused by the tests in `background_options.js` failing because the following images sometimes take too long to be fetched (they are really fetched by `onRpcReal` in `image_test_helpers.js`): - `/website/static/src/img/snippets_demo/s_text_image.jpg` - `/web/image/123/transparent.png` This commit replaces the real fetch with a fake image (which is not the same, but these tests don't actually really care) runbot-error-237641
A recent update to the appointment module caused installation errors due to outdated data. This fix prevents a template validation failure during module reinstallation by skipping the generation of invitation URLs, ensuring smoother module updates.
Original PR description
Reinstalling the appointment module fails during mail template validation. ### Reproduction Steps 1. Install the `appointment_hr_recruitment` module. 2. Uninstall `appointment`. 3. Reinstall…
Reinstalling the appointment module fails during mail template validation. ### Reproduction Steps 1. Install the `appointment_hr_recruitment` module. 2. Uninstall `appointment`. 3. Reinstall `appointment`. → A template parsing error appears. ### Cause The global `request.env` is bound to the registry active at the start of the request. When reinstalling a module, this registry becomes stale and does not include the models being re-added. During installation, the `mail.template` model performs a test render to validate its XML data. One of the templates calls `_get_interview_invite_url`, which invokes a controller that looks up the `appointment.type` model using `request.env`. Because the registry is stale and does not contain this model, the lookup raises a KeyError and the installation fails. ### Fix Rationale Skip invite URL generation when `install_mode` is set to avoid using the stale `request.env`. opw-5898780 Forward-Port-Of: odoo/enterprise#107650
This update resolves an issue where test runs were repeatedly generating unnecessary assets, slowing down the testing process. By adding a key asset bundle to the pregeneration list, the tests now run more efficiently and reliably. This improves overall development speed and stability.
Original PR description
During tests runs, lazy loaded assets are generated on the fly, and eventually multiple hundred of times (i.e. +/- 150 times on runbot). This commit adds the `web_studio.studio_assets` bundle to the pregeneration list to avoid regenerating during tests runs. Forward-Port-Of: odoo/enterprise#107147