Tuesday, March 31, 2026
20 changes · saas-19.1
Resolved issues and error corrections
This update resolves an issue where documents couldn't be opened after their names were changed. The fix corrects a technical error in the document handling system, ensuring documents can now be reliably opened even after being renamed. This improves the overall usability of the documents feature.
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#110315 Forward-Port-Of: odoo/enterprise#105602
This update resolves an issue where the system would generate an error and fail to create PDF files when users uploaded empty XML files. The fix skips PDF extraction when raw data is missing, ensuring consistent file generation and preventing disruptions to the document processing workflow.
Original PR description
Currently an error is generated and the file is not generated when the user uploads an empty XML file (e.g., ref file [1]). Error: `AttributeError: 'bool' object has no attribute 'decode'` This error occurs because the uploaded file contains no raw data. As a result, the system fails to retrieve the file content during PDF extraction from the XML at line [2]. This commit fixes the issue by skipping PDF extraction from the XML when the document has no raw data. The process now returns False early if the document contains no raw content. [1]: https://drive.google.com/file/d/1hRbgEsTL-iWhiAO245z_10HRH6nh3rUQ/view?usp=sharing [2]: https://github.com/odoo/enterprise/blob/00e2e658312eda2d3dae04eb966fd538972e5243/documents_account/models/documents_document.py#L52 sentry-7173452999 Forward-Port-Of: odoo/enterprise#103801
This update resolves an issue where a validation check for the suspense line was failing due to a change in how the suspense line is calculated. The update ensures the suspense line is correctly formatted, preventing potential errors in the system's financial reporting. This ensures accurate data processing.
Original PR description
This commit: https://github.com/odoo/enterprise/commit/ec7299e39c5b89cea86e4dda34894958c560663e change the way the suspense line is computed, and we expect the suspense line to be an object. But since this commit, the suspense line getter can give False the props validator will fail. no task id Forward-Port-Of: odoo/enterprise#112481
This update resolves a technical issue within the Bank Reconciliation widget that could cause errors when deleting counterpart lines in bank transactions. The fix ensures the system correctly handles data props, preventing unexpected errors and improving the stability of the reconciliation process. This change impacts the Bank Reconciliation feature.
Original PR description
The `get suspenseAccountLine`` method could return False, which is not valid for the BankRecButtonList component props. This commit ensures the method returns either an object or undefined. Step to reproduce: - Enable developer mode - Open the Bank Reconciliation widget - Create a bank transaction - Reconcile the transaction - Click on the trash icon on the counterpart line - Previously, a traceback would occur due to invalid props opw-6012604 opw-6066531 opw-6066116 opw-6065924 opw-6063884 opw-6062905 opw-6062590 opw-6060781 Forward-Port-Of: odoo/enterprise#112175
This update fixes a technical error that prevented users from correctly updating lot numbers on stock move lines. The change ensures that lot IDs are properly linked within the Odoo system, resolving a potential data inconsistency and preventing errors during inventory adjustments. This improves the reliability of stock tracking.
Original PR description
Since ce2a8f9c929, quality.check.lot_id (Many2one) was changed to lot_ids (Many2many), but the write() override in stock.move.line still assigns a raw integer to the field. This causes a ValueError when changing the lot on an MO move line. With this commit, use Command.link() to properly link the record to the Many2many field. Forward-Port-Of: odoo/enterprise#110180
This update resolves an issue where a test tour within the product catalog feature was failing due to a problem with how product selections were being tracked. The fix ensures the correct section ID is always used, preventing the tour from encountering an error and improving the overall user experience.
Original PR description
Cause: The `selectedSectionId` was not yet updated in the environment when the product was added, resulting in a `None` value being passed to `_update_order_line_info`. Fix: Use `this.env.selectedSectionId` when available, and fall back to `this.env.searchModel.selectedSection.sectionId` only if it is undefined or null. runbot-241960 Forward-Port-Of: odoo/odoo#254374
This update fixes an issue where Italy's chart of accounts was defaulting to incorrect expense and revenue accounts. The change explicitly defines the correct deferred accounts (`190200` and `270200`) within the chart template, ensuring accurate financial reporting for Italian businesses using Odoo.
Original PR description
Italy's chart template did not explicitly define deferred expense and revenue accounts, so deferred accounts fell back to the first `asset_current` and `liability_current` accounts in the chart. That could assign incorrect defaults such as `140100` and `220100`. This patch sets the intended Italian deferred accounts to `190200` and `270200` directly in the template to ensure correct configuration during chart loading. task-6076711 Forward-Port-Of: odoo/odoo#256623
This update automatically sets the correct analytic account when creating new items from the gross margin smart button within analytic accounts. Previously, new records didn't link to an account, leading to data inconsistencies. This change ensures accurate tracking of financial data within the Odoo system.
Original PR description
When accessing analytic items from the gross margin smart button on an analytic account, creating a new record does not pre-fill the analytic account field. This happens because the context does not set `default_account_id` for the active analytic account, leading to newly created lines not being linked at creation time. This commit ensures the analytic account is correctly passed through the context, so it is automatically set when creating a new analytic line from this flow. Steps to reproduce: - Open an analytic account - Click on the gross margin smart button - Create a new analytic item Before: analytic account not set by default After: analytic account is pre-filled via context task-3909624 Forward-Port-Of: odoo/odoo#256426 Forward-Port-Of: odoo/odoo#255726
This update resolves an issue where certain XML tags were not properly removed from the Odoo import file. The change ensures that the import process accurately reflects recent updates by deleting the <report> and <act_window> tags from the import_xml.rng file. This improves the consistency and reliability of Odoo's import functionality.
Original PR description
`<report>` and `<act_window>` tags has been removed in https://github.com/odoo/odoo/pull/98138, but not in the import_xml.rng file. This commit removes the two tags from the file. Forward-Port-Of: odoo/odoo#220116
This update fixes a configuration issue with default accounting accounts for the Swiss (l10n_ch) version of Odoo. The previous misconfiguration has been corrected, ensuring accurate financial reporting for Swiss businesses using this module. This ensures compliance and reliable financial data.
Original PR description
[IMP] l10n_ch: Set default accounts in Switzerland Some defaults accounts in Switzerland were misconfigured, this commit set clean values by default task-6043978 Forward-Port-Of: odoo/odoo#255350
This update automatically checks out employees from attendance records when they are archived. Previously, archived employees remained checked in, leading to data inconsistencies. This change ensures accurate attendance tracking and simplifies the process of managing archived staff.
Original PR description
Before: - When an employee was archived, their attendance was not updated. After: - When an employee is archived, if they are currently checked in, they will be automatically checked out at the current timestamp. task-5916700 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256083 Forward-Port-Of: odoo/odoo#255524
This update resolves a potential instability in the testing of one2many fields within the Odoo web application. Specifically, a test was occasionally failing due to an unintended record creation. This fix prevents a second record creation, ensuring the test is more reliable and consistent.
Original PR description
This commit fixes a non deterministic one2many field test by ensuring that we don't quick create the record twice.
Before this commit, it might sometimes happen that the validation of the input ("Enter", by default) produced a second name_create. Note that in practice this is highly unlikely to happen as if the user presses Enter, the "Quick create" item in the dropdown only appears during a single frame, thus making impossible for the user to click on it.
runbot error~242204
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#256582This update enhances the process for managing demo transactions in the Point of Sale system. Previously, users were permanently blocked with demo orders. Now, users can easily delete the demo transaction or sync it to the live production environment, providing greater control and flexibility.
Original PR description
Before this commit:
- The fields `l10n_jo_edi_pos_{state, return_reason}` were readonly when
`l10n_jo_edi_pos_qr` was set. However, we did not take into account the fact
that `pos.order` cannot be reset once `done/paid/invoiced`; thereby blocking
the user with a demo transaction forever without any alternative.
After this commit:
- The fields `l10n_jo_edi_pos_{state, return_reason}` are readonly when
`l10n_jo_edi_pos_qr and l10n_jo_edi_state == 'sent'`. Additionally, an
onchange is introduced on `l10n_jo_edi_pos_state` to clear
`l10n_jo_edi_pos_qr`. This gives back flexibility to the user to either delete
the demo mode transaction or sync them to the production endpoint.
task-5958427
Forward-Port-Of: odoo/odoo#250808This update fixes a bug in the production process that was causing consumption warnings to appear unexpectedly. The issue stemmed from an incorrect order of operations when setting production quantities, leading to inaccurate tracking of materials. The fix ensures that production quantities are correctly validated, eliminating these warnings.
Original PR description
Usecase to reproduce: - Create a BoM with a finished product and a component - Create a MO for 10 units - Produce all Expected behavior: 10 units produced Current behavior: Consumption warning It happens because the code use this order: - Set the moves raw to picked base on their quantity producing - Set the quantity producing for production without quantity. So it just don't work and the consumption warning is trigger. The fix just invert the order task: 5068382 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#245176
This update corrects an issue where QR codes generated for self-ordering pickup orders included incorrect URLs with table information. The fix ensures QR codes are generated correctly for 'pickup zone' ordering modes, preventing errors in downloaded PDFs and improving the customer experience. This resolves a previous problem with incorrect URL formatting.
Original PR description
Step to reproduce: - setup Restaurant and do the following config - set "self-ordering" -> "Qr Menu + Ordering" - set "service At" -> "pickup zone" - save and print the qr-code ( option is right…
Step to reproduce: - setup Restaurant and do the following config - set "self-ordering" -> "Qr Menu + Ordering" - set "service At" -> "pickup zone" - save and print the qr-code ( option is right there below these configs) Observation: - in downloaded pdf, we see a wrong url, which includes table_id, which shouldn't be. - QRs do not have table_id Cause: - there is issue in `generate_qr_codes_page` method, which uses table_id even if ordering mode is "pickup zone" Fix: - we only use table_id when ordering_mode = 'table'. **Before:** <img width="1002" height="397" alt="image" src="https://github.com/user-attachments/assets/e6dc50e5-6384-45b8-8ee5-817526769dc2" /> **After** <img width="1021" height="405" alt="image" src="https://github.com/user-attachments/assets/0be9b902-3870-4fc7-a409-e01265b7a1b3" /> opw-5095607 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254897 Forward-Port-Of: odoo/odoo#247184
This update strengthens the testing process for right-click editing in the Odoo email module. The test now verifies key actions, making it less reliant on timing and more reliable. This ensures the editing functionality works consistently and reduces the risk of unexpected issues.
Original PR description
This PR is a follow up of https://github.com/odoo/odoo/pull/256063 Use `expect.waitForSteps()` in the right-click editing test to assert the message context-menu flow more explicitly instead of relying only on `animationFrame()`. The test now verifies that: - `onContextMenu()` is triggered - `showRightClickMessageActions()` is not triggered while editing This makes the test less timing-dependent.
This update corrects a problem where newly added billing addresses were incorrectly appearing in both the delivery and billing sections of the customer portal. The fix removes a technical element that caused the address type to be misconfigured, ensuring accurate address display and management for users.
Original PR description
Versions -------- - 19.0+ Steps ----- - Log in on the portal - Go to "My Account" - Go to "Addresses" - In the billing section uncheck "Same as delivery address" - In the billing section click "Add…
Versions -------- - 19.0+ Steps ----- - Log in on the portal - Go to "My Account" - Go to "Addresses" - In the billing section uncheck "Same as delivery address" - In the billing section click "Add Address" - Fill in address details - Click "Save Address" Issue ----- The newly added address is visible in both the delivery and billing sections, and in the backend the address has type "other" instead of "invoice". Cause ----- This happens because the "Add Address" url in the billing section contains the parameter `use_delivery_as_billing=True`, which supersedes the parameter `address_type=billing`, creating an address with type "other". This is because the "Add Address" url in the billing section is not dynamically updated when the "Same as delivery address" toggle is toggled like with the url in the delivery section. Solution -------- The `use_delivery_as_billing` is completely removed from the url in the billing section, because the button only appears when the toggle is unchecked (i.e. when `use_delivery_as_billing=false`). And by not sending the parameter, it defaults to false in the backend. opw-5880430 Forward-Port-Of: odoo/odoo#256326
This update resolves an issue where Odoo displayed a misleading warning message when users didn't set a password during file uploads. Now, the system correctly checks for a password during saving, eliminating the unnecessary warning and improving the user experience. This ensures consistent behavior and avoids potential confusion for users.
Original PR description
Before the change, when the user uploads a file, Odoo automatically shown a warning message saying that the content of the file or the password are incorrect. Now the system does not show the warning when a password is not set and checks if the password is set when saving task-6036219 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256759 Forward-Port-Of: odoo/odoo#253834
This update fixes a technical issue where syncing cancelled events from Microsoft Calendar would cause an error. Now, when a cancelled event is initially synced, it's correctly handled, preventing errors and ensuring accurate event synchronization within Odoo. This improves the reliability of our calendar integration.
Original PR description
Before this commit, when syncing events from Microsoft, if there was a cancelled event that was not yet synchronized with Odoo, calling browse on event.odoo_id would raise an error as it would be None. opw-5917677 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a display issue where tax names were shown in English for Spanish users. Now, all tax names are correctly displayed in Spanish, improving the user experience and ensuring accurate reporting for our Spanish-speaking customers. This change was made to comply with local regulations and provide a seamless experience.
Original PR description
It was a previous dev in which the fw-port failed. Here is the old [PR](https://github.com/odoo/odoo/pull/238857) The tax names were displayed in English, and it's confusing for the Spanish users. Now, the taxes are displayed in spanish task-6041023 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256182 Forward-Port-Of: odoo/odoo#255074