Wednesday, May 14, 2025
39 changes · saas-18.2
Resolved issues and error corrections
This fix makes an automated user-switching test wait until logout is fully complete before continuing. It helps prevent false test failures caused by faster test execution, improving confidence in release validation without changing the user experience.
Original PR description
Since the changes in the tour engine, steps are slightly faster. This commit adds a step in the user switch tour to wait to be actually logged out before continuing runbot-error-135106 runbot-error-135070 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
Indian e-invoice generation now handles invoice lines without a product description, such as round-off lines. This prevents avoidable submission errors and helps users send e-invoices successfully without manually adding unnecessary descriptions.
Original PR description
Issue ----- Sending the E-Invoice fails with an error when the Product Desc is missing. Steps to reproduce ----- -Go to Accounting > Customers > Invoices -Create an invoice with a line item such as "Round Off" (no product description) -Send for E-invoice. Fix ---- -This commit adds a validation check to ensure that 'PrdDesc' is only added to the json_payload if `line.name` is present, preventing the error during e-invoice generation. ---- Tickets: opw-4788391
This fix improves how Odoo detects a lost connection when a user goes offline, so it no longer mistakenly treats a page as outdated. This helps avoid unnecessary refresh warnings and keeps the user experience smoother after connectivity changes.
Original PR description
The outdated page watcher checks whether bus notifications were missed when the bus reconnects after an unexpected disconnection. To do so, it checks if the last known notification id is still in the bus table. When the bus disconnects, the last notification id is saved. However, disconnect event is not correctly sent when switching from online to offline. This commit fixes this issue. follow up of https://github.com/odoo/odoo/pull/208625 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
When users post a message that contains only file attachments, the message preview now immediately shows those attachments instead of briefly displaying a misleading removed-message notice. This makes the chat experience smoother and avoids momentary confusion after uploading files.
Original PR description
Before this commit, when posting a message containing only files, the message list shows the new message with "this message has been removed" for a very short time. This happens because the pending message was considered empty, due to lack of attachments in pending message. The pending message is the optimistical behaviour of showing the message that is being posted immediately on UI before receiving response data from server. This commit fixes the issue by showing attachments of just sent message in the pending preview. Task-4776054 Posting a message with Avatar.jpg: Before / After  
Belgian fiscal POS now avoids failures when an IP address is unavailable during automated or background session startup. Sale details logic also only applies blackbox-specific handling to blackbox configurations, reducing unintended effects.
Original PR description
Before this commit, when pos_blackbox_be was installed, the pos tests were failing because most pos test called `_run_test` which is calling `_satrt_pos_session` which is calling `open_new_session` which is calling `set_opening_control`. This makes that when calling `set_opening_control`, the request is not bound and we cannot do `request.geoip.ip`. We now check that the request is bound in `_log_ip`: if it is not, we return, if it is, we resolve the ip on the fly. We also add a check to the sale details data computation method `get_sale_details` override in pos_blackbox_be to check if the config is a blackbox one. original commit: df796f3770ff2fdaf553cdfb4206f65c7b371189 Community PR: https://github.com/odoo/odoo/pull/209584
Miscellaneous changes
Steps to reproduce: - Open a list view in which integer field having default value as false like ID field which has enable_formatting option as False. - Create a record Issue: - False is shown inside in integer field before saving. Reason: - When enable_formatting is False the value is returned and no checks are done. Fix: - A basic check to make sure we are sending out a number not a boolean. task-4700791 Forward-Port-Of: odoo/odoo#208262
Original PR description
Steps to reproduce: - Open a list view in which integer field having default value as false like ID field which has enable_formatting option as False. - Create a record Issue: - False is shown inside in integer field before saving. Reason: - When enable_formatting is False the value is returned and no checks are done. Fix: - A basic check to make sure we are sending out a number not a boolean. task-4700791 Forward-Port-Of: odoo/odoo#208262
The live chat uses a shadow DOM to preserve its styles. However, shopify hides empty block. Since the live chat root only contains the shadow DOM, it is considered empty which leads to the chat bubble not being displayed. This commit fixes the issue by explicitly setting the "display" style on the live chat root. opw-4768389 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CL
Original PR description
The live chat uses a shadow DOM to preserve its styles. However, shopify hides empty block. Since the live chat root only contains the shadow DOM, it is considered empty which leads to the chat bubble not being displayed. This commit fixes the issue by explicitly setting the "display" style on the live chat root. opw-4768389 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#209592
Steps to reproduce: ------------------------ - Install POS & setup kitchen printer. - Open session and make an order with instant creation mode attribute product. - Cancel the order. Issue: ------- - In the cancel KOT the attribute name wasn't visible. Cause: --------- - Wrong value passed for display name just simple name was passed instead of display name containing the attribute. FIX: ------ - Corrected the value passed for the display name. Task: 4720599 Forward-Port-O
Original PR description
Steps to reproduce: ------------------------ - Install POS & setup kitchen printer. - Open session and make an order with instant creation mode attribute product. - Cancel the order. Issue: ------- - In the cancel KOT the attribute name wasn't visible. Cause: --------- - Wrong value passed for display name just simple name was passed instead of display name containing the attribute. FIX: ------ - Corrected the value passed for the display name. Task: 4720599 Forward-Port-Of: odoo/odoo#209269 Forward-Port-Of: odoo/odoo#207167
We don't need to create values when the uuid is NULL. Otherwise we get a long running upgrade for no reason. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209647
Original PR description
We don't need to create values when the uuid is NULL. Otherwise we get a long running upgrade for no reason. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209647
Steps to reproduce the bug: - Enable multi-steps route - Set a remove destination location (e.g., WH/stock/shelf1) on the repair operation type. - Create a new route: - name: Push route - Rule: - Action: push to - Operation type: internal transfer - Source location: WH/stock/shelf1 - Destination location: WH/stock/shelf2 - Create a storable product “P1”: - Update the Qty to one unit in WH/stock - Create a sotrable product “C1”: - Route: select the
Original PR description
Steps to reproduce the bug: - Enable multi-steps route - Set a remove destination location (e.g., WH/stock/shelf1) on the repair operation type. - Create a new route: - name: Push route - Rule: -…
Steps to reproduce the bug:
- Enable multi-steps route
- Set a remove destination location (e.g., WH/stock/shelf1) on the repair operation type.
- Create a new route:
- name: Push route
- Rule:
- Action: push to
- Operation type: internal transfer - Source location: WH/stock/shelf1 - Destination location: WH/stock/shelf2
- Create a storable product “P1”:
- Update the Qty to one unit in WH/stock
- Create a sotrable product “C1”:
- Route: select the new created route → “Push route”
- Create a repair order:
- Customer: Azure interior
- Product: P1
- part:
- Remove one unit of C1
- Confirm the repair
- Start the repair
- End the repair
Problem:
The move of “C1” is duplicated and added to the repair
When a push rule triggers an internal transfer for a component removed during a repair, the newly created stock move wrongly inherits the "repair_id" from the original move.
This happens because the "repair_id" field was not excluded from being copied, resulting in the duplicated move being incorrectly linked to the repair order.
https://github.com/odoo/odoo/blob/11e69870db1c49d9a6af79ffd263e4e162b34b6b/addons/stock/models/stock_move.py#L1854-L1855
https://github.com/odoo/odoo/blob/11e69870db1c49d9a6af79ffd263e4e162b34b6b/addons/stock/models/stock_move.py#L968-L969 https://github.com/odoo/odoo/blob/11e69870db1c49d9a6af79ffd263e4e162b34b6b/addons/stock/models/stock_rule.py#L212
https://github.com/odoo/odoo/blob/11e69870db1c49d9a6af79ffd263e4e162b34b6b/addons/stock/models/stock_rule.py#L240
Solution:
By setting copy=False on the repair_id field, we prevent this unintended propagation.
opw-4689206
Forward-Port-Of: odoo/odoo#208653This commit adds an `await animationFrame()` in a reference field test. This makes the first assertion relevant, as it wasn't before (the view could never be there instantly). It also makes the test more robust as it could sometimes fail for the second assertions (race condition), see https://runbot.odoo.com/runbot/build/80157085 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the
Original PR description
This commit adds an `await animationFrame()` in a reference field test. This makes the first assertion relevant, as it wasn't before (the view could never be there instantly). It also makes the test more robust as it could sometimes fail for the second assertions (race condition), see https://runbot.odoo.com/runbot/build/80157085 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#209474
### Steps to reproduce: - Install "l10n_din5008" - In Settings > Layout, select DIN5008 as the report and change the two possible colors - Create a quotation, print it - The address is colored ### Cause This [commit](https://github.com/odoo/odoo/commit/92e4c3cb3bec0b3d5537a50fd441a22fa6509ed1) reduced the size of the address by replacing `div` with `span` which is applied `font-size: 0.8em;`. But also `color: $o-default-report-secondary-color;` ([see](https://github.com/odoo/odoo/blob/
Original PR description
### Steps to reproduce: - Install "l10n_din5008" - In Settings > Layout, select DIN5008 as the report and change the two possible colors - Create a quotation, print it - The address is colored ###…
### Steps to reproduce: - Install "l10n_din5008" - In Settings > Layout, select DIN5008 as the report and change the two possible colors - Create a quotation, print it - The address is colored ### Cause This [commit](https://github.com/odoo/odoo/commit/92e4c3cb3bec0b3d5537a50fd441a22fa6509ed1) reduced the size of the address by replacing `div` with `span` which is applied `font-size: 0.8em;`. But also `color: $o-default-report-secondary-color;` ([see](https://github.com/odoo/odoo/blob/d3e43681fd2b989ae7272731662cc3ac6a6d913b/addons/l10n_din5008/static/src/scss/report_din5008.scss#L47-L50)). ### Solution Don't use `span` in the CSS to select the text. Instead we create a new class `colored_address` to apply the color and apply the same font size on the entire address block. This way the addresses will always have the same font size and the color should only be applied where we want it to. Before:  After:  Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4725169) opw-4725169 Forward-Port-Of: odoo/odoo#209020
In the case where the name of the related partner is changed, the bank account holder name will not reflect the changes, we add here a dependency on partner_id.name Forward-Port-Of: odoo/odoo#209436
Original PR description
In the case where the name of the related partner is changed, the bank account holder name will not reflect the changes, we add here a dependency on partner_id.name Forward-Port-Of: odoo/odoo#209436
Versions -------- - saas-17.4+ Steps ----- 1. Create a Azure storage container with a hyphen in its name; 2. connect it to your database; 3. go to a contact; 4. click "Send message"; 5. upload an attachment. Issue ----- Server Error pop-up. In the logger, you get: > `TypeError: UserError.__init__() takes 2 positional arguments but 3 were given` Cause ----- 1. The `ValidationError` string is badly formatted. 2. The regex to verify Azure Blob Storage URLs doesn't allow hy
Original PR description
Versions -------- - saas-17.4+ Steps ----- 1. Create a Azure storage container with a hyphen in its name; 2. connect it to your database; 3. go to a contact; 4. click "Send message"; 5. upload an attachment. Issue ----- Server Error pop-up. In the logger, you get: > `TypeError: UserError.__init__() takes 2 positional arguments but 3 were given` Cause ----- 1. The `ValidationError` string is badly formatted. 2. The regex to verify Azure Blob Storage URLs doesn't allow hyphens in the container name. Solution -------- 1. As the `ValidationError` is only shown in the logger, format it as an f-string. 2. Update the regex to the constraints imposed by Azure[^1]. [^1]: https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules#microsoftstorage opw-4770160 Forward-Port-Of: odoo/odoo#209677 Forward-Port-Of: odoo/odoo#209127
Versions -------- - 16.0+ Steps ----- 1. Have multiple companies; 2. create an eWallet program available to all companies; 3. set its email template to "Gift Card: Gift Card Information"; 4. create & confirm an order containing the "Top-up eWallet" product; 5. switch to a different company; 6. create an new order for the same client. Issue ----- Access Error Cause ----- Commit eaa6f6c5a415f added the `_get_mail_author` method to ensure gift card emails always have an author
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Have multiple companies; 2. create an eWallet program available to all companies; 3. set its email template to "Gift Card: Gift Card Information"; 4. create &…
Versions -------- - 16.0+ Steps ----- 1. Have multiple companies; 2. create an eWallet program available to all companies; 3. set its email template to "Gift Card: Gift Card Information"; 4. create & confirm an order containing the "Top-up eWallet" product; 5. switch to a different company; 6. create an new order for the same client. Issue ----- Access Error Cause ----- Commit eaa6f6c5a415f added the `_get_mail_author` method to ensure gift card emails always have an author. When using the gift card template for eWallets, this can cause an issue for 2 reasons: 1. When creating an eWallet via the top-up product, its `order_id` is the order that created the eWallet. This order may belong to a different company than the one it is getting used for. 2. The `send_reward_coupon_mail` method fetches its coupons by calling `_get_reward_coupons` on the order. This returns any applied eWallets, therefore calling `_send_creation_communication` whenever the eWallet gets used. The reason it returns applied eWallets as a "reward coupon" is because `_update_programs_and_rewards` creates `sale.order.coupon.points` records with 0 points when applying a `loyalty.card`, which then get assumed to be a reward, despite not granting any points: https://github.com/odoo/odoo/blob/9e22dbb7b6fb581d2f11bf0ec48b230047686050/addons/sale_loyalty/models/sale_order.py#L499-L504 Solution -------- 1. In the `_get_mail_author` yield to `super` if the order's company isn't in `self.env.companies`. 2. In the `_get_points_programs` and `_get_reward_coupons` methods, filter out `coupon_point_ids` that don't grant any points. (Alternatively, we could avoid creating `sale.order.coupon.points` records with 0 points, but this might be risky for stable.) opw-4731588 Forward-Port-Of: odoo/odoo#209515 Forward-Port-Of: odoo/odoo#208637
Currently Chromium generates a lot of temporary files like .org.chromium.Chromium.0ouinx in /tmp directory This leads to the kiosk using IoT Boxes being non responsive and eventually having issues/crashing This PR increases the size of /tmp directory following the recommendation of it being half the size of the ram (which is 2GB for our rpi 4) We also increase /etc directory size to allow more cups storage where it it used Recommendation link: https://docs.aws.amazon.com/linux/al2023
Original PR description
Currently Chromium generates a lot of temporary files like .org.chromium.Chromium.0ouinx in /tmp directory This leads to the kiosk using IoT Boxes being non responsive and eventually having issues/crashing This PR increases the size of /tmp directory following the recommendation of it being half the size of the ram (which is 2GB for our rpi 4) We also increase /etc directory size to allow more cups storage where it it used Recommendation link: https://docs.aws.amazon.com/linux/al2023/ug/filesystem-slash-tmp.html Forward-Port-Of: odoo/odoo#209680
**Purpose:** - The label `File Content (base64)` is still visible even if the attachment type is URL. **Specifications:** - Hide label `File Content (base64)` when attachment type is URL. task-4778138 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209210
Original PR description
**Purpose:** - The label `File Content (base64)` is still visible even if the attachment type is URL. **Specifications:** - Hide label `File Content (base64)` when attachment type is URL. task-4778138 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209210
- It's not auto-exported (for now...) - It was out of date - We forgot to include the industry modules --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
- It's not auto-exported (for now...) - It was out of date - We forgot to include the industry modules --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Before this commit, when a product had multiple taxes, the X report was displaying a wrong total base tax amount. This was due to the fact that the tax amount was being calculated as the sum of all the tax bases. This was wrong as the amount tax excluded of the product sold was included twice in this sum. opw-4727830 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208642
Original PR description
Before this commit, when a product had multiple taxes, the X report was displaying a wrong total base tax amount. This was due to the fact that the tax amount was being calculated as the sum of all the tax bases. This was wrong as the amount tax excluded of the product sold was included twice in this sum. opw-4727830 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208642
With Jordan Company setup: - Set dummy values on the Jordan electronic invoicing settings - Enable USD, set a rate and currency precision to 5 - Set the Product Price decimal accuracy to 5 - Make an invoice in USD adding a line as follows: - Price 0.13793 - Qty 9 - Discount 100% - Tax: 16% - Confirm - Send & Print, activate e-invoice (JoFotara (Jordan EDI)) Issue will raise: ``` odoo.addons.base.models.ir_qweb.QWebException: Error while render the template Template: accou
Original PR description
With Jordan Company setup: - Set dummy values on the Jordan electronic invoicing settings - Enable USD, set a rate and currency precision to 5 - Set the Product Price decimal accuracy to 5 - Make an…
With Jordan Company setup: - Set dummy values on the Jordan electronic invoicing settings - Enable USD, set a rate and currency precision to 5 - Set the Product Price decimal accuracy to 5 - Make an invoice in USD adding a line as follows: - Price 0.13793 - Qty 9 - Discount 100% - Tax: 16% - Confirm - Send & Print, activate e-invoice (JoFotara (Jordan EDI)) Issue will raise: ``` odoo.addons.base.models.ir_qweb.QWebException: Error while render the template Template: account_edi_ubl_cii.ubl_20_MonetaryTotalType Path: /t/t/cbc:TaxInclusiveAmount Node: <ns0:TaxInclusiveAmount xmlns:ns0="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" t-att-currencyID="vals[\'currency\'].name" t-out="format_float(vals.get(\'tax_inclusive_amount\'), vals.get(\'currency_dp\'))"/> ``` This occurs because on high currency precision we may work with numbers that are represented in scientific notation (-2e-09) that when converted to string may keep the literal form unless using a specific format opw-4739342 Forward-Port-Of: odoo/odoo#209624
Steps to reproduce: --------------------------------------------------------------------------------------------------------------------- - Install the point_of_sale module. - Enable Loyalty from configuration - 1. Open Session and add a gift card product to the order. Enter a gift card number using a past suggestion (autocomplete). - 2. Create a new partner from the frontend using autofill Issue: ------------------------------------------------------------------------------------
Original PR description
Steps to reproduce: --------------------------------------------------------------------------------------------------------------------- - Install the point_of_sale module. - Enable Loyalty from…
Steps to reproduce:
---------------------------------------------------------------------------------------------------------------------
- Install the point_of_sale module.
- Enable Loyalty from configuration
- 1. Open Session and add a gift card product to the order.
Enter a gift card number using a past suggestion (autocomplete).
- 2. Create a new partner from the frontend using autofill
Issue:
----------------------------------------------------------------------------------------------------------------------
- A traceback occurs when the gift card number is selected from the suggestion
list & create partner using autofill
Cause:
----------------------------------------------------------------------------------------------------------------------
- The event key value is undefined when selecting from autocomplete
suggestions, causing a crash in the keydown event handler.
Fix:
---------------------------------------------------------------------------------------------------------------------
- Gift card number field suggestion is unnecessary, so remove suggestion and
safely handled cases where event key is undefined during keydown events to
prevent crashes.
Task:4743765
Forward-Port-Of: odoo/odoo#207186### Steps to reproduce: - In the settings enable Multi-Steps Rules - Inventory > Configuration > Warehouse Management > Warehouses - Put your warehouse in delivery in 2 steps and modify the rules to be in the old pull set up Stock 1-> Output 2-> Customer. - Enable the "Cancel next move" option of the pick rule. - Create an SO for 1 unit of a storable product > This should generate both a pick and a ship move. - Cancel the pick move #### > The ship move was not cancelled ### Cause of
Original PR description
### Steps to reproduce: - In the settings enable Multi-Steps Rules - Inventory > Configuration > Warehouse Management > Warehouses - Put your warehouse in delivery in 2 steps and modify the rules to…
### Steps to reproduce: - In the settings enable Multi-Steps Rules - Inventory > Configuration > Warehouse Management > Warehouses - Put your warehouse in delivery in 2 steps and modify the rules to be in the old pull set up Stock 1-> Output 2-> Customer. - Enable the "Cancel next move" option of the pick rule. - Create an SO for 1 unit of a storable product > This should generate both a pick and a ship move. - Cancel the pick move #### > The ship move was not cancelled ### Cause of the issue: While the moves of the chain are correctly linked and the `move_dest_ids` of the pick move is planed to be cancelled, it does not satisfy the filtering condition of moves that should be cancelled because as it is at the end of the chain it does not have a `move_dest_id` it self: https://github.com/odoo/odoo/blob/eb43cdbfeb3d141283dbd9274fae45bf0bf641db/addons/stock/models/stock_move.py#L1966-L1968 IMO, the condition on the locations should be set between the move we are cancelling and the move we plan to cancel rather than on next step of the chain that might not even exist. Note (fix sale_stock): The forward port of commit 853d9c46fc506564c5c40a2ce7cd14507109a923 has not been merged in 17.2 since its issue was not reproducible in that version. This is because the propagate cancel option was not working properly since the push pull refactor. To merge our change we therefore need to reintroduce the associated `sale_stock` fix. opw-4689175 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#205120
Before this commit, when opening a pos without admin employees set, the user was blocked into its open session without being able to close it. task-id: 4730841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#207136 Forward-Port-Of: odoo/odoo#206662
Original PR description
Before this commit, when opening a pos without admin employees set, the user was blocked into its open session without being able to close it. task-id: 4730841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#207136 Forward-Port-Of: odoo/odoo#206662
Issue: ------------ The width of the "Upload and Set" button did not adjust based on its text, resulting in the text being clipped. Fix: ----------- This commit enables automatic width adjustment for the "Upload and Set" button to ensure both the button and its text are fully visible on the same line. Steps to Reproduce (mobile view): ------------------ - Install the project module - Open the task Kanban view - Click on Set Cover Image task-3761269 Forward-P
Original PR description
Issue: ------------ The width of the "Upload and Set" button did not adjust based on its text, resulting in the text being clipped. Fix: ----------- This commit enables automatic width adjustment for the "Upload and Set" button to ensure both the button and its text are fully visible on the same line. Steps to Reproduce (mobile view): ------------------ - Install the project module - Open the task Kanban view - Click on Set Cover Image task-3761269 Forward-Port-Of: odoo/odoo#160913
requires: https://github.com/odoo/enterprise/pull/84124 --- In the control panel, any middle element (whether it's the search bar or control_panel_actions) tends to drop below the rest of the content under the `lg` breakpoint due to missing spacing. Under `md`, these elements collapse into dropdowns or toggle buttons as expected. Prior to this commit, there was an issue with the spacing applied between `md` and `lg`. This was either caused by the `mt-md-0` class on the search bar or the
Original PR description
requires: https://github.com/odoo/enterprise/pull/84124 --- In the control panel, any middle element (whether it's the search bar or control_panel_actions) tends to drop below the rest of the content…
requires: https://github.com/odoo/enterprise/pull/84124 --- In the control panel, any middle element (whether it's the search bar or control_panel_actions) tends to drop below the rest of the content under the `lg` breakpoint due to missing spacing. Under `md`, these elements collapse into dropdowns or toggle buttons as expected. Prior to this commit, there was an issue with the spacing applied between `md` and `lg`. This was either caused by the `mt-md-0` class on the search bar or the specific breakpoint use of `gap-lg-3` To resolve the spacing issue between `md` and `lg`, we now apply the correct gap (by adding a `gap-2` alongside the `gap-lg-3`) on the control panel’s main div, and remove unwanted margin/padding classes. | | Before (between md and lg) | After (between md and lg) | |--------|--------|--------| | w/ searchbar |  |  | | w/ actions |  |  | task-4568501 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#207461
Before this commit, when the user is in debug mode and go to the form view of a task with some timesheets, he can optionally display the view button in the sub list view of timesheets. The problem is the view button will return the first form view found in timesheet model. Since timesheet model is in fact `account.analytic.line`, the first form view opened is the one used for Analytic Items and not for the timesheets. This commit alters the form view by using `form_view_ref` context key on ti
Original PR description
Before this commit, when the user is in debug mode and go to the form view of a task with some timesheets, he can optionally display the view button in the sub list view of timesheets. The problem is the view button will return the first form view found in timesheet model. Since timesheet model is in fact `account.analytic.line`, the first form view opened is the one used for Analytic Items and not for the timesheets. This commit alters the form view by using `form_view_ref` context key on timesheet_ids field to be able to load the expected form view. task-4781729 Forward-Port-Of: odoo/odoo#209653
Before this commit, the can_be_merged_with method did not work correctly because an incorrect argument was passed to floatIsZero. As a result, orderlines with different prices could be merged together, leading to inaccurate order information. opw-4778629 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209170 Forward-Port-Of: odoo/odoo#209014
Original PR description
Before this commit, the can_be_merged_with method did not work correctly because an incorrect argument was passed to floatIsZero. As a result, orderlines with different prices could be merged together, leading to inaccurate order information. opw-4778629 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209170 Forward-Port-Of: odoo/odoo#209014
- Add tour to set/unset preset and slot hours on a PoS order. task-id: 4684840 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#204251
Original PR description
- Add tour to set/unset preset and slot hours on a PoS order. task-id: 4684840 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#204251
To reproduce: - Enable Stripe payment provider, and disable "Allow Saving Payment Methods" - Create a subscription and 'Sent' it - Click on "Preview" and try to paid using payment method provided by Stripe. An error is raised: ``` The provided setup_future_usage (null) does not match the expected setup_future_usage (off_session). Try confirming with a Payment Intent that is configured to use the same parameters as Stripe Elements. ``` This commit ensure we only request for token
Original PR description
To reproduce: - Enable Stripe payment provider, and disable "Allow Saving Payment Methods" - Create a subscription and 'Sent' it - Click on "Preview" and try to paid using payment method provided by Stripe. An error is raised: ``` The provided setup_future_usage (null) does not match the expected setup_future_usage (off_session). Try confirming with a Payment Intent that is configured to use the same parameters as Stripe Elements. ``` This commit ensure we only request for tokenization if it's required and both the provider and the payment method support it. opw-4605528 opw-4723230 Forward-Port-Of: odoo/odoo#209136 Forward-Port-Of: odoo/odoo#206231
Before this commit, clearing lines in the sanitize data cache used a forward iteration, which caused some lines to be skipped due to index shifting when deleting items. This could result in only half of the lines being removed and potentially lead to errors. After this commit, order lines are deleted using a backward iteration, ensuring that all lines are properly removed without skipping any. opw-4770945 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/
Original PR description
Before this commit, clearing lines in the sanitize data cache used a forward iteration, which caused some lines to be skipped due to index shifting when deleting items. This could result in only half of the lines being removed and potentially lead to errors. After this commit, order lines are deleted using a backward iteration, ensuring that all lines are properly removed without skipping any. opw-4770945 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208475 Forward-Port-Of: odoo/odoo#208391
The outdated page watcher checks whether bus notifications were missed when the bus reconnects after an unexpected disconnection. To do so, it checks if the last known notification id is still in the bus table. When the bus disconnects, the last notification id is saved. However, disconnect event is not correctly sent when switching from online to offline. This commit fixes this issue. follow up of https://github.com/odoo/odoo/pull/208625 backport of https://github.com/odoo/odoo/pull/20947
Original PR description
The outdated page watcher checks whether bus notifications were missed when the bus reconnects after an unexpected disconnection. To do so, it checks if the last known notification id is still in the bus table. When the bus disconnects, the last notification id is saved. However, disconnect event is not correctly sent when switching from online to offline. This commit fixes this issue. follow up of https://github.com/odoo/odoo/pull/208625 backport of https://github.com/odoo/odoo/pull/209472 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#209684 Forward-Port-Of: odoo/odoo#209609
During uninstall, fields (columns) bound to the module get deleted first, so the columns used for the search don't exist anymore and the search fails, which leads to the tables not being properly dropped, which can then lead to the module reinstallation not being clean e.g. because there are rows left in the table which can lead to constraints not being addable on install. This has been the cause of `resource` failing forever in the uninstall nightly test: it's most likely been failing since
Original PR description
During uninstall, fields (columns) bound to the module get deleted first, so the columns used for the search don't exist anymore and the search fails, which leads to the tables not being properly dropped, which can then lead to the module reinstallation not being clean e.g. because there are rows left in the table which can lead to constraints not being addable on install. This has been the cause of `resource` failing forever in the uninstall nightly test: it's most likely been failing since this hook was introduced. Forward-Port-Of: odoo/enterprise#85439
Currently the "resend" mechanism relies on `_send`; marking messages to resend as "outgoing". However when used in batch mode `_send` only sends template messages. We enable `_send_cron` to send discuss messages too and to process these in priority. As these have a fixed time limit to be sent. We also do some filtering on resend to avoid marking messages that we know will fail as outgoing. Including "unrecoverable" errors and messages on outdated channel. Methods that use crons are a
Original PR description
Currently the "resend" mechanism relies on `_send`; marking messages to resend as "outgoing". However when used in batch mode `_send` only sends template messages. We enable `_send_cron` to send discuss messages too and to process these in priority. As these have a fixed time limit to be sent. We also do some filtering on resend to avoid marking messages that we know will fail as outgoing. Including "unrecoverable" errors and messages on outdated channel. Methods that use crons are also updated to use direct method trigger and prevent commits during tests to avoid having to patch them every time. task-3547088 Forward-Port-Of: odoo/enterprise#85014 Forward-Port-Of: odoo/enterprise#79050
**Steps to reproduce:** - Install Accounting - Activate "Analytic Accounting" in Accounting settings - Go to "Accounting / Accounting / Journal Entries" - Create an entry with some analytic distribution - Go to "Accounting / Reporting / Audit Reports / Trial Balance" - Activate "Analytic Group By" in the settings of the report - Add the plan used in the analytic distribution in "Analytic" group option **Issue:** In the "End Balance" column, all the amounts are summed in the total colu
Original PR description
**Steps to reproduce:** - Install Accounting - Activate "Analytic Accounting" in Accounting settings - Go to "Accounting / Accounting / Journal Entries" - Create an entry with some analytic distribution - Go to "Accounting / Reporting / Audit Reports / Trial Balance" - Activate "Analytic Group By" in the settings of the report - Add the plan used in the analytic distribution in "Analytic" group option **Issue:** In the "End Balance" column, all the amounts are summed in the total column instead of being grouped by analytic plan. It results on a total amount being twice what it should be as the total column of each period is also included in the sum. This is a complement to previous fix for the grouping by analytic account where the analytic plan groupby case was forgotten: https://github.com/odoo/enterprise/commit/05bbab713c749b7d7450d5dbaf2eda1ba4f68712 opw-4648009 Forward-Port-Of: odoo/enterprise#85372 Forward-Port-Of: odoo/enterprise#85344
### Before this PR If the backorder is "always", on the shopfloor when clicking "close production" on the "production overview", it redirects to the backend ### After this PR Clicking on close production it does not redirect to backend Forward-Port-Of: odoo/enterprise#84739 Forward-Port-Of: odoo/enterprise#79918
Original PR description
### Before this PR If the backorder is "always", on the shopfloor when clicking "close production" on the "production overview", it redirects to the backend ### After this PR Clicking on close production it does not redirect to backend Forward-Port-Of: odoo/enterprise#84739 Forward-Port-Of: odoo/enterprise#79918
### Before this PR Try to do a receipt with a product, then a full discount of this product. You can't do a receipt with 0.0 as the amount because it is missing printRecTotal ### After this PR: You can do receipt with an amount of 0.0 This PR depends from odoo/enterprise#80951 (i can't create draft PR, but when that PR will be merged i will rebase) Forward-Port-Of: odoo/enterprise#81376
Original PR description
### Before this PR Try to do a receipt with a product, then a full discount of this product. You can't do a receipt with 0.0 as the amount because it is missing printRecTotal ### After this PR: You can do receipt with an amount of 0.0 This PR depends from odoo/enterprise#80951 (i can't create draft PR, but when that PR will be merged i will rebase) Forward-Port-Of: odoo/enterprise#81376
Steps to reproduce the bug: - Create a quality point with the following settings: - Measure on: Operation - Picking Type: Manufacturing - Product Category: "All" - Create a storable product “P1”: - Product Category: "All" - BoM: - components: - 1 unit of P1 - Create a manufacturing order to produce one unit of P1 - Confirm it Problem: The manufacturing order is confirmed, but the corresponding quality check is not created. This issue occurs when a quality
Original PR description
Steps to reproduce the bug: - Create a quality point with the following settings: - Measure on: Operation - Picking Type: Manufacturing - Product Category: "All" - Create a storable product “P1”: -…
Steps to reproduce the bug:
- Create a quality point with the following settings:
- Measure on: Operation
- Picking Type: Manufacturing
- Product Category: "All"
- Create a storable product “P1”:
- Product Category: "All"
- BoM: - components: - 1 unit of P1
- Create a manufacturing order to produce one unit of P1
- Confirm it
Problem:
The manufacturing order is confirmed, but the corresponding quality check is not created.
This issue occurs when a quality point is configured with "Measure on:
Operation". In that case, the quality check should be created for
manufacturing orders here:
https://github.com/odoo/enterprise/blob/18.0/quality_mrp/models/stock_move.py#L49-L51
However, an empty record is passed for the product parameter.
As a result, the domain defined here:
https://github.com/odoo/enterprise/blob/18.0/quality_mrp/models/stock_move.py#L19-L21
is evaluated with both product and category set to False, which
prevents the created quality point from being matched and thus no
quality check is created.
https://github.com/odoo/enterprise/blob/6ee3472937118e758399a9577251efad8c4c1195/quality_control/models/quality.py#L175-L177
opw-4762914
Forward-Port-Of: odoo/enterprise#85186
Forward-Port-Of: odoo/enterprise#84683requires: https://github.com/odoo/odoo/pull/207461 --- This commit removes an obsolete padding on .o_control_panel_actions class in the `documents` module. The layout issue it was compensating for has now been properly addressed in the `web` module by applying the correct gap-* classes correctly on the control panel’s main div. task-4568501 Forward-Port-Of: odoo/enterprise#84124
Original PR description
requires: https://github.com/odoo/odoo/pull/207461 --- This commit removes an obsolete padding on .o_control_panel_actions class in the `documents` module. The layout issue it was compensating for has now been properly addressed in the `web` module by applying the correct gap-* classes correctly on the control panel’s main div. task-4568501 Forward-Port-Of: odoo/enterprise#84124
Fixed the following issues in the SLSP reports: ~~- When filters "Including Partners Without TIN" and "Including Importations" are updated, the lines are not refreshed~~ ~~- When the filters above are updated, the name of the current active filters are not refreshed~~ - When "Including Partners Without TIN" is enabled, the grand total does not consider lines from those partners - When exported, amounts from the previous row are carried forward to the current row, if the current row
Original PR description
Fixed the following issues in the SLSP reports: ~~- When filters "Including Partners Without TIN" and "Including Importations" are updated, the lines are not refreshed~~ ~~- When the filters above are updated, the name of the current active filters are not refreshed~~ - When "Including Partners Without TIN" is enabled, the grand total does not consider lines from those partners - When exported, amounts from the previous row are carried forward to the current row, if the current row has no value for that amount 4748216 Forward-Port-Of: odoo/enterprise#85249