Friday, June 20, 2025
29 changes · saas-18.3
Enhancements to existing features
Point of Sale no longer shows outdated messages asking users to wait for an IoT Box to send its devices. This reduces confusion by removing notifications that no longer reflect how the IoT setup works.
Original PR description
We used to display notifications like "We're waiting for your IoT Box to send its devices", that no longer make sense. This commit remove those notifications. Task: 4853242
Resolved issues and error corrections
This fixes an error that appeared when editing the Suggested Accessories toggle in the website editor. The affected website sales add-ons now point to the correct updated template, so users can edit the option without hitting a crash.
Original PR description
Traceback when editing the toggle button, through the website editor The element '<xpath expr="//del">' cannot be located in the parent view Description of the issue/feature this PR addresses: This…
Traceback when editing the toggle button, through the website editor The element '<xpath expr="//del">' cannot be located in the parent view Description of the issue/feature this PR addresses: This issue has happened because of the standard change in the module. Current behavior before PR: Traceback click on Suggested Accessories, the toggle button through the website editor. in v18.2 the module [website_event_sale](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_event_sale/views/website_sale_templates.xml#L24) and [website_sale_loyalty](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_sale_loyalty/views/website_sale_templates.xml#L128) is inherit the cart_line and target the [node](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_sale/views/templates.xml#L2087) is available in the view. But in version 18.3 this node is move to other [template](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale/views/templates.xml#L2341) that's why the node is not find. Desired behavior after PR is merged: After the change i target the new [template](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale/views/templates.xml#L2435) so the node is now find. Issued PR https://github.com/odoo/odoo/pull/190720 [OPW](https://www.odoo.com/odoo/project/70/tasks/4864959?debug=1) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Currently we cannot call send_all_devices to send the detected device of the IoT Box to the database before doing git checkout. The reason for this is the mac address being replaced by the serial number in master as the iot box identifier To still allow to quickly connect the iot box we now choose to send either the mac address or the serial number based on the database version we are trying to connect to Related PR: https://github.com/odoo/odoo/pull/210065 task-4852274 Forward-Por
Original PR description
Currently we cannot call send_all_devices to send the detected device of the IoT Box to the database before doing git checkout. The reason for this is the mac address being replaced by the serial number in master as the iot box identifier To still allow to quickly connect the iot box we now choose to send either the mac address or the serial number based on the database version we are trying to connect to Related PR: https://github.com/odoo/odoo/pull/210065 task-4852274 Forward-Port-Of: odoo/odoo#213177
The priority field in project sub-task forms now has the right amount of space for the updated star rating. This prevents the priority control from appearing cramped or misaligned, improving clarity for users managing project tasks.
Original PR description
This commit fixes the size of the priority field in the project_task_views form view's sub-tasks because it was not updated properly when the widget got 2 more stars. task-4881973
Rescheduling a meeting activity now also updates the linked calendar event date. This prevents users from seeing outdated meeting times in the calendar after changing an activity schedule.
Original PR description
Steps to reproduce ================== 1. Create a meeting activity on any record. 2. Go to `My Activities`. 3. Use the `reschedule` button to reschedule it tomorrow. 3. Go to calendar and check the date --> Date is still the same as when the activity was created After this PR ================= This commit updates the meeting accordingly. Task-4813092
Reloading a conversation while replying to an older message no longer causes the mail composer to crash. This improves reliability for users drafting replies, especially when the page is refreshed or restored with partial message data.
Original PR description
Before this commit, when a composer had a reply-to on a message. Reloading the page would lead to the following crash: ``` TypeError" undefined is not an object (evaluating 'ctx['props'].composer.replyToMessage.thread.notEq') ``` Steps to reproduce: - post 2 messages in conversation - start replying to the oldest message - page reload => crash This happens because when page reloading the composer is recovering its content, including the reply-to message. The reply-to composer recovery only contains the `messageId`, hence the crash above. When the reply-to message of composer is the last one this would not crash thanks to thread fetched data that also contains the last message data, which has proper link of message to thread. This commit fixes the issue by guarding message.thread relation in template, as the UI must be robust against partial knowledge of data.
The bank statement screen no longer shows an empty reconciliation button when no reconciliation models are available. This prevents users from clicking a broken option and makes the interface clearer.
Original PR description
Before this PR: An empty reconciliation button was displayed on the bank statement line when no reconciliation model existed, causing an error upon clicking. After this PR: That empty button is no longer shown if there are no applicable reconciliation models, avoiding the error and improving UI clarity. task-4876367
The Accounting app now hides a bank reconciliation button when its related model has been deleted. This prevents users from seeing an unlabeled button and avoids an error when reviewing bank transactions.
Original PR description
This error occurs because the model ID was deleted, but the button still references it. As a result, the button is displayed without a label, and clicking it leads to an error. Steps to reproduce: --- - Install the `Accounting` module - Accounting > Bank > Models (under Reconciliation) and delete all reconciliation models. - Go to Bank Transactions > Dropdown any statement line > click on button (without label) Traceback: --- `ValueError: Expected singleton: account.reconcile.model()` This commit resolves the issue by hiding the button when `model.id/label` is null. sentry-6674669584
We used to detect new printers every two minutes, but this made it hard to setup IoT Boxes as the list didn't update fast enough. We increased the detection frequency to 20 seconds during the first hour, then back to two minutes. We also removed the disconnected printers counter logic as it made no sense: a disconnected printer will now be marked directly as "disconnected" if it is not found by cups. Task: 4852407 Forward-Port-Of: odoo/odoo#214807
Original PR description
We used to detect new printers every two minutes, but this made it hard to setup IoT Boxes as the list didn't update fast enough. We increased the detection frequency to 20 seconds during the first hour, then back to two minutes. We also removed the disconnected printers counter logic as it made no sense: a disconnected printer will now be marked directly as "disconnected" if it is not found by cups. Task: 4852407 Forward-Port-Of: odoo/odoo#214807
- Prevent duplicate user conflict during official mode activation in multi-branch setups - Handle scenario where branches of the same company use the same Partita IVA (VAT number) or codice fiscale - Avoid "An user already exist in the database" error by validating user association logic - The branch should affect the same record in the db the will have the same proxy user Task [link](https://www.odoo.com/odoo/project/967/tasks/4737181) task-4737181 Forward-Port-Of: odoo/odoo#211060 Forw
Original PR description
- Prevent duplicate user conflict during official mode activation in multi-branch setups - Handle scenario where branches of the same company use the same Partita IVA (VAT number) or codice fiscale - Avoid "An user already exist in the database" error by validating user association logic - The branch should affect the same record in the db the will have the same proxy user Task [link](https://www.odoo.com/odoo/project/967/tasks/4737181) task-4737181 Forward-Port-Of: odoo/odoo#211060 Forward-Port-Of: odoo/odoo#209120
**Current behavior:** A write on a product's uom that is the same as the current value is blocked. **Expected behavior:** This type of trivial write should be permitted. **Steps to reproduce:** 1. Create a product with a UoM, generate some journal entries for it 2. Export the product to CSV with import-support formatting 3. Try to import that CSV -> blocked by UoM constraint **Cause of the issue:** With the removal of UoM categories, this constraint was made much tighter. *
Original PR description
**Current behavior:** A write on a product's uom that is the same as the current value is blocked. **Expected behavior:** This type of trivial write should be permitted. **Steps to reproduce:** 1. Create a product with a UoM, generate some journal entries for it 2. Export the product to CSV with import-support formatting 3. Try to import that CSV -> blocked by UoM constraint **Cause of the issue:** With the removal of UoM categories, this constraint was made much tighter. **Fix:** Don't constrain trivial writes where the new UoM is the old UoM. opw-4623279 Forward-Port-Of: odoo/odoo#211828
Problem: On macOS, pressing Option (Alt) + Backspace does not delete the previous word as expected. Instead, only a single character is removed. Cause: The `hotkey_service` does not support registering shortcuts that use the `Alt` key, which macOS relies on for word-level deletion. This prevents native macOS editing behavior from being handled properly. Solution: Add a dedicated `keydown` listener for macOS that manually handles deletion shortcuts involving `Alt` (Option) and `Command`.
Original PR description
Problem: On macOS, pressing Option (Alt) + Backspace does not delete the previous word as expected. Instead, only a single character is removed. Cause: The `hotkey_service` does not support registering shortcuts that use the `Alt` key, which macOS relies on for word-level deletion. This prevents native macOS editing behavior from being handled properly. Solution: Add a dedicated `keydown` listener for macOS that manually handles deletion shortcuts involving `Alt` (Option) and `Command`. This restores expected word and line deletion behavior for macOS users. Steps to reproduce: - On macOS, enter a two-word line in the editor. - Press Option (Alt) + Backspace. - Only the last character is deleted, instead of the last word. opw-4781484 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#213184
Fixes tour failure due to selection of a wrong autocomplete item with multiple options. This led to inconsistent behavior when multiple options with similar labels. This change ensures the tour selects the correct item and selects it by exact match using css selector and regex. The error appears in the runbot CI/CD , it doesnt have a build error in the runbot website for the moment https://runbot.odoo.com/runbot/build/79912368  Forward-Port-Of: odoo/odoo#209012
* STEP TO REPRODUCE: Have 2 company (1 is Default San Francisco the other is VN company),Start enviroment in VN company -> config an online payment method with Demo/Wire Transfer -> Start session and create pos order with no customer then Validate -> Customer scan QR code using mobile (not logged in) -> 403 forbidden error, read the log said: Sorry, Public user for VN company (id=10) doesn't have 'read' access to: User (res.users) * REASON: when request.env.ref('base.public_user') it will get
Original PR description
* STEP TO REPRODUCE: Have 2 company (1 is Default San Francisco the other is VN company),Start enviroment in VN company -> config an online payment method with Demo/Wire Transfer -> Start session and…
* STEP TO REPRODUCE: Have 2 company (1 is Default San Francisco the other is VN company),Start enviroment in VN company -> config an online payment method with
Demo/Wire
Transfer -> Start session and create pos order with no customer then Validate -> Customer scan QR code using mobile (not logged in) -> 403 forbidden error, read the log said: Sorry, Public user for VN company (id=10) doesn't have 'read' access to: User (res.users)
* REASON: when request.env.ref('base.public_user') it will get public user from San Francisco company while the request user is Public User of VN company, the record rule prevent that
* SOLUTION: Fix by using method _get_public_user() in res.company, this
commit also move _get_public_user() from website to base module so other
modules can use it
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#214822
Forward-Port-Of: odoo/odoo#193881**PROBLEM** When using the kiosk on a company that's not the default company, the employee count displayed for all department is 0. **STEP TO REPRODUCE** 1.install the attendance module. 2.select another company. 3.go to the kiosk (attendance/Kiosk Mode). 4.identify manually. 5.notice the department count is incorrectly displayed as 0. **CAUSE** When entering the kiosk, the user is disconnected from their session, the user in this context is the public_user who have only access to t
Original PR description
**PROBLEM** When using the kiosk on a company that's not the default company, the employee count displayed for all department is 0. **STEP TO REPRODUCE** 1.install the attendance module. 2.select another company. 3.go to the kiosk (attendance/Kiosk Mode). 4.identify manually. 5.notice the department count is incorrectly displayed as 0. **CAUSE** When entering the kiosk, the user is disconnected from their session, the user in this context is the public_user who have only access to the default company. The _compute_total_employee filter employees based on the company we have access to, so any employee from the non-default company are not taken into account. **FIX** We set the allowed_company_ids to the correct company id in the request context. opw-4647574 Forward-Port-Of: odoo/odoo#213935
This commit reduces padding so that long category names can occupy more available space. task-4865740 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#213920
Original PR description
This commit reduces padding so that long category names can occupy more available space. task-4865740 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#213920
The expect assertion does not wait, and waiting one animation frame is not enough for popovers, like the toolbar, as explained in [1]. [1]: https://github.com/odoo/odoo/pull/211426/commits/54da715df84789f9a1acc0cfc91be41dcdbab140 Forward-Port-Of: odoo/odoo#214955
Original PR description
The expect assertion does not wait, and waiting one animation frame is not enough for popovers, like the toolbar, as explained in [1]. [1]: https://github.com/odoo/odoo/pull/211426/commits/54da715df84789f9a1acc0cfc91be41dcdbab140 Forward-Port-Of: odoo/odoo#214955
\*: website_mail This PR addresses several issues in the blog module, including: Commit [1]: retain follow-us input button when logged in - Steps to reproduce: 1. Go to any blog post. 2. Enable the sidebar. 3. Select any category (e.g., Travel). Issue: A subscribe button appears in the 'Follow Us' section. - Solution: Currently, the input field is only shown to public users. This happens because the input element is restricted by the `base.groups_public` group in the XML code. Si
Original PR description
\*: website_mail This PR addresses several issues in the blog module, including: Commit [1]: retain follow-us input button when logged in - Steps to reproduce: 1. Go to any blog post. 2. Enable the…
\*: website_mail This PR addresses several issues in the blog module, including: Commit [1]: retain follow-us input button when logged in - Steps to reproduce: 1. Go to any blog post. 2. Enable the sidebar. 3. Select any category (e.g., Travel). Issue: A subscribe button appears in the 'Follow Us' section. - Solution: Currently, the input field is only shown to public users. This happens because the input element is restricted by the `base.groups_public` group in the XML code. Since this is an XML change in v17.0 (stable version), we need to implement the fix in JS instead. After that, we will adapt the code from the master branch. Commit [2]: remove unnecessary months from blog category - Steps to reproduce: 1. Have a blog post in a category (e.g., Astronomy) published in Feb-2025. 2. In another category (e.g., Travel), have blog posts in both Jan-2025 and Feb-2025. 3. When selecting the Astronomy category, the sidebar `Archives` filter shows all months, even if no blog post exists in Jan 2025. - Solution: It will now show only months that contain blog posts for the selected category. Filter out from the backend according to their publishing date. Commit [3]: correct tag redirection to backend in blog posts - Steps to reproduce: 1. Go to any blog post. 2. Turn on the sidebar. 3. Create a new blog post. 4. Save it. Issue : clicking `add some` on tags redirects to the homepage instead of the backend of that blog post. - Solution: a wrong URL was inserted in the anchor tag. For stable, we changed it from JS, but it will be applied to XML in master. task-4546888 Forward-Port-Of: odoo/odoo#213575 Forward-Port-Of: odoo/odoo#197172
Issue ----- Reports printed using the DIN5008 layout but not the paper format have a big empty vertical band. The issue was reported for Return Slips but is common to all external documents.  Steps to reproduce ----- - Go to Settings > Companies > Configure Document Layout - Set the Layout to DIN 5008 - Set Paper format to A4 (anything except DIN5008) - Download the PDF Preview -> The printed
Original PR description
Issue ----- Reports printed using the DIN5008 layout but not the paper format have a big empty vertical band. The issue was reported for Return Slips but is common to all external documents.…
Issue ----- Reports printed using the DIN5008 layout but not the paper format have a big empty vertical band. The issue was reported for Return Slips but is common to all external documents.  Steps to reproduce ----- - Go to Settings > Companies > Configure Document Layout - Set the Layout to DIN 5008 - Set Paper format to A4 (anything except DIN5008) - Download the PDF Preview -> The printed pdf has an empty vertical band to the right of the document Cause ----- 87b067a added a new `din_page_pdf` class that we apply when printing the pdf https://github.com/odoo/odoo/blob/846c9746a601f52ddb768be4e4c7bfc21d6eeb23/addons/l10n_din5008/report/din5008_report.xml#L37 This forces a specific width to the contents https://github.com/odoo/odoo/blob/846c9746a601f52ddb768be4e4c7bfc21d6eeb23/addons/l10n_din5008/static/src/scss/report_din5008.scss#L124-L127 This works with the DIN paper format because it applies adequate margins https://github.com/odoo/odoo/blob/846c9746a601f52ddb768be4e4c7bfc21d6eeb23/addons/l10n_din5008/report/din5008_report.xml#L5-L18 For regular formats, we are better off with the default dynamic behaviour. Visual comparison ----- Left is before the fix, right is after the fix.  ----- Ticket: opw-4660716 Forward-Port-Of: odoo/odoo#213992 Forward-Port-Of: odoo/odoo#211715
Steps to reproduce: - Install the "Website" app. - Go to the homepage. - Click on "Site > Menu Editor" in the backend navbar. - Create a submenu. - Add a "Mega Menu Item" to the menu. - Save the dialog. - Enter edit mode. - Click on the header. - Select the "sidebar" template in the options. - Open the "Mega Menu". - Bug -> the website logo is visible under the left arrow icon. The bug has appeared since commit [1], where an "inherit" value was added to the background color prope
Original PR description
Steps to reproduce: - Install the "Website" app. - Go to the homepage. - Click on "Site > Menu Editor" in the backend navbar. - Create a submenu. - Add a "Mega Menu Item" to the menu. - Save the…
Steps to reproduce: - Install the "Website" app. - Go to the homepage. - Click on "Site > Menu Editor" in the backend navbar. - Create a submenu. - Add a "Mega Menu Item" to the menu. - Save the dialog. - Enter edit mode. - Click on the header. - Select the "sidebar" template in the options. - Open the "Mega Menu". - Bug -> the website logo is visible under the left arrow icon. The bug has appeared since commit [1], where an "inherit" value was added to the background color property of the mega menu nav. The goal was to apply the header's background color to the mega menu nav, but the chosen method was incorrect. Indeed, "inherit" only takes the background color from the immediate parent, and does not search up the tree until it finds one with a defined background color. In this case, since the parent had no background color set, the value ends up as "transparent". [1]: https://github.com/odoo/odoo/commit/b975377fe688f10497b75598c0c50bd7b0758367 Forward-Port-Of: odoo/odoo#214811
**Steps to reproduce:** - Install Accounting - Upload some particular PDF as a bill - Go to the bills list view - Select the uploaded bill - Print "Original Bills" **Issue:** A traceback is raised: "Arbitrary Uncaught Python Exception" Cause: When printing the original bill, we try to add a banner on the PDF. In this case, PyPDF2 fails to add a banner and raises an error from decimal library (i.e. "decimal.InvalidOperation") that is not catched. **Solution:** Bypass the addition
Original PR description
**Steps to reproduce:** - Install Accounting - Upload some particular PDF as a bill - Go to the bills list view - Select the uploaded bill - Print "Original Bills" **Issue:** A traceback is raised: "Arbitrary Uncaught Python Exception" Cause: When printing the original bill, we try to add a banner on the PDF. In this case, PyPDF2 fails to add a banner and raises an error from decimal library (i.e. "decimal.InvalidOperation") that is not catched. **Solution:** Bypass the addition of the banner in such case by handling the error. opw-4829787 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#214835 Forward-Port-Of: odoo/odoo#214493
opw-4865213 Caused-by: https://github.com/odoo/odoo/pull/212680 Forward-Port-Of: odoo/odoo#214988
Original PR description
opw-4865213 Caused-by: https://github.com/odoo/odoo/pull/212680 Forward-Port-Of: odoo/odoo#214988
The field priority is not required (even if it has a default) so it is possible to have False instead of a str. Traceback occures when merging leads that contains historical data. ``` File "/home/odoo/src/odoo/saas-18.3/addons/crm/models/crm_lead.py", line 1501, in _merge_opportunity merged_data = opportunities._merge_data(self._merge_get_fields()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/odoo/src/odoo/saas-18.3/addons/crm/models/crm_lead.
Original PR description
The field priority is not required (even if it has a default) so it is possible to have False instead of a str.
Traceback occures when merging leads that contains historical data.
```
File "/home/odoo/src/odoo/saas-18.3/addons/crm/models/crm_lead.py", line 1501, in _merge_opportunity
merged_data = opportunities._merge_data(self._merge_get_fields())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-18.3/addons/crm/models/crm_lead.py", line 1457, in _merge_data
data[field_name] = fcallable(field_name, self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/odoo/src/odoo/saas-18.3/addons/crm/models/crm_lead.py", line 1555, in <lambda>
'priority': lambda fname, leads: max(leads.mapped('priority')) if leads else False,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: '>' not supported between instances of 'str' and 'bool'
```
Forward-Port-Of: odoo/odoo#214152In this PR: - Introduced a new "Slovenian 01 (SI0125-1235-8403)" format for payment references, following Slovenia’s Model 01 standard. This format is selectable in Sales journals (Advanced Settings) and set as the default for Slovenian companies. task-4805083 Forward-Port-Of: odoo/odoo#214839 Forward-Port-Of: odoo/odoo#211608
Original PR description
In this PR: - Introduced a new "Slovenian 01 (SI0125-1235-8403)" format for payment references, following Slovenia’s Model 01 standard. This format is selectable in Sales journals (Advanced Settings) and set as the default for Slovenian companies. task-4805083 Forward-Port-Of: odoo/odoo#214839 Forward-Port-Of: odoo/odoo#211608
Steps to Reproduce: - Install `website_sale_stock` and enable the Reorder from portal feature. - Place an order from `/shop` that includes one or more combo products. - Navigate to `/my/orders` and attempt to reorder the same. - Combo products are broken into separate lines rather than shown as a single combo. - Stock information for the combo is not available, as the items are treated independently. Issue: - Combo products are displayed as separate lines in reorder modal - Also stock
Original PR description
Steps to Reproduce: - Install `website_sale_stock` and enable the Reorder from portal feature. - Place an order from `/shop` that includes one or more combo products. - Navigate to `/my/orders` and…
Steps to Reproduce: - Install `website_sale_stock` and enable the Reorder from portal feature. - Place an order from `/shop` that includes one or more combo products. - Navigate to `/my/orders` and attempt to reorder the same. - Combo products are broken into separate lines rather than shown as a single combo. - Stock information for the combo is not available, as the items are treated independently. Issue: - Combo products are displayed as separate lines in reorder modal - Also stock management of combo products is not there Cause: - The `/my/orders/reorder_modal_content` controller route lacks logic to handle combo products. The reorder modal builds the cart lines assuming all items are standalone, disregarding combo grouping and related stock aggregation. Solution: - Extend the `/my/orders/reorder_modal_content` route logic to correctly identify and process combo products as single bundled entities. - Update the reorder modal in `website_sale_stock` to incorporate combo-specific stock handling, ensuring accurate availability feedback for the entire combo. - This ensures that the reorder experience mirrors the original order composition and improves stock visibility for bundled products. opw-4731014 Affected Version-18.0 Forward-Port-Of: odoo/odoo#214520 Forward-Port-Of: odoo/odoo#209234
### Steps to reproduce: - Install PoS mexican localization - Navigate to PoS and create an order with a discount line - Go to back end and try to refund this order - Notice an error pops-up ### Cause: This is happening because when refunding an order we are checking if every line has positive price but since discount lines will have negative value it trigger the validation error. https://github.com/odoo/enterprise/blob/78bcd2e0b9296ad124ea1c3157a884fa6e62999a/l10n_mx_edi_pos/model
Original PR description
### Steps to reproduce: - Install PoS mexican localization - Navigate to PoS and create an order with a discount line - Go to back end and try to refund this order - Notice an error pops-up ### Cause: This is happening because when refunding an order we are checking if every line has positive price but since discount lines will have negative value it trigger the validation error. https://github.com/odoo/enterprise/blob/78bcd2e0b9296ad124ea1c3157a884fa6e62999a/l10n_mx_edi_pos/models/pos_order.py#L286 ### Fix: We check if the order lines are positive but after filtering the discount lines out opw-4528737 Forward-Port-Of: odoo/enterprise#87916 Forward-Port-Of: odoo/enterprise#84331
As in earlier versions, add an alias to the Internal folder so that it is configured out of the box on Saas. In sign, we make sure to not try and embed an action on the Internal folder if it was already deleted before the bridge is installed. Task-4690653 Forward-Port-Of: odoo/enterprise#82949
Original PR description
As in earlier versions, add an alias to the Internal folder so that it is configured out of the box on Saas. In sign, we make sure to not try and embed an action on the Internal folder if it was already deleted before the bridge is installed. Task-4690653 Forward-Port-Of: odoo/enterprise#82949
Some fixes in regarding quality and mrp - Hide the failure location depending on the test_type - redirect the stock move to the failure location instead of the picking or mo (for the backorder) Forward-Port-Of: odoo/enterprise#81211
Original PR description
Some fixes in regarding quality and mrp - Hide the failure location depending on the test_type - redirect the stock move to the failure location instead of the picking or mo (for the backorder) Forward-Port-Of: odoo/enterprise#81211
Changes include: - Better background color alternation for each journal entry. - Journal Entry number is now shown only once, and in bold. - Moved the date into the same column as the Journal Entry number to save space. task-4844519 Forward-Port-Of: odoo/enterprise#86991
Original PR description
Changes include: - Better background color alternation for each journal entry. - Journal Entry number is now shown only once, and in bold. - Moved the date into the same column as the Journal Entry number to save space. task-4844519 Forward-Port-Of: odoo/enterprise#86991