Monday, May 11, 2026
5 changes · saas-18.4
Resolved issues and error corrections
Uploading a document through the PDF viewer now saves the original filename in the related filename field. This helps users identify uploaded PDFs correctly and keeps document records clearer.
Original PR description
When uploading a file using the PDF viewer field, the filename was not stored in the corresponding filename field. This commit updates the PdfViewerField to support a filename field via the `filename` attribute. task-4825728 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#262767 Forward-Port-Of: odoo/odoo#259795
The portal chatter now correctly returns focus to the message composer after a user inserts an emoji. This removes a small interruption in the messaging flow, helping users continue typing without manually clicking back into the text box.
Original PR description
Before this commit, after adding an emoji via the emoji picker in the portal chatter, the composer would not be focused. This is due to the `autofocus` prop of the composer being optional and not having a default value, leading to `NaN` when being incremented while `undefined`. This commit fixes the issue by giving it a default value of 0. task-6204911 Forward-Port-Of: odoo/odoo#263494
This fix prevents errors when an employee has no currently active version available. It ensures HR information can still be accessed using a sensible fallback, reducing disruptions for users managing employee records.
This update adds test coverage to ensure products from a cancelled sale order that is later settled in Point of Sale still create the expected delivery. It helps prevent cases where orders appear delivered without any items actually being included in the delivery.
Original PR description
Steps to reproduce ------------------ 1. Create a sale order with 2 products, confirm it 2. Cancel the SO, then click "Set to Quotation" 3. Open PoS, settle the order and pay 4. Check the delivery…
Steps to reproduce ------------------ 1. Create a sale order with 2 products, confirm it 2. Cancel the SO, then click "Set to Quotation" 3. Open PoS, settle the order and pay 4. Check the delivery order linked to the PoS order The delivery is empty, yet the products still show as "delivered" on the sale order. Why it's happening ------------------ When the SO is cancelled, its moves go to 'cancel' state. After resetting to quotation, those moves stay cancelled. When PoS creates the delivery, the filter in `_create_move_from_pos_order_lines` checks `has_valued_move_ids()` which returns False (all moves are cancelled), and `not move_ids` is also False (cancelled moves still exist). So the lines coming from the SO are excluded from the delivery. The fix ------- We now also create deliveries for lines whose SO moves are all cancelled. These are lines coming from a cancelled SO that now need to be shipped after we have settled their order from PoS. Note ---- The commit c0f338711f028088c98ea459f27c1669b29738d7 fixes this starting from saas-18.2, by introducing a separate `pos_repair` module which simplifies the main `pos_sale` code. In 18.2+, only the test will be forward ported. opw-6055856 Forward-Port-Of: odoo/odoo#263593 Forward-Port-Of: odoo/odoo#256693
Spreadsheet lists now collect all needed fields before loading data, avoiding duplicate server requests when a sheet is opened. This improves reliability and reduces unnecessary load when using list formulas and headers.
Original PR description
How to reproduce: - Create a spreadsheet with a CRM list and only set 2 cells content A1: =odoo.list(1, 1, "id") A2: =odoo.list.header(1,"zip") - save and reload the spreadsheet and look at the server calls ⮕ web_search_read called 2 times The problem is that the datasource methods early return if the datasource is already loading without adding the field to the list to fetch. It was partially solved by explicitely adding the field to fetch in the *getter* `getListCellValueAndFormat` but not on `getListHeaderValue`. This revision ensures that we always add the field to the list to fetch in the datasource directly, this responsibility should not be held by the plugin getters. Task-6175523 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