Daily updates from Odoo
Friday, June 6, 2025
13 changes
3 changes
Enhancements to existing features
The bank reconciliation screen now shows the first three matching reconciliation models as direct buttons on desktop, reducing the need to open a dropdown for common actions. Mobile button layout and alignment were also improved so key actions stay visible and easier to use.
Original PR description
This commit moves the 3 first reco models, present in the dropdown menu, to the button list of statement line. If the user has more than 3 matching models, the other ones will remain in the dropdown menu. This is only for desktop views, nothing changed in mobile. Also few style and layout changes, see related commits. task-4804584
The manufacturing barcode test tour was adjusted to match a new product naming convention introduced elsewhere. This keeps automated checks aligned with the latest naming format and helps prevent false test failures.
Original PR description
The tour is adapted to follow new naming convention introduced in the community PR. Task [4745662](https://www.odoo.com/odoo/project/966/tasks/4745662) odoo/odoo#207217
Receipt printing through connected POS hardware now has a more reliable backup connection method, reducing the chance of failed prints. The update also fixes an issue where Belgian blackbox setups without a configured device could block receipt printing.
Original PR description
As for the blackbox, we now use the websocket as fallback to longpolling to print receipt. This commit also fixes an issue regarding the module `pos_blackbox_be`: if the module was installed, but no blackbox was configured, we could not print a receipt as no signature was provided. Task: 4824066
8 changes
Enhancements to existing features
Updates were made to WhatsApp-related security tests to keep them aligned with recent platform changes. This helps maintain reliable quality checks without changing the user-facing WhatsApp experience.
Original PR description
PR community: https://github.com/odoo/odoo/pull/212074 task-4675777
Knowledge article rows now only show the expand caret when an article has child pages. This reduces visual clutter and helps users understand which articles can be expanded.
Original PR description
Hide the caret icon when the article has no children. task-4830534
The manufacturing work order tests were adjusted after shared test data was reorganized. This keeps the test coverage aligned with recent community changes without affecting day-to-day user workflows.
Original PR description
Some data was removed from the commons and moved to the two specific test classes using those.
The bank statement OFX import feature now loads its parsing tools only when they are actually needed. This can slightly improve system startup time while keeping the import process unchanged for users.
Original PR description
Parsing is often not needed during startup and only used during the related business processes. Therefore, we load it lazily. ofxparser depends on bs4 and both of them can take 100ms to import. odoo/odoo#212408
This update strengthens internal mail performance tests so they better reflect real-world messaging scenarios, including followers, push notifications, and tracking details. It also prevents test runs from making external notification requests and fixes a small issue in mention detection, helping maintain messaging quality with lower release risk.
Original PR description
Improve post performance tests so that
* it effectively includes followers (having a subtype_id);
* it sends push notifications (creating devices and using 'comment'
message type);
* it includes tracking values;
Add mock for push notifications, to avoid VERBOTEN external requests.
Update counters accordingly.
Prepares Task-4845982Appointment website snippets now take configured country availability into account when showing appointment options. This helps visitors see more relevant appointment choices while preserving the existing setup behavior for online appointment configuration.
Original PR description
Take into account the country domain for the appointment snippet. This is not applied to the option of s_appointment_online as it could prevent user to configure the website correctly. task-4461289
Internal test-only helper tools were moved into the testing area to reduce the chance they are used incorrectly in production code. This keeps business features unchanged while improving code organization and long-term reliability across affected test suites.
Original PR description
The `DotDict` class can produce unexpected behaviour if used incorrectly. This commit moves this class so that it is only used in tests. The `MockRequest` context manager uses the `DotDict`. As we cannot import objects from the test framework and `MockRequest` is only used in tests, it makes sense to move it to `odoo.addons.web.tests.utils`. task-4822364
The test setup was simplified so that post-installation tests run by default, removing the need to mark them individually. This reduces maintenance work and helps keep quality checks consistent across Odoo's enterprise accounting modules.
Original PR description
https://github.com/odoo/odoo/pull/143757 https://github.com/odoo/design-themes/pull/764 https://github.com/odoo/documentation/pull/6670
2 changes
Enhancements to existing features
This change adds a customization point before sales orders are updated from electronic UBL documents. It makes it easier for businesses with custom workflows to adjust order details without duplicating updates or adding extra processing steps.
Original PR description
**Description of the issue/feature this PR addresses:** There's no hook to manipulate order values before write. **Current behavior before PR:** You cannot add custom logic easily w/o writing again on the order **Desired behavior after PR is merged:** Ease custom logic implementation. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Copying large documents now avoids an unnecessary page-count check that was consuming significant memory. This improves performance when duplicating multiple large PDFs, reducing memory use in the benchmark by about 27%.
Original PR description
Description ----------- When copying a document, a new attachment is created and linked to the copied document. Since `documents.document.is_multipage` depends on `documents.document.datas`, which is related to `attachment_id.datas`, and `attachment_id` was just written to, `_compute_is_multipage` will be recomputed during flushing before commit, as it's a compute stored field. This is problematic when copying multiple large documents, since this compute reads the entire binary data to determine if it's more than one page. This commits explictly writes on `is_multipage` to implicitly add it to the protected fields, which will prevent its' recomputation when flushing. Benchmark --------- Copying 5 documents (PDF) of 50MB each takes in total: | Before | After | Diff | |--------|--------|--------| | 1.61GB | 1.17GB | -27.3% | Reference --------- opw-4829372