Monday, June 8, 2026
14 changes · 19.0
Resolved issues and error corrections
Fixes an issue where adding a PDF to a Turkish Nilvera e-invoice could fail on newer Python versions. The change ensures downloaded PDF files are stored in the correct format, helping users attach and retain invoice documents reliably.
Original PR description
This commit resolves an error encountered when running on Python 3.14, which enforces stricter base64 validation. When adding a PDF to the invoice, the PDF is fetched using the Nilvera client. This client performs an HTTP request and returns a raw binary response, not a base64 representation. However, the Attachment interface handles raw binary data via the 'raw' field, whereas the 'datas' field strictly expects base64-encoded values. runbot-938173 Forward-Port-Of: odoo/odoo#266718
The Contacts app menu ordering has been adjusted so the Configuration option remains in its intended final position. This prevents other installed modules from accidentally disrupting the Contacts menu layout, making navigation more consistent for users.
Original PR description
## Description of the issue/feature this PR addresses The “Configuration” menu item defined by the *Contracts* module uses a very low sequence value, causing menu ordering conflicts when other…
## Description of the issue/feature this PR addresses The “Configuration” menu item defined by the *Contracts* module uses a very low sequence value, causing menu ordering conflicts when other modules (e.g. [OCA](https://github.com/OCA/partner-contact/pull/2202/files)) add menu items in the same section. This affects not only external modules but also internal ones that add menu items under *Contacts*. ## Current behavior before PR When other modules add new menu items to *Contacts*, the *Configuration* menu moves out of its intended last position, breaking Odoo’s default menu hierarchy. <img width="467" height="148" alt="Behavior before PR:" src="https://github.com/user-attachments/assets/4cb6e3bb-00c0-4636-87de-c51b572dc42c" /> ## Desired behavior after PR is merged The sequence of the *Configuration* menu item is adjusted so that it always remains last, aligning with Odoo’s default menu hierarchy and avoiding friction between modules. <img width="467" height="148" alt="Behavior after PR is merged" src="https://github.com/user-attachments/assets/314c2556-5f2b-403d-af8d-ab550bff41a9" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234909
This update corrects the date format shown for French e-invoicing so it matches Odoo’s expected format. It also renames the disconnect button to refer to French electronic invoicing instead of Peppol, reducing confusion for users managing these settings.
Original PR description
The date format for the France e-invoicing wasn't in the Odoo format and the name of the disconnect button referenced Peppol, now the date is of the correct format "mm/dd/yyyy" and the disconnect button name is Disconnect French electornic invoicing task-6266337
The delivery selection process now ignores archived carriers saved on customer records. This prevents users from accidentally choosing outdated or inactive shipping methods when preparing orders.
Original PR description
Issue: property_delivery_carrier_id on res.partner can hold an archived delivery.carrier record. Meaning that we pass an archived record to the context and that we can select the archievd delivery.carrier in the choose.delivery.carrier wizard. Solution: Only pass active records through the context. opw-6125792 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#264945 Forward-Port-Of: odoo/odoo#263819
This fixes an automated website menu test that could fail when it tried to edit a menu while a save was still in progress. The change improves test reliability and helps reduce false failures in the validation process, without changing the website features users see.
Original PR description
__Before commit__ The tour would sometimes fail because it was editing the record during a save operation resulting in the following error: `TypeError: Cannot read properties of undefined (reading 'resId')` __Fix__ - Add a step to wait for the save to be done before editing the record. It is already fixed in later version by odoo/odoo@9557f3ea - Take this opportunity to remove the useless `url` from the tour. runbot-243561
This fixes a cleanup issue in accounting KPI tests that could leave old accounting entries behind and cause later test checks to report incorrect results. By ensuring those entries are properly removed, the test environment stays consistent and reduces false failures in quality checks.
Original PR description
The KPI provider test setup could leave some account moves behind when running with all modules and demo data installed. These leftover moves were then detected by subsequent test steps, causing incorrect numbers and test failures. This commit ensures the targeted moves are removed to provide an empty test environment. Payments need to be canceled first; otherwise unlinking the moves raises a ValidationError. [runbot-939456](https://runbot.odoo.com/odoo/error/939456)
When Google or Microsoft Calendar sync creates a new contact, Odoo now records a specific message explaining that the contact came from calendar synchronization. This makes contact histories clearer for users and helps support teams understand why a contact was created.
Original PR description
Before we were logging the new created partners default message. Now we log custom message indicating that this partner was created from Calendar sync. task-6177363 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 resolves an issue that prevented successful testing of the l10n_de_pos_cert module when duplicating databases. Specifically, the commit removes identifying information (client_id and tss_id) during database duplication, allowing for proper testing in neutralized environments. This ensures consistent and reliable testing of the German POS certification functionality.
Original PR description
In this commit: -------------------- - On a duplicate database `client_id` and `tss_id` are removed so it works as test in neutralized dbs without throwing errors. task- 5457231 Forward-Port-Of: odoo/enterprise#104119
This update resolves a technical problem preventing the correct display of the daily report title in POS reports. The change ensures compatibility with a related reporting module and corrects a previous bug where the report would render without a title when the Colombian tax module was not enabled. This improves the user experience and report accuracy.
Original PR description
The daily report template was replacing `//h2[@id='daily_report_title']` entirely, removing the node from the XML source. This caused `pos_hr.single_employee_sales_report` (a primary template that applies its own xpaths against the same patched base) to crash at compile time since its xpaths could no longer find that node. Switch from `position="replace"` to `position="attributes"` + `position="after"`: the h2 stays in the XML source at all times so pos_hr's xpaths always resolve, while the original title is hidden at render time via t-if when CO EDI is enabled and the Colombian content is inserted as a sibling after it. As a side effect, this also fixes a pre-existing bug where installing the module with DIAN disabled would render the daily report with no title at all. opw-6265637
This update corrects a previous issue where website orders automatically generated CFDI invoices publicly. Now, invoices are only created publicly when a customer provides all necessary information through the e-commerce platform, aligning with standard business practices. This ensures compliance and avoids unnecessary public invoice disclosures.
Original PR description
There is no reason why we would always cfdi to public when creating orders from the e-commerce. When the customer give all their info, the invoice should not be cfdi to public. opw-6180766 Forward-Port-Of: odoo/enterprise#119442 Forward-Port-Of: odoo/enterprise#116061
This update resolves a technical issue that was preventing users from accessing billing targets within the Timesheets module. The fix addresses a problem caused by a missing field required by a core component of the Timesheets functionality. Enabling billing rate indicators and specific user access configurations were necessary to trigger this issue, and the update ensures a smoother workflow for managing billable time.
Original PR description
… of employees Prerequisites to reproduce: - Enable `Billing Rate Indicators` in timesheets. - Change timesheet access of user to `User: all timesheets` - Remove Employee access Steps to Reproduce: - In Timesheets app, from configuration go to `Billing Time Targets` - Click on view button on any row Issue: - A traceback breaking the flow. Reason: - We use `hr_presence_status` widget which requires `work_location_type` field, change made from https://github.com/odoo/odoo/commit/0496ed10636c7b2dfde7038a43494d4edbd9f95b. - Thus unavailability of field causing the traceback. Fix: - Add a related field for work_location_type from which we get the value. Forward-Port-Of: odoo/enterprise#97502
This update optimizes the way Odoo recalculates styles in large tables, like the Accounting > Balances Sheets. By removing unnecessary selectors, it reduces the time needed for these recalculations, leading to faster performance during scrolling, resizing, and sorting.
Original PR description
Adapt selector to remove the :has value since it not needed to have the effect applied. This reduces work during the "Recalculate Style" phase (for example when hovering rows in large tables such as the Accounting > Balances Sheets). It lowers recalculation time during window resizes, heavy scrolling, and table sorting by preventing broad selector matches and limiting style checks to elements with the specific class. This commit is a follow up of https://github.com/odoo-dev/enterprise/commit/8aa63b3c726d825e68430bb0a64a54c1b58d6af7 Note: We also fixes the scss button variable not correctly overided
This update prevents managers from clearing the assigned manager on card expenses when an expense is approved. The change makes card expenses more reliable by ensuring manager assignments persist, simplifying expense tracking and reducing manual intervention.
Original PR description
**Issue** If a manager was manually set on a card expense after it was created, it would be cleared when the expense was approved. **Change** Make the field readonly for card expenses, the idea is that the manager shouldn't need to approve card expenses since they are able to control them via the card itself. opw-6045587
This update addresses a warning during the Odoo migration process related to account identifiers. The previous attempt to fix this issue was ineffective and has been reverted. This change ensures that account identifiers are correctly available during migration, preventing errors and maintaining data integrity.
Original PR description
This reverts commit 2d4baefedfa4bce570a37195abf5c830517b2435. The commit failed to solve the issue it was trying to solve. In 19.0, accounts a4121 and a4521 were added in the belgian chart template of the community module and are being directly used in the partner template and reco model of the enterprise module. The issue is that during the migration, the xmlids of the freshly created accounts are not available for use that soon and the migration raises warnings for impossible to resolve xmlids. The first fix, the reverted commit, did not successfully solve the error as it targeted the accounts creation instead of the resolving of the xmlids and is now a commit that serves no purpose and complexifies the code with useless logic. See runbot-[233845](https://runbot.odoo.com/odoo/error/233845)