Daily updates from Odoo
Saturday, January 11, 2025
12 changes
4 changes
Miscellaneous changes
enterprise version of odoo/odoo#193052 odoo/odoo@a4a87c2 overrode an existing external id. odoo/oddo@824a641 adapted the query counts without this rule Forward-Port-Of: odoo/enterprise#76841
Original PR description
enterprise version of odoo/odoo#193052 odoo/odoo@a4a87c2 overrode an existing external id. odoo/oddo@824a641 adapted the query counts without this rule Forward-Port-Of: odoo/enterprise#76841
Bug === 1. create a folder without company, and access_via_link='view' 2. create a document with a company A, and access_via_link_hidden=False 3. create a member in the folder 4. log-in using that member and disable the company in the interface => The document should be hidden since the company is not enabled, but it still visible Task-4463854 Forward-Port-Of: odoo/enterprise#76825
Original PR description
Bug === 1. create a folder without company, and access_via_link='view' 2. create a document with a company A, and access_via_link_hidden=False 3. create a member in the folder 4. log-in using that member and disable the company in the interface => The document should be hidden since the company is not enabled, but it still visible Task-4463854 Forward-Port-Of: odoo/enterprise#76825
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual amount of the journal items in invoice currency and the reconciliation rate. Because each journal item applied rounding separately, the resulting amount might differ from the residual amount of the journal items in company currency, which will trigger the creation of an exchange difference entry (f
Original PR description
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual…
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual amount of the journal items in invoice currency and the reconciliation rate. Because each journal item applied rounding separately, the resulting amount might differ from the residual amount of the journal items in company currency, which will trigger the creation of an exchange difference entry (for a few cents). This entry is spurious and confusing for the user because the reconciled journal items all shared the same currency and rate and therefore the reconciliation does not correspond to a currency exchange event. After this commit, when computing the residual amount to write-off in the reconciliation wizard, we check whether the journal items used the same rate as the reconciliation rate, and in that case we directly take the residual amount of the journal item in company currency instead of recomputing the residual amount based on the invoice currency amount and the reconciliation rate, thus avoiding rounding errors. task-4247344 Forward-Port-Of: odoo/enterprise#76976 Forward-Port-Of: odoo/enterprise#74570
Before this PR: - The `AccountMove.search` method was called without checking if `invoice_number` was valid. - This could lead to unexpected errors when `invoice_number` was `False`. After this PR: - Added a check to ensure the search is only performed if `invoice_number` is valid. - If `invoice_number` is `False`, it falls back to an empty `AccountMove` recordset. - Ensures smoother iteration over `moves` and prevents unnecessary errors in the GSTR-1 error handling logic. Forward-Port
Original PR description
Before this PR: - The `AccountMove.search` method was called without checking if `invoice_number` was valid. - This could lead to unexpected errors when `invoice_number` was `False`. After this PR: - Added a check to ensure the search is only performed if `invoice_number` is valid. - If `invoice_number` is `False`, it falls back to an empty `AccountMove` recordset. - Ensures smoother iteration over `moves` and prevents unnecessary errors in the GSTR-1 error handling logic. Forward-Port-Of: odoo/enterprise#76870
8 changes
Resolved issues and error corrections
This fixes how Odoo's web test system clears memory between test groups after a Chrome browser change made results inconsistent. It helps keep automated test runs stable and predictable, reducing false alarms in development workflows.
Original PR description
Since [1], we force the garbage collector to run between each hoot test suite. However, since chrome 124, this no longer seemed to produce the desirable effect. Indeed, memory graphs of the test suites were no longer predictable. The garbage collector seemed to work differently from a build to another, even with the same code. This is probably due to this change [2] in chrome, coming with version 124. Hopefully, the commit message gave us a hint on a way to fix our issue. [1] https://github.com/odoo/odoo/commit/a3ef39dae4a7cd6c96f14958744ac8d8bd2064c9 [2] https://chromium.googlesource.com/chromium/src/+/ae7269f134ede59c815b22c1fd042b26bab96b7a 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
The export option for updating existing data now correctly hides read-only fields. This prevents users from including values that cannot be re-imported or updated, reducing confusion and failed data update workflows.
Original PR description
Issue ----- Read-only fields appear in the export menu when the "I want to update data (import-compatible export)" checkbox is active. Cause ----- The `readonly` key is missing from the field dictionnary leading to all fields being considered as not read-only. https://github.com/odoo/odoo/blob/a546e2e5a87c311bef054ca4a6909e63d70c91fd/addons/web/controllers/export.py#L389-L390 Issue from 2b87effeb461acddf327884dd72c00ee22a4c9aa since only some attributes of the fields are fetched. opw-4446090
Miscellaneous changes
This commit adds a missing skip_readonly_check context from the changes to add readonly check in https://github.com/odoo/odoo/commit/b5d94f5563641adfd93bf431c139bc2b78d67beb Steps to reproduce: - create a statement line - edit the partner of the liquidity line using the accounting items list view - -> UserError: You cannot modify the following readonly fields on a posted move opw-4453940 Forward-Port-Of: odoo/odoo#193289
Original PR description
This commit adds a missing skip_readonly_check context from the changes to add readonly check in https://github.com/odoo/odoo/commit/b5d94f5563641adfd93bf431c139bc2b78d67beb Steps to reproduce: - create a statement line - edit the partner of the liquidity line using the accounting items list view - -> UserError: You cannot modify the following readonly fields on a posted move opw-4453940 Forward-Port-Of: odoo/odoo#193289
Add a check on MP callback when paying. Verify if the pending payment line exist before processing the callback. Same as: - https://github.com/odoo/odoo/pull/186580 - https://github.com/odoo/odoo/pull/190735 opw-4349957 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193029
Original PR description
Add a check on MP callback when paying. Verify if the pending payment line exist before processing the callback. Same as: - https://github.com/odoo/odoo/pull/186580 - https://github.com/odoo/odoo/pull/190735 opw-4349957 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193029
Versions -------- - 17.0+ Steps ----- 1. Download a VoIP provider like Skype or Linphone to open tel:* urls; 2. use a browser that supports this (FireFox works for me, but Chrome doesn't); 3. with Studio, edit the Sales Order form to add the customer phone; 4. create a new Sales Order with one order line; 5. save the form; 6. add a second line; 7. click on the phone number to start the VoIP app; 8. save the Sales Order form. Issue ----- The 2nd line is duplicated. Cause --
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Download a VoIP provider like Skype or Linphone to open tel:* urls; 2. use a browser that supports this (FireFox works for me, but Chrome doesn't); 3. with Studio, edit the Sales Order form to add the customer phone; 4. create a new Sales Order with one order line; 5. save the form; 6. add a second line; 7. click on the phone number to start the VoIP app; 8. save the Sales Order form. Issue ----- The 2nd line is duplicated. Cause ----- Starting VoIP initiates an "urgent" web save, saving the first time. Usually this only happens when leaving the page, so it doesn't clear the changes to be saved. In this scenario however, we remain on the page, and the changes are saved again when clicking the save button. Solution -------- Clear the saved changes if the urgent save succeeded. opw-4308954 Forward-Port-Of: odoo/odoo#192989 Forward-Port-Of: odoo/odoo#192517
Before this commit: When a user duplicates a server action, the new action retains the exact same name as the original. After this commit: Duplicated server actions are assigned a name with the suffix "(copy)" to differentiate them from the original action. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190383
Original PR description
Before this commit: When a user duplicates a server action, the new action retains the exact same name as the original. After this commit: Duplicated server actions are assigned a name with the suffix "(copy)" to differentiate them from the original action. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#190383
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual amount of the journal items in invoice currency and the reconciliation rate. Because each journal item applied rounding separately, the resulting amount might differ from the residual amount of the journal items in company currency, which will trigger the creation of an exchange difference entry (f
Original PR description
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual…
When creating a write-off for multiple multicurrency journal items that where created with the same rate, the reconciliation wizard will recompute the balance of the write-off based on the residual amount of the journal items in invoice currency and the reconciliation rate. Because each journal item applied rounding separately, the resulting amount might differ from the residual amount of the journal items in company currency, which will trigger the creation of an exchange difference entry (for a few cents). This entry is spurious and confusing for the user because the reconciled journal items all shared the same currency and rate and therefore the reconciliation does not correspond to a currency exchange event. After this commit, when computing the residual amount to write-off in the reconciliation wizard, we check whether the journal items used the same rate as the reconciliation rate, and in that case we directly take the residual amount of the journal item in company currency instead of recomputing the residual amount based on the invoice currency amount and the reconciliation rate, thus avoiding rounding errors. task-4247344 Forward-Port-Of: odoo/enterprise#76976 Forward-Port-Of: odoo/enterprise#74570
Before this PR: - The `AccountMove.search` method was called without checking if `invoice_number` was valid. - This could lead to unexpected errors when `invoice_number` was `False`. After this PR: - Added a check to ensure the search is only performed if `invoice_number` is valid. - If `invoice_number` is `False`, it falls back to an empty `AccountMove` recordset. - Ensures smoother iteration over `moves` and prevents unnecessary errors in the GSTR-1 error handling logic. Forward-Port
Original PR description
Before this PR: - The `AccountMove.search` method was called without checking if `invoice_number` was valid. - This could lead to unexpected errors when `invoice_number` was `False`. After this PR: - Added a check to ensure the search is only performed if `invoice_number` is valid. - If `invoice_number` is `False`, it falls back to an empty `AccountMove` recordset. - Ensures smoother iteration over `moves` and prevents unnecessary errors in the GSTR-1 error handling logic. Forward-Port-Of: odoo/enterprise#76870