Tuesday, June 23, 2026
31 changes · saas-19.3
Enhancements to existing features
This update clarifies the process for adding a signature within the HTML editor. Previously, users were instructed to 'Insert your signature from Sign'. Now, the system prompts users to 'Insert your handwritten signature', providing a more intuitive and accurate description of the expected input.
Original PR description
Purpose of this PR: - Replace 'Insert your signature from Sign' with 'Insert your handwritten signature'. task-6217718 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267995
Resolved issues and error corrections
This update resolves an issue where the FEC export wizard was generating empty lines with zero balances for certain accounts. The fix ensures accurate reporting of opening balances, particularly when prior-year entries result in zero balances, improving the reliability of financial data exports for French companies using the l10n_fr_account module.
Original PR description
Steps to reproduce: - Use a French company (l10n_fr_account installed) - Post prior-year entries so that an account/partner nets to zero at the start of the next fiscal year (e.g. a customer invoice fully paid the same year, or a misc entry debiting and crediting the same balance-sheet account), and keep another account/partner with a non-zero opening - Open the FEC export wizard, set Start Date to the first day of the next year - Generate the FEC file and look at the "Balance initiale" (OUVERTURE) lines Issue: One of the exported line in as empty one with `...|0,00|0,00|..`` opw-6083991 Forward-Port-Of: odoo/odoo#270658 Forward-Port-Of: odoo/odoo#268510
This update resolves an issue where the payment authorization process would fail if a required address field was left blank. The fix ensures that empty address fields are now handled gracefully by setting them to empty strings, preventing errors and improving data accuracy. This enhances the reliability of payment transactions.
Original PR description
Fix bug introduced by commit https://github.com/odoo/odoo/pull/267592/changes/c4556637e8eeef07ce6e3cc3b3b4cf28fa10e468 that caused an error if an address field was not set, due to trying to cut a False field. Now, unset fields are set to empty strings. Forward-Port-Of: odoo/odoo#270295
This update ensures that prettified links in portal chatter messages remain functional after a page refresh. Previously, a refresh would break these links. The fix involves sending the correct thread name to ensure the links are properly formatted and displayed to users.
Original PR description
Before this commit, a message link posted on a portal chatter would lose it's prettified link (introduced in [1]) upon page refresh. This happens because `prepareMessageBody` needs the thread's `displayName` to create the prettified message link, which is not sent on portal chatter init. This commit fixes the issue by sending the thread's `display_name`. [1] https://github.com/odoo/odoo/pull/221069 task-6204819 Forward-Port-Of: odoo/odoo#270032 Forward-Port-Of: odoo/odoo#263488
This update fixes an issue where the spreadsheet filter dropdown remained open even when the filter value hadn't changed. The fix ensures the dropdown automatically closes after a filter selection, providing a more consistent and user-friendly experience. This improves the overall usability of the spreadsheet dashboard.
Original PR description
Current behavior before PR: - In b4d5d1f, added early return when filter value is unchanged. - However, the dropdown was not closed in this case, leaving it open after clicking the filter button, resulting in inconsistent and unexpected UX. Desired behavior after PR is merged: - Ensure the dropdown is closed even when the filter value remains unchanged, restoring consistent and expected behavior. Task: [6304213](https://www.odoo.com/odoo/project/2328/tasks/6304213) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#271298 Forward-Port-Of: odoo/odoo#270225
This update resolves a technical issue related to how Odoo handles direct debit mandates for SEPA accounts. The change adds a constraint to ensure the correct bank account is linked to the mandate, improving the reliability of direct debit payments. This ensures accurate and secure processing of payments.
Original PR description
Forward-Port-Of: odoo/enterprise#121236 Forward-Port-Of: odoo/enterprise#120901
This update adjusts the accounting classification for a specific inventory account (502040) within the Philippine localization module (l10n_ph). The account type has been changed from 'Expenses' to 'Current Assets' to align with updated accounting standards and reporting requirements. This ensures accurate financial reporting.
Original PR description
Update the account type of 502040 Inventory/Stock Variation account from ` Expenses` to `Current Assets`. task-6299228
This update corrects a technical issue related to barcode scanning tests within the Point of Sale and POS Stock modules. The test steps for a specific EAN-13 barcode pattern have been moved to the `pos_stock` module where the relevant rules are defined. This ensures more accurate and reliable barcode scanning functionality.
Original PR description
In this commit:
=
- The test steps covering the EAN-13 barcode pattern `21.....{NNDDD}` have been moved from `point_of_sale` to `pos_stock` because the rule for this barcode pattern is defined in `stock`.
runbot-error-242912This update resolves an issue where a key test partner wasn't consistently loaded during demo data setup. By renaming the test partner to 'A Partner Full', the system now guarantees it's included, ensuring consistent and reliable testing of the Point of Sale (POS) functionality. This improves the accuracy of test results and reduces potential issues during development.
Original PR description
Issue:
=
* The test partner name ("Partner Full") was not guaranteed to be loaded with demo data because only the first 100 partners are loaded, and the record could fall outside that limit.
Fix:
=
* Rename the test partner from "Partner Full" to "A Partner Full" to ensure it is included with demo data too.
runbot-error- 243063, 939228This update resolves a confusing warning message that appeared during bill editing, related to vendor history. The fix prevents temporary data inconsistencies from triggering these warnings, creating a smoother and more intuitive editing process for users. The warning is now only calculated when the bill is saved, ensuring a better user experience.
Original PR description
Abnormal bill warnings are based on vendor history read from the saved move in the db, while a bill is being edited the form uses a temporary record; after changing the vendor, that temporary value differs from the vendor still stored on the saved move. This makes the warning use the old vendor's history while showing the new vendor's name. Only compute these warnings for saved records, while editing hide them and let them be recomputed once the bill is saved. task-6263829 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#270515
This update corrects a technical issue within the spreadsheet module that was preventing data hover functionality from working correctly. The fix resolves a previous bug that masked the problem, ensuring accurate and reliable data visualization for users. This improves the overall user experience when working with charts and data in the spreadsheet.
Original PR description
### [FIX] spreadsheet: fix arguments of `onDataSetHover` The arguments of `onDataSetHover` were wrong. It was not apparent because there was another bug that caused the function to never be called. Task: [6233312](https://www.odoo.com/web#id=6233312&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where event titles were sometimes saved as "(no title)" when users quickly saved events using the alt+c keyboard shortcut. The fix ensures that all event titles are correctly saved, regardless of how the event was created, improving the user experience and data accuracy.
Original PR description
When creating an event using the quick create form from the calendar view if the user saves the record while the title is still being edited (using alt+c) the record will be saved with the default title: "(no title)" The code currently relies on the record data being up to date by the time onRecordSave is reached. However in the case of a text field, it is only saved when blurred. While there is a mechanism to blur the field when saving using a hotkey, it is completely asynchronous from the save logic of the form. To ensure all fields have comitted their data at save time, the framework has a mechanism to "request changes" which notifies all fields to update the record with their latest value and waits for them to do so. We can simply reuse this mechanism to ensure the data is up to date at recordSave time already, as we don't expect fields to have any changes after it. task-6321702
This update fixes an access error that prevented users from viewing employee type information within the payroll module. The change ensures users with the correct payroll group permissions have full access, resolving a potential disruption to payroll processes. This was identified during upgrades to version 19.3.
Original PR description
The field `employee_type_id` in models `hr.version` and `hr.employee` is used by the `hr` module. The group is overriden in `hr_payroll`, but the model can still be accessed by users without the required group `hr_payroll.group_hr_payroll_user`, triggering an `AccessError`.
To reproduce:
- On 19.3, install `hr_payroll`.
- Remove any Payroll access from the current user.
- Go to Employees > Configuration > Employee > Employee Types.
```
File "/home/odoo/src/odoo/saas-19.3/odoo/orm/models.py", line 2732, in check_field_access
raise AccessError(error_msg)
odoo.exceptions.AccessError: You do not have enough rights to access the field "employee_type_id" on Employee Contract (hr.version). Please contact your system administrator.
Operation: read
User: 6
Groups: allowed for groups 'Payroll / Assistant'
```
Found during upgrades to 19.3This update resolves an issue where the table of contents would obscure headings when the status bar was sticky. The fix dynamically adjusts the table of contents' position to avoid overlapping sticky elements, ensuring headings are always visible and easily accessible. This enhances the user experience when navigating long documents.
Original PR description
Since [1] when the `o_form_statusbar` status bar was made `sticky` the table of content scrolls to a given heading without taking it into account. Because of this, when scrolling upwards the heading ends up behind the status bar. This commit fixes this by finding top-aligned sticky elements within the closest scrollable element impacted by the table of content. Steps to reproduce: - Go to a To do note - Define some headings - Have sufficient content so that reaching a heading requires scrolling - Define a table of content with `/toc` - Click on a heading => The heading ended up behind the status bar. [1]: https://github.com/odoo/odoo/commit/a3c63413825cf3492a10ade77a2c571c4eeb33a6 task-6302762 Forward-Port-Of: odoo/odoo#270043
This update fixes an issue where the number of comments displayed on course slides wasn't accurately reflecting the actual number of comments. The change adjusts how comments are calculated to account for recent updates to the platform's messaging system. This ensures a more accurate and reliable view of course discussions.
Original PR description
Steps to reproduce: - Open a slide of a course in non fullscreen mode (website). - Go to the comments tab and add a comment in the chatter. - The comments count does not change in the tab. - The same thing happens when a comment is deleted. - Another way to see the incorrect counter is to add a note in the slide form view (backend). Before this change, `website_slides` used `website_message_ids` to calculate the comments. Since #138233 the old portal chatter has been replaced with the mail chatter and the way messages are displayed on the portal has changed. For example notes are no longer considered portal messages and also deleted messages should not be displayed or counted as such. This change ensures that comments calculations are based on a domain that considers those changes meaning that comments will be synced with the actual number of available comments. Forward-Port-Of: odoo/odoo#271247 Forward-Port-Of: odoo/odoo#260376
This update resolves an issue where text entered into SelectMenu fields (like Campaign or Source) would intermittently disappear. The fix ensures the input field accurately reflects user typing, even after autocomplete suggestions are refreshed. This improves the user experience when searching within these fields.
Original PR description
Step to reproduce: 1. Install `website_link` 2. Open Website > Site > Link Tracker 3. Type in text into any pre-defined field (Campaign, Medium, Source) 4. Observe that the input is not showing all…
Step to reproduce: 1. Install `website_link` 2. Open Website > Site > Link Tracker 3. Type in text into any pre-defined field (Campaign, Medium, Source) 4. Observe that the input is not showing all the typed characters Issue: - It's randomly removing characters, for example, type "1234567890" and observe Cause: - SelectMenu updates its internal searchValue only inside the debounced onInput handler `debouncedOnInput`. When an autocomplete callback reloads choices before that debounce fires, the component rerenders with a stale searchValue and writes that outdated value back into the controlled input, overwriting newer characters already typed by the user. Solution: - Update searchValue immediately on every raw input event and keep only the search callback debounced. - Also reset searchValue to null when a required single-select is blurred while empty, so the input falls back to the selected choice label instead of staying visually cleared. opw-6000540 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#267974 Forward-Port-Of: odoo/odoo#255819
This update corrects a technical issue within the Odoo’s Danish accounting module (l10n_dk) where an account was listed twice. Removing this duplication ensures accurate financial reporting and data integrity. This change improves the reliability of financial transactions for Danish businesses using Odoo.
Original PR description
In the list 'dk_coa_7630 ', the account has been used in the list twice. Removing the duplication from the list. [Reference](https://github.com/odoo/odoo/blob/17.0/addons/l10n_dk/migrations/1.4/end-migrate.py#L14) 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#270865 Forward-Port-Of: odoo/odoo#270573
This update resolves an issue where sign templates with auto-filled fields would incorrectly display placeholders instead of the actual values, or fail to generate documents. The fix ensures falsy values from auto-fields are properly preserved during the signing process, preventing errors and guaranteeing accurate document generation.
Original PR description
Version: - 19.0 Steps to reproduce: - Create a sign template with a readonly sign item linked to an auto field. - Use a reference record where the linked field value is empty or False. - Send the…
Version: - 19.0 Steps to reproduce: - Create a sign template with a readonly sign item linked to an auto field. - Use a reference record where the linked field value is empty or False. - Send the document for signing. - Complete the signing flow. Issue: - Readonly sign items linked to auto-filled values could not properly handle falsy values. Empty values could trigger the error "Some required items are not filled" and completed sign requests displayed the sign item placeholder instead of the actual auto-filled value. - completed document generation could fail when rendering falsy values for textarea sign items. Cause: - Falsy auto-filled values were ignored during constant item population and replaced by the sign item placeholder. Additionally, readonly constant items were included in required field validation and completed sign requests continued to display placeholders when the stored value was empty. - document rendering assumed sign item values were always strings for textarea sign items but when auto field is empty it value can be False. Fix: - Preserve falsy values when populating readonly constant items, exclude constant items from signer validation, and hide placeholders for empty auto-filled constant items when displaying completed sign requests. - Normalize falsy values to prevent crashes and allow completed documents to be generated correctly. Forward-Port-Of: odoo/enterprise#121255 Forward-Port-Of: odoo/enterprise#121009
This update fixes a bug that prevented website options using composite actions from functioning correctly. Specifically, when a composite action with a 'getValue' was used, it wouldn't properly bind, leading to errors. A new test has been added to ensure correct action binding, improving website configuration stability.
Original PR description
In 18.4 the composite action isn't used extensively, so the problem was unnoticed. However, if you use it with an action that has a `getValue` set, you may get issues, since the action will not be bound. Possible way to reproduce the issue: - Create an option that uses the `composite` action - Set `customizeWebsiteVariable` as a first action in the `actionParam` - Click on an element that has that option => You'll get an error. Note, that testing just this would be useless, so I added a test that tests that the action uses the first `getValue`. Without this fix the test would crash since in `getValue` `this` is unbound. Forward-Port-Of: odoo/odoo#269873
This update resolves an issue where appointment invitations were sometimes sent even when appointments were in a 'requested' or 'cancelled' status. The change ensures invitations are only generated for appointments marked as 'booked', improving the user experience and preventing unnecessary notifications. This was addressed based on a related issue in the Enterprise version.
Original PR description
This PR adapts the code to fix the invitations at the appointments' update. See the enterprise PR to get more information about the issues. Enterprise PR: https://github.com/odoo/enterprise/pull/114304 Task-6139036 Forward-Port-Of: odoo/odoo#271116 Forward-Port-Of: odoo/odoo#260073
This update clarifies the budget report by replacing generic labels like 'Budget 2026 x' with more specific names that include the associated analytic accounts. This makes budget lines easier to understand and differentiate, improving reporting accuracy and user experience.
Original PR description
Budget report grouping by budget line displayed the budget name for every line, which made different lines indistinguishable and produced labels like "Budget 2026 x", "Budget 2026 x (2)", etc. Compute a more specific display name for budget lines by appending the analytic accounts concerned by the line to the budget name. Also expose Budget Line as a first-class group-by in the Budget Report search view and apply it by default when opening the report. task-6293065 Forward-Port-Of: odoo/enterprise#121204
This update removes a restriction on phone number formatting during event registration. This simplifies the user experience and allows for more flexible input when signing up for events within the Point of Sale system. The change was made to address a minor technical issue and improve usability.
Original PR description
Following this commit: ===== - '+' constraint from number validation is removed while user register for any new event. task-6194962
This pull request updates the core spreadsheet component with several improvements and bug fixes. It addresses issues related to chart rendering, viewport behavior, and formula parsing, ensuring a more stable and reliable spreadsheet experience for users. These changes were made to enhance performance and address reported user issues.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/da121002d2 [REL] 19.3.8 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/da121002d2 [REL] 19.3.8 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/9c9ea4006a [FIX] viewport: fix viewport jump with frozen pane [Task: 6292764](https://www.odoo.com/odoo/2328/tasks/6292764) https://github.com/odoo/o-spreadsheet/commit/8c5b03b36e [FIX] composer_tokenizer: fix argument separator in formulas [Task: 6303210](https://www.odoo.com/odoo/2328/tasks/6303210) https://github.com/odoo/o-spreadsheet/commit/4a9480b602 [IMP] node: add script to run the model in node [Task: 6088515](https://www.odoo.com/odoo/2328/tasks/6088515) https://github.com/odoo/o-spreadsheet/commit/b9dd4f4ae4 [FIX] package.json: Update Node.js and npm engine requirements [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/5856475544 [FIX] carousel: custom color don't use carousels [Task: 6263128](https://www.odoo.com/odoo/2328/tasks/6263128) https://github.com/odoo/o-spreadsheet/commit/396acb35d2 [FIX] charts: pie chart shows empty chart for text entries [Task: 6275525](https://www.odoo.com/odoo/2328/tasks/6275525) https://github.com/odoo/o-spreadsheet/commit/ed39af1898 [FIX] charts: pass `onDataSetHover` to chart config [Task: 6233312](https://www.odoo.com/odoo/2328/tasks/6233312) https://github.com/odoo/o-spreadsheet/commit/3baf99b853 [FIX] table: correctly insert table on static pivots [Task: 6204984](https://www.odoo.com/odoo/2328/tasks/6204984) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
This update corrects a previous issue where the invoice status cron job only processed invoices for the main company within an Odoo instance. Now, it correctly fetches and updates the status of invoices across all companies within the system. This ensures accurate invoice tracking and reporting.
Original PR description
The invoice status cron was only fetching the main company's invoices. Fetch all companies' invoice statuses. Reference: https://github.com/odoo/odoo/pull/267144#discussion_r3441968099 no-task Forward-Port-Of: odoo/odoo#271227
This update fixes an issue where bank verification timestamps were incorrectly interpreted, leading to display errors for users in Poland. The change converts timestamps from the local Polish timezone to UTC, ensuring accurate display and preventing incorrect time conversions.
Original PR description
The gov API returns a 'requestDateTime' in str format in PL timezone. This commit converts it back to UTC timezone for a better display in payment form. fields.Datetime assume the value is in UTC time and so when a field of this type is displayed, it's converted to the user timezone. This cause issue with the PL API call because the API will send us 9:25 PL TZ but if we store it directly, it will be interpreted by the ORM as 9:25 UTC and displayed to the user that's in UTC+2 as 11:25 task-6314380 Forward-Port-Of: odoo/odoo#270839
This update fixes an issue where scanning an unknown barcode in the POS system didn't automatically open the product creation form. The fix removes a redundant check for API keys, ensuring the form opens correctly regardless of whether a key is configured. Users can now seamlessly create products by scanning barcodes.
Original PR description
When scanning an unknown barcode in POS, the product creation form was never opened because `barcode_lookup()` was called with no barcode as an implicit API key check. Commit 0c8019a4aa7 ([FIX] product_barcodelookup: avoid crash on invalid image URLs) standardized `barcode_lookup_request()` to always
return a `requests.Response` object, removing the `{'authenticated': True}` dict it previously returned for HTTP 404 responses. As a result the JS check `response?.authenticated` was always falsy and the form never opened.
Fix: remove the API key check entirely. `allowProductCreation()` already gates on the user having product create rights, which is the only condition that matters. If a Barcode Lookup API key is configured the `_onchange_barcode` on the form will auto-fill product data; if not, the user can fill it in manually. Either way the form is always usable.
opw-6295221
Forward-Port-Of: odoo/enterprise#120256This update resolves a problem where users were incorrectly denied access to WhatsApp templates within the Event management system. The fix prevents users from creating new WhatsApp templates, which was causing the 'User does not have access' error. This ensures proper WhatsApp template functionality for events.
Original PR description
Issue: 1) User goes to Event.event Form -> communication tab -> add line 2) Select whatsapp -> type something -> create and edit -> create new template with any model event.registration -> save ( all the way including the event form) 3) reload page -> whatsapp event.mail displays "User does not have access to this record". Fix: add "'no_create_edit': True" to the associated field in the xml to block creation of new mail.templates opw-6037488 Forward-Port-Of: odoo/odoo#268641 Forward-Port-Of: odoo/odoo#259683
This update fixes an issue where the avatar in the Discuss section was displaying outdated information for archived employees. The fix prioritizes the correct employee data based on active status and user links, ensuring accurate details are shown. This improves the user experience when accessing employee information.
Original PR description
*: hr_holidays,test_discuss_full **Steps to reproduce,** Create an employee linked to a user Archive the employee and remove the link to the user Create another employee for the same user Go to…
*: hr_holidays,test_discuss_full **Steps to reproduce,** Create an employee linked to a user Archive the employee and remove the link to the user Create another employee for the same user Go to Discuss > 'General' channel Open the member list and click on the user's avatar **Before this commit,** Clicking on the avatar opened a popover showing outdated information from the archived employee record instead of the new one. **Cause,** By default, the server sends employee data ordered by name. Since both records have the same name, the order is non-deterministic. The client then attempts to match the employee's company to the current user's company, falling back to the first record in the list if no match is found. **Fix,** Filter out archived records first (treating them as non-existent). Then, sort the remaining employee records to prioritize those that match the current user's active company. In case records share the same company, prioritize employees with a related user. Fall back to descending order of creation for identical results. **After this commit,** Clicking on the avatar shows the correct employee details in the popover. task-6175765 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#270546 Forward-Port-Of: odoo/odoo#252170
This update fixes an issue where the partner associated with an invoice was incorrectly overridden by the purchase order during UBL XML imports. Now, the purchase order is the definitive source for the bill's partner, ensuring accurate record-keeping and improved data consistency. This resolves a potential discrepancy in billing information.
Original PR description
Fix a bug where the partner of a bill is overriden by the PO matching The chosen logic here is to say that in the context of a purchase, the purchase order is the single source of truth to set the partner on a bill Steps to reproduce: - Create a partner with is_company = True - Create a contact type 'invoice' for this partner - Create a purchase order for the first partner - Import an XML (UBL) that matches this PO - You can see in the import logs that the partner was correctly found first, and then the PO matching override it to set the contact as the partner task-6289358 Forward-Port-Of: odoo/odoo#271133 Forward-Port-Of: odoo/odoo#269223
This update enhances the Helpdesk system by adding tests to ensure automatic reminder emails are sent correctly before tickets close. It also corrects a calculation error in the reminder timer, preventing delays and ensuring timely notifications for support staff. This improves the overall efficiency of ticket resolution.
Original PR description
- add tests for the auto reminder email before auto-closing tickets - fix issue with the reminder timer calculation --- task-5438678 Forward-Port-Of: odoo/enterprise#120540
This update corrects a bug in the SaaS version of Odoo (19.3) where sales orders without products (note lines) would prevent the 'deliver' button from appearing. The change ensures that all sales order lines, regardless of product association, can be delivered correctly. This resolves an issue that arose after a previous update.
Original PR description
In saas-19.2, note lines on SO's are no longer have a calculated
"manual" qty_delivered_method value. In the previous code, these would
prevent the deliver button showing on SO's (when stock was not
installed). These would also cause issues with the deliver action.
On Runbot (no apps installed):
1. Install Sales
2. Create SO with a product
3. Confirm SO
4. See deliver button dissapear
This change will correct a previous change so that sale order lines without a product will remain with a manual delivered method
opw-6280551
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#270440