Daily updates from Odoo
Navigate
Branch
Saturday, January 25, 2025
16 changes
2 changes
Miscellaneous changes
Brings various needed improvements to the module, either in place or via a new extended module. - Neutralization resets to pre-production - Better handling of errors when generating the file by using the commercial partner as expected. - Align all the flows which update the invoice status to ensure that the data is consistent. - Improve validation for some special cases (lines without products, tax exemption) - Add a new field for Malaysian TIN, mostly for foreign entities. Will be us
Original PR description
Brings various needed improvements to the module, either in place or via a new extended module. - Neutralization resets to pre-production - Better handling of errors when generating the file by using…
Brings various needed improvements to the module, either in place or via a new extended module. - Neutralization resets to pre-production - Better handling of errors when generating the file by using the commercial partner as expected. - Align all the flows which update the invoice status to ensure that the data is consistent. - Improve validation for some special cases (lines without products, tax exemption) - Add a new field for Malaysian TIN, mostly for foreign entities. Will be used by default in all flows for MyInvois, with fallback on the Tax ID if empty. - Classification code on invoice line, making the use of products optional. - Rework the views for all fields related to ID on res.partner to align with other similar fields. They will be Readonly on res.partner with a parent id, but displays the value of the commercial partner. - Industrial classification on the partner. - "Full" support of self billing. - Reworked flow to send to MyInvois BEFORE send & print. Which adds support for the QR code generation, and new field to store the QR code long ID. - Send & Print can no longer be used to send invoices to MyInvois after the new module is installed Task-4363294 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193497
**Description of the issue/feature this PR addresses:** When a custom module (e.g., [OCA/social#1536](https://github.com/OCA/social/pull/1536)) adds a new message action using `callComponent`, it is not invoked in certain scenarios. **Current behavior before PR:** Odoo only invokes `callComponent` for `quick actions` (2 or 3 actions). For remaining actions rendered as `DropdownItem`, the `callComponent` is not invoked. **Desired behavior after PR is merged:** This commit ensures con
Original PR description
**Description of the issue/feature this PR addresses:** When a custom module (e.g., [OCA/social#1536](https://github.com/OCA/social/pull/1536)) adds a new message action using `callComponent`, it is not invoked in certain scenarios. **Current behavior before PR:** Odoo only invokes `callComponent` for `quick actions` (2 or 3 actions). For remaining actions rendered as `DropdownItem`, the `callComponent` is not invoked. **Desired behavior after PR is merged:** This commit ensures consistent rendering behavior, invoking the `callComponent` for all actions, whether quick actions or dropdown items. Complementary to: https://github.com/odoo/odoo/pull/131426 @phenix-factory @alexkuhn coud you please review this? CC @pedrobaeza @chienandalu --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#194643
3 changes
Miscellaneous changes
[FIX] documents, documents_hr: fix company folder protection How to reproduce: - install documents_hr - In Document, create a folder prjComp2 in /Marketing/Brand 2 - create a second company: SecondCompany - Select SecondCompany - Activate centralization of document for HR and select prjComp2 folder - Log as Marc Demo and delete the folder Brand 2 (Move to Trash + delete) There is no error while this folder should have been protected by the method _raise_if_used_folder called when arc
Original PR description
[FIX] documents, documents_hr: fix company folder protection How to reproduce: - install documents_hr - In Document, create a folder prjComp2 in /Marketing/Brand 2 - create a second company:…
[FIX] documents, documents_hr: fix company folder protection How to reproduce: - install documents_hr - In Document, create a folder prjComp2 in /Marketing/Brand 2 - create a second company: SecondCompany - Select SecondCompany - Activate centralization of document for HR and select prjComp2 folder - Log as Marc Demo and delete the folder Brand 2 (Move to Trash + delete) There is no error while this folder should have been protected by the method _raise_if_used_folder called when archiving or deleting a folder. The cause is that Marc user doesn't have access to SecondCompany and as the check is not done in sudo in _raise_if_used_folder, the folder is not identified as a folder to be protected. We solve the issue by running the check in sudo. Technical note: the protection mechanism is defined in the documents app but tested in documents_hr because there is no company folder defined in documents that could be used in a test. [FIX] documents,documents_project: fix document deletion How to reproduce (Move to the Trash): - Install documents_project - Remove any access to the project folder (except to Mitchel Admin) - Login as Marc Demo - Upload a file in Marketing - Move that file to the Trash You get an access error while you should be able to move that document to the Trash. How to reproduce (Delete): - install documents_project - Login as Marc Demo - Upload a file in Marketing - Move it to the Trash - Remove any access to the project folder (except to Mitchel Admin) - As Marc Demo, go to the Trash and delete the document You get an access error while you should be able to delete that document. We solve the problem by doing the check in sudo (in unlink_except_project_folder). Technical note: We haven't done that test in documents (where there are already delete tests) because we had to change the test so that they are executed after all the modules are installed and that cause query count issue in performance tests. Task-4480581 Forward-Port-Of: odoo/enterprise#77632 Forward-Port-Of: odoo/enterprise#77162
1. [FIX] documents: keep translations when embedding action When creating an embedded action from a server action, only one language was copied. Note that we are using `_get_stored_translations` instead of `get_languages` to identify values to write as a simple method to avoid storing too much unnecessary data as possible (e.g., 100 languages installed but only `en_US` on the record). 2. [IMP] documents_account: prepare actions journal customization This can be helpful to guide l
Original PR description
1. [FIX] documents: keep translations when embedding action When creating an embedded action from a server action, only one language was copied. Note that we are using `_get_stored_translations` instead of `get_languages` to identify values to write as a simple method to avoid storing too much unnecessary data as possible (e.g., 100 languages installed but only `en_US` on the record). 2. [IMP] documents_account: prepare actions journal customization This can be helpful to guide less technical users. Task-4486261 Forward-Port-Of: odoo/enterprise#77205
During this refactoring https://github.com/odoo/enterprise/commit/d023d914dce1b23bf321252fb844c780e831f003 it seems the impacted tax grid were broken. opw-4418348 Forward-Port-Of: odoo/enterprise#76513
Original PR description
During this refactoring https://github.com/odoo/enterprise/commit/d023d914dce1b23bf321252fb844c780e831f003 it seems the impacted tax grid were broken. opw-4418348 Forward-Port-Of: odoo/enterprise#76513
11 changes
Resolved issues and error corrections
Users can now search product attributes by name in the attributes configuration screen. This restores expected autocomplete behavior, making it easier to find and manage product attributes during purchasing setup.
Original PR description
Steps to reproduce: --- - Go to purchase -> config -> Products -> Attributes - Search Issue: --- There was no search attribute for the autocompletion.The changes in comportment is due to the changes in https://github.com/odoo/odoo/commit/72c5ed9f18bc9e2b1dde7029742d9feb34a4c52f . Fix: --- Added the name field to the search view. opw-4434672 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users could see an unread inbox indicator for messages linked to records they could not access, but the action to mark those messages as read was unavailable. This fix makes the mark-as-read behavior follow the inbox counter, so the notification indicator and available action stay consistent.
Original PR description
Before this commit, when got a needaction_message from records that you don't have access to, you will see the counter of the inbox but you cannot mark it as read. The reason was that the mark as read action was based on the isEmpty of the thread but if you don't have access to the record, the message will not be fetched and the computation was not correct. The fix is to depend on the inbox counter so that the behavior of the red dot is consistent with the mark as read action.  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an accounting issue where expenses or revenue deferred to the same month one year later were not spread as expected. Businesses can now rely on annual deferrals being created correctly instead of amounts remaining entirely in the original month.
Original PR description
Before this change if you wanted to defer something to exactly the same month in one year, it just deleted the deferral entries and left the expense/revenue in the month of the move. Same issue for Odoo 17 and so on
Miscellaneous changes
Steps to reproduce: 1. Import a module from the Odoo UI. 2. The imported zip file contains static files defined as follows: 'assets': { 'web.assets_backend': [ 'mob_sii_chile/static/src/backend/core/mob/mob_service.js', ], } 3. Upon importing the module, the instance encounters an Internal Server Error due to the following exception being raised: raise Exception(f"Unallowed to fetch files from addon {addon} for file {path_def}") Description of the issue/feature
Original PR description
Steps to reproduce:
1. Import a module from the Odoo UI.
2. The imported zip file contains static files defined as follows:
'assets': {
'web.assets_backend': [
'mob_sii_chile/static/src/backend/core/mob/mob_service.js',
],
}
3. Upon importing the module, the instance encounters an Internal Server Error due to the following exception being raised:
raise Exception(f"Unallowed to fetch files from addon {addon} for file {path_def}")
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-prBrings various needed improvements to the module, either in place or via a new extended module. - Neutralization resets to pre-production - Better handling of errors when generating the file by using the commercial partner as expected. - Align all the flows which update the invoice status to ensure that the data is consistent. - Improve validation for some special cases (lines without products, tax exemption) - Add a new field for Malaysian TIN, mostly for foreign entities. Will be us
Original PR description
Brings various needed improvements to the module, either in place or via a new extended module. - Neutralization resets to pre-production - Better handling of errors when generating the file by using…
Brings various needed improvements to the module, either in place or via a new extended module. - Neutralization resets to pre-production - Better handling of errors when generating the file by using the commercial partner as expected. - Align all the flows which update the invoice status to ensure that the data is consistent. - Improve validation for some special cases (lines without products, tax exemption) - Add a new field for Malaysian TIN, mostly for foreign entities. Will be used by default in all flows for MyInvois, with fallback on the Tax ID if empty. - Classification code on invoice line, making the use of products optional. - Rework the views for all fields related to ID on res.partner to align with other similar fields. They will be Readonly on res.partner with a parent id, but displays the value of the commercial partner. - Industrial classification on the partner. - "Full" support of self billing. - Reworked flow to send to MyInvois BEFORE send & print. Which adds support for the QR code generation, and new field to store the QR code long ID. - Send & Print can no longer be used to send invoices to MyInvois after the new module is installed Task-4363294 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#195160 Forward-Port-Of: odoo/odoo#193497
Problem: When printing an invoice with l10n_cl installed, the tax total will display the lavel as 'VAT.' The user expects 'VAT' to be translated to maybe 'IVA.' It is hardcoded into the view, thus the .pot file needs to be updated. Note: Starting from v17, there are missing translations for strings "Net Amount", "Total", "Exempt Amount" in the .pot file for the view l10n_cl.tax_totals_widget. However, these are present for v16. Will probably need to modify the fw-ports to include these st
Original PR description
Problem: When printing an invoice with l10n_cl installed, the tax total will display the lavel as 'VAT.' The user expects 'VAT' to be translated to maybe 'IVA.' It is hardcoded into the view, thus…
Problem: When printing an invoice with l10n_cl installed, the tax total will display the lavel as 'VAT.' The user expects 'VAT' to be translated to maybe 'IVA.' It is hardcoded into the view, thus the .pot file needs to be updated. Note: Starting from v17, there are missing translations for strings "Net Amount", "Total", "Exempt Amount" in the .pot file for the view l10n_cl.tax_totals_widget. However, these are present for v16. Will probably need to modify the fw-ports to include these strings in the file. Purpose: Updating the .pot file to include the hardcoded VAT string will ensure there are translations for that label. Steps to Reproduce on Runbot: 1. Install l10n_cl and Accounting 2. Add Spanish as a language 3. Switch to the CL company 4. Create an invoice for a customer whose language is Spanish 5. Print the invoice and notice 'VAT' is not translated opw-4383092 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#194800 Forward-Port-Of: odoo/odoo#190605
From saas-17.4, the "description" field on "account.tax" has been changed from Char to Html. However, the portal view for the purchase order does not correctly render HTML fields in the taxes column. As a result, the taxes are displayed using only the "name" field in the portal purchase order view. opw-4439126 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193677
Original PR description
From saas-17.4, the "description" field on "account.tax" has been changed from Char to Html. However, the portal view for the purchase order does not correctly render HTML fields in the taxes column. As a result, the taxes are displayed using only the "name" field in the portal purchase order view. opw-4439126 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193677
Partial revert of https://github.com/odoo/enterprise/pull/67111. Some users rely on the structure of the export format (column order). The order is most frequently code, then name. And code is a required field. Those reasons made us want to re-adapt the behavior. We also want the amounts to be formatted with thousands separator and to always have 2 decimals (even if .00) task-4399107 Forward-Port-Of: odoo/enterprise#77749 Forward-Port-Of: odoo/enterprise#75740
Original PR description
Partial revert of https://github.com/odoo/enterprise/pull/67111. Some users rely on the structure of the export format (column order). The order is most frequently code, then name. And code is a required field. Those reasons made us want to re-adapt the behavior. We also want the amounts to be formatted with thousands separator and to always have 2 decimals (even if .00) task-4399107 Forward-Port-Of: odoo/enterprise#77749 Forward-Port-Of: odoo/enterprise#75740
Steps to reproduce: 1. Install l10n_mx on runbot and go to MX company 2. Set rates for Day 1 (19.839 MXN/USD) and Day 2 (19.9338 MXN/USD) 3. Create an invoice with date Day 1 for 23,664 USD 4. Add a payment for 9 USD on Day 1 5. Create a bank transaction for a large MXN amount (let's say 600,000) on Day 2 6. Click "Match" for this transaction 7. In reconciliation widget, select invoice created before 8. Change amount in currency reconciled from invoice to 6,954.76 USD (amount in MXN shou
Original PR description
Steps to reproduce: 1. Install l10n_mx on runbot and go to MX company 2. Set rates for Day 1 (19.839 MXN/USD) and Day 2 (19.9338 MXN/USD) 3. Create an invoice with date Day 1 for 23,664 USD 4. Add a…
Steps to reproduce: 1. Install l10n_mx on runbot and go to MX company 2. Set rates for Day 1 (19.839 MXN/USD) and Day 2 (19.9338 MXN/USD) 3. Create an invoice with date Day 1 for 23,664 USD 4. Add a payment for 9 USD on Day 1 5. Create a bank transaction for a large MXN amount (let's say 600,000) on Day 2 6. Click "Match" for this transaction 7. In reconciliation widget, select invoice created before 8. Change amount in currency reconciled from invoice to 6,954.76 USD (amount in MXN should update to 137,975.49) 9. Validate the reconciliation 10. Go to the journal items and show items from journal entry linked to invoice > check partial reconciliation. The reconciled item has a residual of -0.01 and not 0. Analysis: During reconciliation, the rate used is always that of the invoice, not the rate of the invoice residuals. https://github.com/odoo/odoo/blob/4e724323d811dec76c186b5cfff6e4b0135b2128/addons/account/models/account_move_line.py#L1874 However, in the bank reconciliation widget, the residuals' rate was being used to compute the company currency balance of the new AML to create. This led to a different amount than the amount that can actually be reconciled. See [this google sheet](https://docs.google.com/spreadsheets/d/1IoKfuOmSeBS9MrU_DkH_73PGtJd7tb73KuAKm5QsrqI/edit?usp=sharing) for analysis Solution: Use the invoice rate in the bank reconciliation widget. opw-4222310 Forward-Port-Of: odoo/enterprise#77665 Forward-Port-Of: odoo/enterprise#76935
The current auto-clean feature doesn't work properly and it deletes spreadsheet that shouldn't be deleted. 1) copy a spreadsheet and leave it (no update) 2) upload an XLSX file Given that it's been broken several times and the usefulness of the feature is debatable, let's just drop the feature. No feature, no bug 🙃 If users create empty spreadsheet, so be it. They'll clean their mess themselves. Task: 4506185 Forward-Port-Of: odoo/enterprise#77600 Forward-Port-Of: odoo/enterprise#
Original PR description
The current auto-clean feature doesn't work properly and it deletes spreadsheet that shouldn't be deleted. 1) copy a spreadsheet and leave it (no update) 2) upload an XLSX file Given that it's been broken several times and the usefulness of the feature is debatable, let's just drop the feature. No feature, no bug 🙃 If users create empty spreadsheet, so be it. They'll clean their mess themselves. Task: 4506185 Forward-Port-Of: odoo/enterprise#77600 Forward-Port-Of: odoo/enterprise#77573
During this refactoring https://github.com/odoo/enterprise/commit/d023d914dce1b23bf321252fb844c780e831f003 it seems the impacted tax grid were broken. opw-4418348 Forward-Port-Of: odoo/enterprise#76513
Original PR description
During this refactoring https://github.com/odoo/enterprise/commit/d023d914dce1b23bf321252fb844c780e831f003 it seems the impacted tax grid were broken. opw-4418348 Forward-Port-Of: odoo/enterprise#76513