Tuesday, March 11, 2025
16 changes · saas-17.4
Resolved issues and error corrections
Task progress totals in timesheet project lists are now displayed as percentages instead of plain decimal numbers. This makes grouped and overall progress figures easier for users to read and understand at a glance.
Original PR description
Before this commit, the total for each group or the grand total displayed in the list view of task for the progress field is formatted as a float instead of a percentage. The reason is because the framework does not find the formatter associated to that widget and so we will take the default formatter for float field. This commit adds a formatter for the widget to be sure the framework formats the total displayed in the list view in percentage.
Miscellaneous changes
Since [1] when can publish rights were adapted, the overload for pages did only handle the website designer users, but did not call super for other users. This commit calls super if the user is not a website designer. [1]: https://github.com/odoo/odoo/commit/1a83b2508b9383e2b7df192f8641751f71f852da task-3175890 Forward-Port-Of: odoo/odoo#200737
Original PR description
Since [1] when can publish rights were adapted, the overload for pages did only handle the website designer users, but did not call super for other users. This commit calls super if the user is not a website designer. [1]: https://github.com/odoo/odoo/commit/1a83b2508b9383e2b7df192f8641751f71f852da task-3175890 Forward-Port-Of: odoo/odoo#200737
__Current behavior before commit:__ Sometimes when a Worldline terminal makes a payment with Edenred or Sodexo, it creates a ticket with special ascii characters like `0x0E` that are not supposed to be printed. Some of those characters make the [`createImage`][1] method throw an error with the `onerror` Event. __Description of the fix:__ Added the `sanitizeNodeText` function to remove all problematic ascii characters that should not be printed anyway. Added a test to make sure `htmlToCanva
Original PR description
__Current behavior before commit:__ Sometimes when a Worldline terminal makes a payment with Edenred or Sodexo, it creates a ticket with special ascii characters like `0x0E` that are not supposed to be printed. Some of those characters make the [`createImage`][1] method throw an error with the `onerror` Event. __Description of the fix:__ Added the `sanitizeNodeText` function to remove all problematic ascii characters that should not be printed anyway. Added a test to make sure `htmlToCanvas` can handle all ascii characters without crashing. opw-4322339 [1]:https://github.com/odoo/odoo/blob/a98e802976f6798f3aea07231a366fbcd8002ce2/addons/point_of_sale/static/src/app/utils/html-to-image.js#L217 Forward-Port-Of: odoo/odoo#195004
Forward-Port-Of: odoo/odoo#199458
Original PR description
Forward-Port-Of: odoo/odoo#199458
**issue:** When "Audit Trail" is activated and a user creates an incorrect payment, deleting the payment is not possible. The error message suggests archiving the payment; however, there is no option to archive it. A more flexible error message should be used instead. opw-4494820 Forward-Port-Of: odoo/odoo#196987
Original PR description
**issue:** When "Audit Trail" is activated and a user creates an incorrect payment, deleting the payment is not possible. The error message suggests archiving the payment; however, there is no option to archive it. A more flexible error message should be used instead. opw-4494820 Forward-Port-Of: odoo/odoo#196987
When installing l10n_dk_audit_trail module, the audit trail option wasn't checked by default task-4575368 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198355
Original PR description
When installing l10n_dk_audit_trail module, the audit trail option wasn't checked by default task-4575368 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198355
- Open a record (e.g., a project task); - Add a tag to a `many2many_tags` field; - Remove the previously added tag; - The record should be dirty (the save icon should be visible); - Click on the save icon/or click to pager next. Before this commit, the UI does nothing. It doesn't save, or it doesn't go to the next record if you click on the pager next. This is because even if the record is considered dirty, because some changes have been made (adding and removing tags), there are no ch
Original PR description
- Open a record (e.g., a project task); - Add a tag to a `many2many_tags` field; - Remove the previously added tag; - The record should be dirty (the save icon should be visible); - Click on the save icon/or click to pager next. Before this commit, the UI does nothing. It doesn't save, or it doesn't go to the next record if you click on the pager next. This is because even if the record is considered dirty, because some changes have been made (adding and removing tags), there are no changes. And a condition prevents to call the `web_save` RPC from being called if there are no changes. If the `web_save` RPC is not called, we do nothing. In this commit, we change this condition so that if the `web_save` RPC is not called, we mark the record as not dirty. When we move to another record (pager next), we do not need to mark the current record as not dirty, but the next record is loaded. Forward-Port-Of: odoo/odoo#200549
This commit fixes the following issues: - Only re-raise `InsufficientCreditError` from IAP. `UserError`, `AccessError` and `ReadTimeout` shouldn't be re-raised, they should considered as an internal error of the IAP server. - Instead of raising a `requests.exceptions.ConnectionError` in case of an unknown error from IAP (which didn't make much sense), it will now raise a `IAPServerError` - The logging level has been changed from `exception` to `warning`. There is indeed no useful information
Original PR description
This commit fixes the following issues: - Only re-raise `InsufficientCreditError` from IAP. `UserError`, `AccessError` and `ReadTimeout` shouldn't be re-raised, they should considered as an internal error of the IAP server. - Instead of raising a `requests.exceptions.ConnectionError` in case of an unknown error from IAP (which didn't make much sense), it will now raise a `IAPServerError` - The logging level has been changed from `exception` to `warning`. There is indeed no useful information in the logged traceback as the interesting part is in the traceback on the IAP server logs. Forward-Port-Of: odoo/odoo#200948 Forward-Port-Of: odoo/odoo#199286
On the amount field, the tip for percentage amount was always displayed, whether the percentage or fixed amount option was selected. Fwd port of https://github.com/odoo/odoo/commit/c63f6c2308ab9d0c7216b592c7873a6db24f0378 16.0 PR : https://github.com/odoo/odoo/pull/200919 Forward-Port-Of: odoo/odoo#200928
Original PR description
On the amount field, the tip for percentage amount was always displayed, whether the percentage or fixed amount option was selected. Fwd port of https://github.com/odoo/odoo/commit/c63f6c2308ab9d0c7216b592c7873a6db24f0378 16.0 PR : https://github.com/odoo/odoo/pull/200919 Forward-Port-Of: odoo/odoo#200928
Based on PEPPOL-COMMON-R042 (https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-peppol/PEPPOL-COMMON-R042/) when using the 0184 scheme the VAT number should be used (CVR number prefixed by the country code) This is a backport of already merged PR https://github.com/odoo/odoo/pull/190952 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200916
Original PR description
Based on PEPPOL-COMMON-R042 (https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-peppol/PEPPOL-COMMON-R042/) when using the 0184 scheme the VAT number should be used (CVR number prefixed by the country code) This is a backport of already merged PR https://github.com/odoo/odoo/pull/190952 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200916
Currently if you change the type of a combo product to something else, the combo_ids are still saved and in the pos it will use them and open a selection popup. Steps to reproduce: ------------------- * Go in the products * Select Burger Combo * Change the type to "Goods" and save * Open restaurant * Select burger combo > Observation: Selection popup for combo ids appears. Why the fix: ------------ When changing the type of product we remove the combo_ids from the product form. Wi
Original PR description
Currently if you change the type of a combo product to something else, the combo_ids are still saved and in the pos it will use them and open a selection popup. Steps to reproduce: ------------------- * Go in the products * Select Burger Combo * Change the type to "Goods" and save * Open restaurant * Select burger combo > Observation: Selection popup for combo ids appears. Why the fix: ------------ When changing the type of product we remove the combo_ids from the product form. Without combo_ids no popup appears. opw-4513392 Forward-Port-Of: odoo/odoo#198743
Description of the issue/feature this PR addresses: - When a user cancels a filter on a burndown chart, if stageIdSearchItemId is undefined, an error is raised. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179304 Forward-Port-Of: odoo/odoo#170510
Original PR description
Description of the issue/feature this PR addresses: - When a user cancels a filter on a burndown chart, if stageIdSearchItemId is undefined, an error is raised. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179304 Forward-Port-Of: odoo/odoo#170510
- disable duplicate for interviewer_ids - add `(copy)` to the name Task: 4606811 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199935
Original PR description
- disable duplicate for interviewer_ids - add `(copy)` to the name Task: 4606811 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#199935
### Steps to reproduce: - Go to Accounting > Configuration > Accounting Reports > Consolidated Balance > Options - Tick "Period Comparison" - On a consolidation period, click "Consolidated Balance" - Click on the button "Comparison" to add a filter ### Cause: The dropdown component that is supposed to appear when clicking the button is reading value that are undefined: `controller.options.date.mode` This value is only defined if the filter is 'custom': https://github.com/odoo/enterprise/
Original PR description
### Steps to reproduce: - Go to Accounting > Configuration > Accounting Reports > Consolidated Balance > Options - Tick "Period Comparison" - On a consolidation period, click "Consolidated Balance" - Click on the button "Comparison" to add a filter ### Cause: The dropdown component that is supposed to appear when clicking the button is reading value that are undefined: `controller.options.date.mode` This value is only defined if the filter is 'custom': https://github.com/odoo/enterprise/blob/297bc86d8a98beb4cabc646c3a2ec6a594e7ca0c/account_reports/models/account_report.py#L639 ### Solution: We don't want to have the date filter on consolidation balances but we want to keep the consolidation filter. So we check if `controller.options.date` exist before reading `mode`. opw-4546574 Forward-Port-Of: odoo/enterprise#80492
### Steps to reproduce: - Create a manufacturing order - Navigate to the Miscellaneous tab and add an Analytic Distribution - Add a component to the manufacturing order with the quantity set to 10000, for example - Produce the manufacturing order - Navigate to the analytic account line associated with the stock move with 10000 units - Update the analytic account line’s date to be in the previous week - Navigate to Timesheets > Timesheets > All Timesheets and then navigate to the pr
Original PR description
### Steps to reproduce: - Create a manufacturing order - Navigate to the Miscellaneous tab and add an Analytic Distribution - Add a component to the manufacturing order with the quantity set to…
### Steps to reproduce: - Create a manufacturing order - Navigate to the Miscellaneous tab and add an Analytic Distribution - Add a component to the manufacturing order with the quantity set to 10000, for example - Produce the manufacturing order - Navigate to the analytic account line associated with the stock move with 10000 units - Update the analytic account line’s date to be in the previous week - Navigate to Timesheets > Timesheets > All Timesheets and then navigate to the previous week - Observe that your user has worked a very large amount of overtime ### Cause: This is happening because for MO when creating an analytic line in some cases we store the unit_amount as the quantity of the materials used. https://github.com/odoo/odoo/blob/ee7fbcb759fd8257ed2f52d1d5acfc6921d42870/addons/stock_account/models/stock_move.py#L437-L438 And when fetching the worked hours for the overtime indication we don't check if the analytic line is a timesheet or not https://github.com/odoo/enterprise/blob/ca935872fd70b9fc5b2d13359424916b3afa01eb/timesheet_grid/models/hr_employee.py#L120-L126 https://github.com/odoo/enterprise/blob/ca935872fd70b9fc5b2d13359424916b3afa01eb/timesheet_grid_holidays/models/hr_employee.py#L10-L16 ### Fix: Since we are only fetching timesheets so we will check if the project is set or not as if it is set it means that the record is a timesheet opw-4179137 Forward-Port-Of: odoo/enterprise#81026
Version: - 17.0 Steps to reproduce: - Create subscription order. - Add one product with an "Order-Based" invoice policy and another with a "Delivery-Based" invoice policy. - Create one downpayment invoice and cancel it. - Click on "Create Invoice" button. Issue: - The 'Already Invoiced' amount is calculated incorrectly. Cause: - The issue occurs because the system calculates `amount_invoiced` by subtracting `amount_to_invoice` from `amount_total`. For delivery-based products tha
Original PR description
Version: - 17.0 Steps to reproduce: - Create subscription order. - Add one product with an "Order-Based" invoice policy and another with a "Delivery-Based" invoice policy. - Create one downpayment…
Version: - 17.0 Steps to reproduce: - Create subscription order. - Add one product with an "Order-Based" invoice policy and another with a "Delivery-Based" invoice policy. - Create one downpayment invoice and cancel it. - Click on "Create Invoice" button. Issue: - The 'Already Invoiced' amount is calculated incorrectly. Cause: - The issue occurs because the system calculates `amount_invoiced` by subtracting `amount_to_invoice` from `amount_total`. For delivery-based products that are not yet delivered, their amounts are not included in `amount_to_invoice`. As a result, only the order-based product's amount is considered, leading to incorrect calculations of `amount_invoiced`. Solution: - For subscription order calculate the `amount_invoiced` based on the amounts of order-based policy products and For delivery-based products, include only the amounts corresponding to delivered quantities and avoid subtracting it from `amount_total`. task-4453645 Forward-Port-Of: odoo/enterprise#76869