Daily updates from Odoo
Friday, October 18, 2024
22 changes · master
Enhancements to existing features
Projects created from helpdesk teams will now have the Documents feature turned off by default. This keeps new helpdesk-related projects simpler and avoids enabling document management unless the business chooses to use it.
Original PR description
_*= helpdesk_sale_timesheet Currently, the 'documents' feature is enabled by default on the projects created from the helpdesk team. This commit ensures that the 'documents' feature is disabled by default on projects created from helpdesk teams. task-3996664
Timesheet grid configuration now supports specifying the right display widget directly instead of relying on a workaround. This helps prevent future warning messages and keeps the timesheet interface more reliable as validation is tightened.
Original PR description
Until now, if a widget needed to be specified for the renderer, a hack was needed, the widget needed to be set as a field type. The task 4224192 aim to add a warning when using a widget on a wrong field (field type) and the current hack will raise the warning. This commit adds widget, a new parameter, to the getPropertyFieldInfo function. This parameter, will allow specifying the widget that we want to use on the fieldInfo. task-id: 4224192
Code cleanup and technical improvements
This internal cleanup makes Point of Sale records keep their related information in sync automatically when values are changed. It reduces the chance of developer mistakes and supports more reliable behavior across localized POS features such as Chilean and Ecuadorian electronic invoicing and due settlement.
Original PR description
In this commit, we are now instantiating a record as a Proxy that traps the setter. When setting a value for a certain key on a record, we call the `update` internally to ensure that related records are linked. This means that developers are no longer required to use `record.update` to apply changes on a record, they can just set the value as if the record is a normal object. Community: https://github.com/odoo/odoo/pull/184108
US payroll state tax calculation functionality has been consolidated into the main US payroll module. This simplifies maintenance and keeps payroll configuration in one place without changing the business purpose of the feature.
Original PR description
The module l10n_us_hr_payroll_state_calculation was added in 17.0. In master, it needs to be merged to l10n_us_hr_payroll. Task: 4191924
Miscellaneous changes
Steps: - create 2 boms: -- bom_A: product_A with component_A -- bom_B: product_B with component_B - add all 4 products to the MPS - go to bom_A and click on the 'Schedules' smart button, there should only be 2 records (product_A & component_A) - open the search dropdown menu and select a 'Rows' option Issue: When changing the rows to be shown in the MPS (e.g. Actual Demand), OWL calls `write` directly via the orm on res.company because those fields are set on res.company. This is du
Original PR description
Steps: - create 2 boms: -- bom_A: product_A with component_A -- bom_B: product_B with component_B - add all 4 products to the MPS - go to bom_A and click on the 'Schedules' smart button, there should…
Steps:
- create 2 boms:
-- bom_A: product_A with component_A
-- bom_B: product_B with component_B
- add all 4 products to the MPS
- go to bom_A and click on the 'Schedules' smart button, there should
only be 2 records (product_A & component_A)
- open the search dropdown menu and select a 'Rows' option
Issue:
When changing the rows to be shown in the MPS (e.g. Actual Demand),
OWL calls `write` directly via the orm on res.company because those
fields are set on res.company. This is due to 'company_service.js':
```js
if (!error && model === "res.company" && UPDATE_METHODS.includes(method)) {
if (!browser.localStorage.getItem("running_tour")) {
action.doAction("reload_context");
}
}
```
This cause the page to do a full refresh, which loses the domain.
Fix:
This fix makes it so that when changing the rows in the search menu,
OWL calls a specific function that will do the same job but without
the full reload, thus keeping the domain.
Forward-Port-Of: odoo/enterprise#72215Since [odoo/pull/176483](https://github.com/odoo/odoo/pull/176483), the product_document_kanban_controller methods have been modified but in MRP. This commit fixes it. Before ------ When clicking on the document icon of a bom line, and then adding a document, the document whill shortly appear and then disappear because the visibility is not set on bom https://drive.google.com/file/d/1gXiqtU3zEoFP76ue2pk-0FHnf5MyRT-P/view The same logic applies to PLM After ----- The document visibility
Original PR description
Since [odoo/pull/176483](https://github.com/odoo/odoo/pull/176483), the product_document_kanban_controller methods have been modified but in MRP. This commit fixes it. Before ------ When clicking on the document icon of a bom line, and then adding a document, the document whill shortly appear and then disappear because the visibility is not set on bom https://drive.google.com/file/d/1gXiqtU3zEoFP76ue2pk-0FHnf5MyRT-P/view The same logic applies to PLM After ----- The document visibility is set on 'bom' and the document is visible when added Forward-Port-Of: odoo/enterprise#72272
Before this commit: === - When attempting to open a session, when there is no API key and username in pos_config, a validation error occurred. After this commit: === - No validation error occurs when the API key and username are missing in pos_config. task-4266405 Forward-Port-Of: odoo/enterprise#72183
Original PR description
Before this commit: === - When attempting to open a session, when there is no API key and username in pos_config, a validation error occurred. After this commit: === - No validation error occurs when the API key and username are missing in pos_config. task-4266405 Forward-Port-Of: odoo/enterprise#72183
Set up Avatax environment Create an Invoice with 2 lines: - Prod A, Analytic Account A - Prod B, Analytic Account B Compute taxes Now open one of the newly added taxes On the repartition line click on the 3 dots menu, show 'Tax Closing Entry' Disable 'Tax Closing Entry' on the invoice repartition line Now go back to the invoice Compute taxes again Issue: Traceback will raise 'ValueError: Expected singleton: account.move.line(...' This occurs because, with this tax configuration
Original PR description
Set up Avatax environment Create an Invoice with 2 lines: - Prod A, Analytic Account A - Prod B, Analytic Account B Compute taxes Now open one of the newly added taxes On the repartition line click on the 3 dots menu, show 'Tax Closing Entry' Disable 'Tax Closing Entry' on the invoice repartition line Now go back to the invoice Compute taxes again Issue: Traceback will raise 'ValueError: Expected singleton: account.move.line(...' This occurs because, with this tax configuration, on the move we will have 2 tax lines for the same tax, as the lines needs a different analytic account and cannot be grouped together. When we compare the amount per tax we'll have a recordset and it will raise an error. A solution is to acknowledge that we might have more than 1 line and split the possible difference evenly on the tax lines opw-3976597 Forward-Port-Of: odoo/enterprise#71937 Forward-Port-Of: odoo/enterprise#69090
There are currently these issues in the bank reconcilation report 1. There may be a traceback due to a division by 0 error 2. The residual amounts are not correctly computed in the report. It always displays the full amount; even if the move is partly "reconciled" already. 3. Duplicate entries can appear. All issues are solved by rewriting the generation logic a bit. Issue (1) i.e. happens due to move lines with a 0 balance in the move associated with the bank statement (line). All
Original PR description
There are currently these issues in the bank reconcilation report 1. There may be a traceback due to a division by 0 error 2. The residual amounts are not correctly computed in the report. It always…
There are currently these issues in the bank reconcilation report 1. There may be a traceback due to a division by 0 error 2. The residual amounts are not correctly computed in the report. It always displays the full amount; even if the move is partly "reconciled" already. 3. Duplicate entries can appear. All issues are solved by rewriting the generation logic a bit. Issue (1) i.e. happens due to move lines with a 0 balance in the move associated with the bank statement (line). All 3 issues can happen due to the way the entries in the report are generated: Consider a single bank statement (line) / its associated "bank move". To generate the line the report we join the bank statement line and bank move to each line of the bank move (except the liquidity line). The report groups by move line id. This generates 1 row in the report per move line (except the liquidity line) of the bank move. This directly causes issue (3). It also causes issue (2) due to the following: The reason we join all the move lines in the first place is to compute the unreconciled amount of the bank move. (By summing amounts on the move lines). But when generating a single row of the report we only have the information about 1 line (due to the grouping by id) and not the whole sum. Thus we do not have the full residual information. opw-4178134 (Issue 1) community PR: https://github.com/odoo/odoo/pull/182589 Forward-Port-Of: odoo/enterprise#72225 Forward-Port-Of: odoo/enterprise#71243
Before this commit, when documents_project module is installed on a fresh DB the label of `Use Documents` and when documents_fsm module is installed the label is updated to be `Documents`. This commit makes sure the label of that field will always be `Documents` in all cases. task-4250848 Forward-Port-Of: odoo/enterprise#72240 Forward-Port-Of: odoo/enterprise#71741
Original PR description
Before this commit, when documents_project module is installed on a fresh DB the label of `Use Documents` and when documents_fsm module is installed the label is updated to be `Documents`. This commit makes sure the label of that field will always be `Documents` in all cases. task-4250848 Forward-Port-Of: odoo/enterprise#72240 Forward-Port-Of: odoo/enterprise#71741
The issue occurred because `vals_list` is a list of dictionaries, and calling `get()` on it caused an AttributeError. Updated the logic to iterate over the list and properly handle each dictionary entry. Forward-Port-Of: odoo/enterprise#72180
Original PR description
The issue occurred because `vals_list` is a list of dictionaries, and calling `get()` on it caused an AttributeError. Updated the logic to iterate over the list and properly handle each dictionary entry. Forward-Port-Of: odoo/enterprise#72180
…entries Steps to reproduce: - Create a belgian company - Create an analytic distibution model - Create an asset, set the expense account to the account defined in the analytic distribution model - Click on "Compute Depreciation" Observed behavior: The analytic ditribution is not applied to the depreciation entries. Desired behavior: The analytic distribution is applied correctly. task-4241362 Forward-Port-Of: odoo/enterprise#72220
Original PR description
…entries Steps to reproduce: - Create a belgian company - Create an analytic distibution model - Create an asset, set the expense account to the account defined in the analytic distribution model - Click on "Compute Depreciation" Observed behavior: The analytic ditribution is not applied to the depreciation entries. Desired behavior: The analytic distribution is applied correctly. task-4241362 Forward-Port-Of: odoo/enterprise#72220
Starting from 18.0, the default shopfloor filter "This Station" was removed from existence. See Commit 4e6038617586b669c00a23da0ea4355f869ecc94 This filter was initially added to odoo for performance reasons [1] and was removed since the shopfloor performance do not require it anymore to work properly. However, this filters appeard to be usefull for certain user in case for instance they want to filters out all the MO's that do not have an operation which belongs to at least one of the selected
Original PR description
Starting from 18.0, the default shopfloor filter "This Station" was removed from existence. See Commit 4e6038617586b669c00a23da0ea4355f869ecc94 This filter was initially added to odoo for performance reasons [1] and was removed since the shopfloor performance do not require it anymore to work properly. However, this filters appeard to be usefull for certain user in case for instance they want to filters out all the MO's that do not have an operation which belongs to at least one of the selected workcenter. In addition, this filter is reactive and quite hard to manually create since it requires that the user identifies the ids of its active workcenters. It was therefore decided to add it back to the list of filters that can be selected in the shopfloor in case the user would like to use it. [1] https://github.com/odoo/enterprise/pull/64551 opw-4241699 Forward-Port-Of: odoo/enterprise#72103
The studio onboarding tour was missing because it was in the tests assets. It has been moved and change for the new system of onboarding tour. Forward-Port-Of: odoo/enterprise#71623
Original PR description
The studio onboarding tour was missing because it was in the tests assets. It has been moved and change for the new system of onboarding tour. Forward-Port-Of: odoo/enterprise#71623
With this commit, the user will not have to wait for the acknowledge message coming through the websocket to process it, it will be processed directly after the message is sent, if the message is accepted server-side. With this commit, we are now robust to the case the websocket connection is dropped **and** the user is alone in the spreadsheet. Task: 4243943 Forward-Port-Of: odoo/enterprise#72187 Forward-Port-Of: odoo/enterprise#71782
Original PR description
With this commit, the user will not have to wait for the acknowledge message coming through the websocket to process it, it will be processed directly after the message is sent, if the message is accepted server-side. With this commit, we are now robust to the case the websocket connection is dropped **and** the user is alone in the spreadsheet. Task: 4243943 Forward-Port-Of: odoo/enterprise#72187 Forward-Port-Of: odoo/enterprise#71782
Add a new bridge module for timesheeted product with recurring invoice. This module overwrite the computation of delivered quantity for recurring line invoiced on delivered timesheet to only account for those delivered during the invoice deferred period. + several fixes task-id: 4221354 Forward-Port-Of: odoo/enterprise#71546
Original PR description
Add a new bridge module for timesheeted product with recurring invoice. This module overwrite the computation of delivered quantity for recurring line invoiced on delivered timesheet to only account for those delivered during the invoice deferred period. + several fixes task-id: 4221354 Forward-Port-Of: odoo/enterprise#71546
When doing a groupby on a non-relational field (e.g. a char), if the field contains NULL values in DB, they appear as `None` in the keys of the `group_lines_by_keys` dict. If the comparison operator is not implemented between the field type and `NoneType`, `sorted` will fail with a traceback. Solution: sort on keys `(k is None, k)`. if k is None, then `k is None = True`. Because `True > False`, these values are pushed to the end by the sorting. task-none Forward-Port-Of: odoo/enterpri
Original PR description
When doing a groupby on a non-relational field (e.g. a char), if the field contains NULL values in DB, they appear as `None` in the keys of the `group_lines_by_keys` dict. If the comparison operator is not implemented between the field type and `NoneType`, `sorted` will fail with a traceback. Solution: sort on keys `(k is None, k)`. if k is None, then `k is None = True`. Because `True > False`, these values are pushed to the end by the sorting. task-none Forward-Port-Of: odoo/enterprise#72160 Forward-Port-Of: odoo/enterprise#72008
Fixed incorrect error messages that were previously displayed. task-4193991 Forward-Port-Of: odoo/enterprise#70619
Original PR description
Fixed incorrect error messages that were previously displayed. task-4193991 Forward-Port-Of: odoo/enterprise#70619
Set up Avatax on a company Create Branch and switch to it Create an invoice with fiscal position Avatax Compute taxes > Taxes will be created in branch company Switch to main company Create an invoice with fiscal position Avatax again. Compute taxes > Error Error will block the action ``` Validation Error Tax names must be unique! - CA STATE TAX [06] (6.0000 %) in test ``` This occurs because we first created the taxes in the branch company. Then when retrieving taxes from the ma
Original PR description
Set up Avatax on a company Create Branch and switch to it Create an invoice with fiscal position Avatax Compute taxes > Taxes will be created in branch company Switch to main company Create an invoice with fiscal position Avatax again. Compute taxes > Error Error will block the action ``` Validation Error Tax names must be unique! - CA STATE TAX [06] (6.0000 %) in test ``` This occurs because we first created the taxes in the branch company. Then when retrieving taxes from the main company those taxes are not found and will be created again but we have a constraint that tax name must be unique opw-3962212 Forward-Port-Of: odoo/enterprise#72130
When a MO consumes components that have a MPS record, the MPS does not take the consumption moves into account for the starting quantity of the MPS record. This PR removes that condition to make sure the starting inventory is correctly computed. Forward-Port-Of: odoo/enterprise#69412
Original PR description
When a MO consumes components that have a MPS record, the MPS does not take the consumption moves into account for the starting quantity of the MPS record. This PR removes that condition to make sure the starting inventory is correctly computed. Forward-Port-Of: odoo/enterprise#69412
Forward-Port-Of: odoo/enterprise#71381
Original PR description
Forward-Port-Of: odoo/enterprise#71381
Turn off 'Show Timezone' and 'Show Duration' by default in 'Table' demo data. Task-4247801 Forward-Port-Of: odoo/enterprise#71768
Original PR description
Turn off 'Show Timezone' and 'Show Duration' by default in 'Table' demo data. Task-4247801 Forward-Port-Of: odoo/enterprise#71768