Monday, March 9, 2026
12 changes · saas-18.3
Resolved issues and error corrections
This update corrects a display issue in the website editor where the 'Custom URL' field incorrectly appeared on certain pages. Previously, this field was misleadingly presented even when the URL didn't support customization. Now, the field only appears when a page's URL is editable, ensuring a cleaner and more accurate SEO experience.
Original PR description
This PR hides the "Custom Url" field in the "Search Engine Optimization" when the URL of the current page do not contain any editable slug. Previously, this field could be filled when the URL did not…
This PR hides the "Custom Url" field in the "Search Engine Optimization" when the URL of the current page do not contain any editable slug. Previously, this field could be filled when the URL did not contain any modifiable slug. However, the value was not take into account since the route of the page did not expect slug. Reproduce: With an admin user, activate the website editor on an appointment page. Clicking on "Optimize SEO" in the "Site" dropdown menu, a form containing the "Cutsom Url" field is displayed. This field should represent the current page's URL but with fillable field instead of the editable URL part. In this case, this is not correct as the URL is repeated before and after the fillable field, which does not represent the current URL. Also, the URL is not modified with the value entered in the fillable field. After the fix: The "Custom Url" field must not be displayed when URL does not contain a customisable slug. Task-5114394 Forward-Port-Of: odoo/odoo#231609
This update resolves an issue where the system couldn't access files shared within Google Shared Drives. The fix adds a setting to the API request, allowing the system to properly search across all Google Drive locations. This ensures users can seamlessly embed content from Shared Drives into courses.
Original PR description
Step to reproduce: 1. Install `website_slides` 2. Go to eLearning > Courses > select a course > Add Content 3. Paste a public link that belongs to a file located in a Google `Shared Drive` Issue: - The system shows a warning `Your file could not be found on Google Drive, please check the link and/or privacy settings` even if the link is accessible via a browser in incognito mode. Cause: - The Google Drive API restricts the search scope to the user's personal `My Drive` by default It filters out items located in Shared Drives unless the client explicitly signals Solution: - Add `params['supportsAllDrives'] = 'true'` to the API request opw-5424413 Forward-Port-Of: odoo/odoo#241037
This update fixes a server error that occurred when merging tables in the restaurant POS system. Specifically, the system now waits for order synchronization before merging tables, preventing errors when a table has an empty order. This ensures a smoother and more reliable table management experience.
Original PR description
Steps to reproduce: - On an empty table, change the guest count - Create an order and send it to the kitchen - Open another table without an order - Merge the first table with the second one Issue: - A server error occurs during table merge Fix: - Wait for the merge order to sync before returning the result Task-5502511 Related: https://github.com/odoo/enterprise/pull/104577
This update resolves an issue that prevented users from properly closing the mail composer when sending emails to a large number of leads (over 500). The fix avoids a technical error related to data payload sizes, ensuring the composer functions correctly regardless of the number of records selected.
Original PR description
Steps to reproduce: 1. Install `crm` 2. Create leads more than 500. 3. Select all and try to send email 4. Not close the wizard by "X" Issue: - Traceback occurs: `Uncaught Promise > Unexpected end of JSON input` Cause: - res_ids is not set on the composer when more than 500 records are selected. This is expected, as the compute method `_compute_res_ids()` does not write `res_ids` when the number of `active_ids` exceeds 500 (to avoid storing large payloads on the field). Because of this, the code trying to JSON.parse(res_ids) fails while dismissing the wizard at `onCloseWizardModal` Solution: - Fallback to context.active_ids when res_ids is not available opw-5891862 Forward-Port-Of: odoo/odoo#248406
This update resolves an issue that prevented basic receipts from printing correctly when the point-of-sale (POS) name exceeded a certain length. The fix limits the maximum POS name length to prevent a technical error that caused the printing process to fail. This ensures all receipts, regardless of POS name length, can be printed successfully.
Original PR description
When printing a basic receipt, if the pos name is too long a traceback will occurs when printing the basic receipt. Steps to reproduce: * Create a pos with a name of 46 character or more * Setup the italian fiscal printer * Enable Basic Receipt printing * Open point of sale * Create an order and validate it * Try "Print Basic receipt" Traceback: RangeError: Invalid count value: -15 at String.repeat () If the data being printed is longer than the maximum number of character in a line (MAX_CHARS = 46), paddingLeft becomes negative which cause an error in repeat(). [Similar solution](https://github.com/odoo/enterprise/blob/18.0/l10n_it_pos/static/src/app/fiscal_printer/commands/print_rec_message/print_rec_message.js#L35) [opw-5270697](https://www.odoo.com/odoo/project/49/tasks/5270697) Forward-Port-Of: odoo/enterprise#109527
This update ensures that timesheets are only generated for employees associated with the companies that have public holidays defined. Previously, timesheets were incorrectly created for employees in companies without a relevant holiday, leading to inaccurate time tracking. This change improves data accuracy and reporting.
Original PR description
**Steps to reproduce** - Have 2 companies A and B - Use a single working schedule (needs to have no company on it) for both companies and their employees - Create a public holiday with company A, while having company B in the selected companies - There's a timesheet for the public holiday created for employees of company B, even though the public holiday will not apply for them. **Change** Only generate the timesheets for employees belonging to the companies of the public holidays. opw-5498462 Forward-Port-Of: odoo/odoo#245743
This update fixes a minor issue in the Gantt chart where date selections in the scale selector didn't immediately update. The change ensures that date selections in the dropdown update instantly, providing a smoother and more responsive user experience when setting the chart's timeframe.
Original PR description
Steps to reproduce: - Open any Gantt view (e.g., Planning). - Open the scale selector dropdown and select a custom start or end date. Observation: The dates displayed in the dropdown do not update until the 'Apply' button is clicked. Cause: The XML template was referencing dates from the 'scales' prop, which is managed by the parent Gantt controller. This prop only updates after 'selectCustomRange' is called and the entire view reloads. Consequently, local changes in the date picker were not reflected in the UI during the selection phase. Solution: Modify 'web_gantt.GanttScaleSelector' to display dates directly from the local 'pickerValues' state. Since 'pickerValues' is a reactive 'useState' object, the UI now re-renders immediately when a date is picked, providing instant visual feedback before the user commits the change via the 'Apply' button. opw-5911253
This update fixes a minor issue where the HTML Editor module was incorrectly displaying 'odoo' (lowercase) as the author. The change ensures the correct Odoo S.A. author is listed, maintaining accurate attribution within the Odoo system. This aligns with previous author settings and ensures consistency.
Original PR description
Author was set as "odoo" (lowercase). This commit removes the author key so it fallbacks to the default one, i.e. Odoo S.A. This also aligns keys with previous commits like 42bad1a6 and ef7005f5. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190655
This update ensures that stock availability emails sent during testing correctly use the website's partner information. Previously, runbots would encounter errors because the website partner lacked an email address. The fix now provides a default email for the website partner in tests and prevents errors by explicitly failing if no email is available, ensuring reliable email delivery.
Original PR description
This commit (https://github.com/odoo/odoo/pull/249299/changes) backported some changes concerning stock availability mails. The mail is now sent from the partner associated to the website. However, in nightly runbots, the partner associated to the website does not have any email, so an error is thrown This fix does two things : - Make sure the website's partner has an email when running the tests - Prevent the mails being sent with the current user's email as a last ressort, and let an error be thrown instead runbot-102934954 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#251951
This update resolves an issue where German addresses submitted to Amazon were being incorrectly formatted, causing delivery validation failures. The fix swaps the order of address fields to match Amazon's requirements, ensuring accurate address data and successful deliveries for German customers. This improves the overall customer experience and prevents shipping delays.
Original PR description
When filling in a German address on Amazon, customers are presented with two fields: - Street, and - Building or company name. The street is sent as AddressLine2, while the building/company name is sent as AddressLine1. However, delivery providers validate address existence, which fails when address line 1 is not a street name. To resolve this, we swap these two fields for German addresses. opw-4668178 Forward-Port-Of: odoo/enterprise#109215
This update resolves an issue preventing users with multiple companies from successfully setting up their Amazon accounts. The fix allows access to all company data during the onboarding process, eliminating a mismatch error. This ensures a smoother and more reliable experience for all users.
Original PR description
The onboarding return route is a website route with access restricted to the website company only. This causes an error when the company doesn't match the Amazon account being connected. This commit allows users to access all their companies during Amazon account setup to avoid this mismatch error. opw-5944078 Forward-Port-Of: odoo/enterprise#109740 Forward-Port-Of: odoo/enterprise#109590
This update resolves an issue where documents couldn't be opened after their names were changed. The problem stemmed from an outdated reference within the documents module, which has now been corrected. This ensures documents can be reliably opened and accessed after being renamed, improving user workflow.
Original PR description
Steps to reproduce: 1. Install `documents` 2. Open a document in full screen and click on info icon on top right 3. Edit the name and close full screen document and chatter 4. Try to open the same document Issue: - Traceback occures `TypeError: Cannot read properties of undefined (reading 'insert')` Cause: - In file document_service `this.store.Attachment` was used instead of `this.store["ir.attachment"]` After this commit https://github.com/odoo/odoo/commit/70153559c34ffd18c67b83c39ee397ecb0a90b4a we renamed the Attachment model opw-5483625 Forward-Port-Of: odoo/enterprise#105602