Monday, March 31, 2025
19 changes · saas-17.4
Miscellaneous changes
Currently, An error occurs when creating a resource time off. Step to produce: - Install the `hr_holidays` module. - Enable debug mode. - Go to Time Off / Configuration / Time Off Types, And delete `Sick Time Off`. - Go to Settings / Technical / Resource / Resource Time Off, and create a new record. - Add a Time Off Request with the following conditions: The start date is before today's date, end date is after today's date, And state is set to Draft. - Try to save a Resource Time Off
Original PR description
Currently, An error occurs when creating a resource time off. Step to produce: - Install the `hr_holidays` module. - Enable debug mode. - Go to Time Off / Configuration / Time Off Types, And delete…
Currently, An error occurs when creating a resource time off. Step to produce: - Install the `hr_holidays` module. - Enable debug mode. - Go to Time Off / Configuration / Time Off Types, And delete `Sick Time Off`. - Go to Settings / Technical / Resource / Resource Time Off, and create a new record. - Add a Time Off Request with the following conditions: The start date is before today's date, end date is after today's date, And state is set to Draft. - Try to save a Resource Time Off record. `ValueError: External ID not found in the system: hr_holidays.holiday_status_sl` An error occurs when the system tries to retrieve an external ID of the 'Sick Time Off' at [1], but it is not available. Link [1]: https://github.com/odoo/odoo/blob/1303193386665d120ccb5d0045ee984337af0826/addons/hr_holidays/models/resource.py#L67 To handle this issue, add 'raise_if_not_found=False' in ref() argument if the external ID of the 'Sick Time Off' is not available. Sentry-6320807644 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199236
When there are none or more than 1 partner that have the same subcontracting location setup, then any procurement made to this subcontracting location will be removed, even if another configuration is applicable. ## How to reproduce: https://drive.google.com/file/d/1jvT1pmCqY0JNAinvqmbonX0CDYYysoJz/view?usp=sharing - Activate Routes, Subcontracting, Dropshipping - Create custom subcontracting location - Create partners "Partner 1" & "Partner 2", with custom sub loc setup - Create cus
Original PR description
When there are none or more than 1 partner that have the same subcontracting location setup, then any procurement made to this subcontracting location will be removed, even if another configuration…
When there are none or more than 1 partner that have the same subcontracting location setup, then any procurement made to this subcontracting location will be removed, even if another configuration is applicable. ## How to reproduce: https://drive.google.com/file/d/1jvT1pmCqY0JNAinvqmbonX0CDYYysoJz/view?usp=sharing - Activate Routes, Subcontracting, Dropshipping - Create custom subcontracting location - Create partners "Partner 1" & "Partner 2", with custom sub loc setup - Create custom route 'Resupply Subcontractor', with rule: - action: Pull From - operation: delivery - source: Stock - dest: custom sub loc - method: take from stock - Partner Address: Partner 1 - Create product with reordering rule: - manual, min 0, max 0, custom sub loc, custom route - In Replenishment -> Find custom reordering rule -> set Order Qty to 1 -> Order Once - Created Transfer does not have any partner address - Cancel created transfer - Remove subcontracting loc for "Partner 2" - In Replenishment -> Find custom reordering rule -> set Order Qty to 1 -> Order Once - Created Transfer has the partner address OPW-4576260 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200169
**Problem:** In the purchase app, when selecting 2 Purchase Orders that have different currencies, and clicking Action then Accrued Expense Entry, a traceback will appear. It works as intended if the two Purchase Orders have the same currency, but if there is more than one currency, the traceback will be displayed. **Steps to reproduce:** - Go to the purchase app and select two Purchase Orders that have different currencies (you can make a group by Currencies). - Click on Action then
Original PR description
**Problem:** In the purchase app, when selecting 2 Purchase Orders that have different currencies, and clicking Action then Accrued Expense Entry, a traceback will appear. It works as intended if the…
**Problem:** In the purchase app, when selecting 2 Purchase Orders that have different currencies, and clicking Action then Accrued Expense Entry, a traceback will appear. It works as intended if the two Purchase Orders have the same currency, but if there is more than one currency, the traceback will be displayed. **Steps to reproduce:** - Go to the purchase app and select two Purchase Orders that have different currencies (you can make a group by Currencies). - Click on Action then Accrued Expense Entry. - The traceback appears. **Cause of the issue:** https://github.com/odoo/odoo/blob/a07a8589a8cb391a801ef1ffd60e02d83fc963f8/addons/account/wizard/accrued_orders.py#L246 The currency is given as a parameter to a function that requires only one parameter. With this code, if there are multiple currencies in orders, all of them will be given, which creates a traceback. **Fix:** After checking with a PO, the multiple currency use case is not supported. Hence make sure that there is only one currency in the quotations we are trying to work with. If there is more than one, we throw an error telling the user to only pick quotations with the same currency. opw-4562933 Forward-Port-Of: odoo/odoo#202733
Required upgrade to sdk 5.65.0 or higher: https://docs.adyen.com/online-payments/release-notes/?Web+Components%2FDrop-in=&title%5B0%5D=Web+Components%2FDrop-in#releaseNote=2024-05-27-web-componentsdrop-in-5.65.0 Upgrade sdk to 6.9.0 and api to 71 task-4649327 Forward-Port-Of: odoo/odoo#202498
Original PR description
Required upgrade to sdk 5.65.0 or higher: https://docs.adyen.com/online-payments/release-notes/?Web+Components%2FDrop-in=&title%5B0%5D=Web+Components%2FDrop-in#releaseNote=2024-05-27-web-componentsdrop-in-5.65.0 Upgrade sdk to 6.9.0 and api to 71 task-4649327 Forward-Port-Of: odoo/odoo#202498
With `l10n_cz` and `sale_stock` installed: * create a SO with a deliverable line * confirm * validate the delivery for the SO * create the invoice for the SO * set the payment term for Immediate Payment * update the delivery date and the taxable supply date to different values Issue: the delivery date is recomputed even though we just set it. opw-4462810 Forward-Port-Of: odoo/odoo#202346
Original PR description
With `l10n_cz` and `sale_stock` installed: * create a SO with a deliverable line * confirm * validate the delivery for the SO * create the invoice for the SO * set the payment term for Immediate Payment * update the delivery date and the taxable supply date to different values Issue: the delivery date is recomputed even though we just set it. opw-4462810 Forward-Port-Of: odoo/odoo#202346
During post-install tests, run the following code in a python terminal: import socket, time with socket.create_connection(('127.0.0.1', 8069)): time.sleep(6) It opens a socket and connect to the running odoo server, but does nothing. After 5 seconds the odoo server closes the socket with a timeout. The timeout is only set during tests in ``RequestHandler.setup``, and it set to a hardcoded value of 5 seconds. Since Werkzeug 2.1.0[^1], it logs an error in the logs. We wa
Original PR description
During post-install tests, run the following code in a python terminal: import socket, time with socket.create_connection(('127.0.0.1', 8069)): time.sleep(6) It opens a socket and connect to the…
During post-install tests, run the following code in a python terminal:
import socket, time
with socket.create_connection(('127.0.0.1', 8069)):
time.sleep(6)
It opens a socket and connect to the running odoo server, but does nothing. After 5 seconds the odoo server closes the socket with a timeout.
The timeout is only set during tests in ``RequestHandler.setup``, and it set to a hardcoded value of 5 seconds. Since Werkzeug 2.1.0[^1], it logs an error in the logs. We want to get rid of that error log.
Those errors can occur when the test chrome browser is killed while it was performing http requests. Chrome doesn't TCP RST the sockets and just let those sockets die.
The socket timeout error actually cannot occurs in production, as all traffic is routed via nginx, and nginx will only proxy the connection to Odoo once nginx has all the requests headers.
That error log is silly, it is now ignored.
[^1]: pallets/werkzeug:d062807
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#203757If prevent zero sale is active, prices should be hidden from the page opw-4650460 See also: https://github.com/odoo/enterprise/pull/82183 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202867
Original PR description
If prevent zero sale is active, prices should be hidden from the page opw-4650460 See also: https://github.com/odoo/enterprise/pull/82183 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202867
Steps to reproduce: - go to a blog post with several paragraph - edit translations Issue 1: - select several paragraph completely and use the translate tool - insert the translation => the translation are not inserted Issue 2: - select 3 paragraphs but don't start at the beginning or end of the text - insert translation - see that all translations is inserted at end of paragraph 1, paragraph 2 is emptied and paragraph 3 selected part is removed - save => paragraph 1 and 2 a
Original PR description
Steps to reproduce: - go to a blog post with several paragraph - edit translations Issue 1: - select several paragraph completely and use the translate tool - insert the translation => the…
Steps to reproduce: - go to a blog post with several paragraph - edit translations Issue 1: - select several paragraph completely and use the translate tool - insert the translation => the translation are not inserted Issue 2: - select 3 paragraphs but don't start at the beginning or end of the text - insert translation - see that all translations is inserted at end of paragraph 1, paragraph 2 is emptied and paragraph 3 selected part is removed - save => paragraph 1 and 2 are deleted (so we show original lang value), selected part of paragraph 3 is removed Why: In the blog post content, we are inside a "blog.post().content" editable field, this allows the editor to select several translations nodes which will work wrongly with the editor because translation mode only expect to change the content of translation nodes. The first paragraph translation is saved empty because the editor is cloning the node with the same "data-oe-translation-source-sha" because we are inserting several paragraphs inside it. Fix: in translation mode, make the editable node of html fields around translation nodes uneditable so we can't select several translation nodes thanks to how browser handle selection and content editable. Note: the added test step is very light, because in javascript it is programmatically possible to select 2 separate content editable. At the step that is added in the tour, with the fix it is not possible to select both the H1 and P nodes. opw-4221993 opw-4482717 pr note: opw-4221993 could possibly solved by this fix too (the video reproduction seemed to be about a bulleted list but I could not reproduce, and the original report video is deleted) Forward-Port-Of: odoo/odoo#203806 Forward-Port-Of: odoo/odoo#197511
Forward-Port-Of: odoo/odoo#203874
Original PR description
Forward-Port-Of: odoo/odoo#203874
Steps to reproduce ================== - Install account_accountant - Enable the debug mode - Copy a very long text in the "Terms and Conditions" section - Click on debug > Set Defaults - Click on the Default selection => Chrome crashes Depending on the window manager/OS, a weird Chrome window can appear spanning across multiple displays. Or Chrome can simply crash. Cause of the issue ================== The text value inside the select option is too long for Chrome to handle.
Original PR description
Steps to reproduce ================== - Install account_accountant - Enable the debug mode - Copy a very long text in the "Terms and Conditions" section - Click on debug > Set Defaults - Click on the Default selection => Chrome crashes Depending on the window manager/OS, a weird Chrome window can appear spanning across multiple displays. Or Chrome can simply crash. Cause of the issue ================== The text value inside the select option is too long for Chrome to handle. Solution ======== We can truncate the displayed text. opw-4572496 Forward-Port-Of: odoo/odoo#202324
This update contains the following commits: [IMP] runtime/utils: export htmlEscape and add tests (https://github.com/odoo/owl/pull/1677) [FIX] utils: Correct validation of mount target in shadow DOM/iframe (https://github.com/odoo/owl/pull/1676) [IMP] runtime: add markup tag function (https://github.com/odoo/owl/pull/1670) Notes: https://github.com/odoo/owl/releases/tag/v2.7.0 Forward-Port-Of: odoo/odoo#203515
Original PR description
This update contains the following commits: [IMP] runtime/utils: export htmlEscape and add tests (https://github.com/odoo/owl/pull/1677) [FIX] utils: Correct validation of mount target in shadow DOM/iframe (https://github.com/odoo/owl/pull/1676) [IMP] runtime: add markup tag function (https://github.com/odoo/owl/pull/1670) Notes: https://github.com/odoo/owl/releases/tag/v2.7.0 Forward-Port-Of: odoo/odoo#203515
These commits fix two issues: - If a block that has an image selected as background is given a border, its background image will fit awkwardly in the surrounding border, and similarly if the background image is positioned all the way to any edge, it does not cover all the block. - If a video is selected as background for a block, the video does not always fill the block. Steps to reproduce: Bug 1 - Add a masonry block/big boxes block - Add a background image to an element o
Original PR description
These commits fix two issues: - If a block that has an image selected as background is given a border, its background image will fit awkwardly in the surrounding border, and similarly if the…
These commits fix two issues: - If a block that has an image selected as background is given a border, its background image will fit awkwardly in the surrounding border, and similarly if the background image is positioned all the way to any edge, it does not cover all the block. - If a video is selected as background for a block, the video does not always fill the block. Steps to reproduce: Bug 1 - Add a masonry block/big boxes block - Add a background image to an element of the masonry/big boxes - Add a big border - Make the border translucent if it isn't already to better see the bug => The background image overflows on the border randomly - Change the background position by shifting the image all the way to the left => The image does not cover all the border-box Bug 2 - Add a masonry block/big boxes block - Add a video background => The video does not always fill the box, especially when the window gets resized After the changes the image/video background completely covers its block, even when resized or when a border is applied. task-4174638 Forward-Port-Of: odoo/odoo#203571 Forward-Port-Of: odoo/odoo#201200
When importing an ofx bank statement, we try to parse the raw attachment value, in case of UnicodeDecodeError, we try to get an encoding declaration in the file, and fallback on 'utf-8'. But we can still face a file that is not well encoded and we end up with a traceback. With this commit, we display a UserError instead of the ugly traceback. opw-4526766 Forward-Port-Of: odoo/enterprise#81561
Original PR description
When importing an ofx bank statement, we try to parse the raw attachment value, in case of UnicodeDecodeError, we try to get an encoding declaration in the file, and fallback on 'utf-8'. But we can still face a file that is not well encoded and we end up with a traceback. With this commit, we display a UserError instead of the ugly traceback. opw-4526766 Forward-Port-Of: odoo/enterprise#81561
Forward-Port-Of: odoo/enterprise#82398
Original PR description
Forward-Port-Of: odoo/enterprise#82398
`prevent_zero_price_sale` was not set according to the right prices for `website_sale_renting` and `website_sale_subscription` opw-4650460 See also: https://github.com/odoo/odoo/pull/203451 Forward-Port-Of: odoo/enterprise#82082
Original PR description
`prevent_zero_price_sale` was not set according to the right prices for `website_sale_renting` and `website_sale_subscription` opw-4650460 See also: https://github.com/odoo/odoo/pull/203451 Forward-Port-Of: odoo/enterprise#82082
Forward-Port-Of: odoo/enterprise#82412
Original PR description
Forward-Port-Of: odoo/enterprise#82412
Commit https://github.com/odoo/enterprise/commit/0461225242188dd64b50a663d54fd9dcbf4a8bae removed the partial namespace, but it should only have been removed for `OsobaNiefizyczna`. Also fixed the `country_code` for foreign VAT companies with the VAT number that does not begin with the `country_code`. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4502550) opw-4502550 Forward-Port-Of: odoo/enterprise#81359
Original PR description
Commit https://github.com/odoo/enterprise/commit/0461225242188dd64b50a663d54fd9dcbf4a8bae removed the partial namespace, but it should only have been removed for `OsobaNiefizyczna`. Also fixed the `country_code` for foreign VAT companies with the VAT number that does not begin with the `country_code`. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4502550) opw-4502550 Forward-Port-Of: odoo/enterprise#81359
Commit 03c5abdd29d5e26b077991d012065f95641ac67c was done to fix a wrong check to assign the currency_id of a journal when linking it to an online account for the first time. This fix was deployed to version 17.4 and above, but Odoo 17 did not receive it. This PR simply backports this fix. opw-4634099 opw-4586918 Forward-Port-Of: odoo/enterprise#82303
Original PR description
Commit 03c5abdd29d5e26b077991d012065f95641ac67c was done to fix a wrong check to assign the currency_id of a journal when linking it to an online account for the first time. This fix was deployed to version 17.4 and above, but Odoo 17 did not receive it. This PR simply backports this fix. opw-4634099 opw-4586918 Forward-Port-Of: odoo/enterprise#82303
This commit adds the possibility to access multiple attachment inside the salary rule while having the total amount of the recordset if amount is access directly task-4640076 Forward-Port-Of: odoo/enterprise#82226
Original PR description
This commit adds the possibility to access multiple attachment inside the salary rule while having the total amount of the recordset if amount is access directly task-4640076 Forward-Port-Of: odoo/enterprise#82226