Monday, January 15, 2024
18 changes · master
Enhancements to existing features
The map view now uses Odoo's newer unified data loading method to retrieve partner details instead of a separate older request. This should make map data retrieval more consistent with the rest of the platform and reduce duplicated data-fetching logic.
Original PR description
The goal of this commit is to use the new webRead (unity) API to avoid the searchRead used to fetch partners. We're therefore going to modify the specification given to the webRead in order to request additional information for the partners.
Planning dialogs can now show a tailored message when there is no content to display. This helps users understand why no records are available and what the empty result means in the sales planning workflow.
Original PR description
A new prop in the SelectCreateDialog component has been added in the related PR and this commit uses it to be able to add custom noContent message in a dialog in planning taskid:3186636
Resolved issues and error corrections
This fix prevents VoIP testing from crashing when the optional OnSIP add-on is not installed. It ensures OnSIP-specific settings are only applied when that module is present, improving reliability for standard VoIP setups.
Original PR description
Follow-up of #53729. With only VoIP installed, without voip_onsip, running the test would result in a crash because onsip_auth_username doesn't exist on the mocked model. This commit fixes that by correctly adding onsip_auth_username only if voip_onsip is installed.
Miscellaneous changes
Currently, if you have 2 browser tabs or 2 different PoS using the same Worldline terminal, there was a way to do some damage if requests were started at the same time 1) Since we call C++ code through a thread without a mutex, it was possible to get a race condition and provoke a segmentation fault 2) Even if there was no race condition, we were not specifying to who the driver is replying all the time. So a cancel request on the 1st PoS could cancel an active transaction on the 2nd PoS. T
Original PR description
Currently, if you have 2 browser tabs or 2 different PoS using the same Worldline terminal, there was a way to do some damage if requests were started at the same time 1) Since we call C++ code…
Currently, if you have 2 browser tabs or 2 different PoS using the same Worldline terminal, there was a way to do some damage if requests were started at the same time 1) Since we call C++ code through a thread without a mutex, it was possible to get a race condition and provoke a segmentation fault 2) Even if there was no race condition, we were not specifying to who the driver is replying all the time. So a cancel request on the 1st PoS could cancel an active transaction on the 2nd PoS. This PR fixes both issues by specifying the owner of the request and the cid in every single response sent from the driver to the frontend. I am also adding the cid to the data sent in a cancellation request as otherwise we don't know which transaction line we're cancelling. It replaces the threads by a queue to avoid race conditions in the future and respect the condition that all the Driver class logic must be executed in the "run" method for safe execution. It also fixes the Last Transaction Status popup which could accidentally "catch" the response from a transaction since it doesn't care about the cid. This PR also makes the popup consistent with the response (using error popup for a response resulting in an error). task-3676153 Forward-Port-Of: odoo/enterprise#54157 Forward-Port-Of: odoo/enterprise#53951
In Knowledge, the system automatically selects the entire text of the title field when the user clicks on the field. When the user clicks on the field again to reposition the cursor or selects a portion of the text, the system will re-select the entire text which prevent people from easily editing the title field. Users are required to utilize the left or right arrow keys on their keyboard to move their cursor or employ keyboard shortcuts to select a specific portion of the text which is not
Original PR description
In Knowledge, the system automatically selects the entire text of the title field when the user clicks on the field. When the user clicks on the field again to reposition the cursor or selects a portion of the text, the system will re-select the entire text which prevent people from easily editing the title field. Users are required to utilize the left or right arrow keys on their keyboard to move their cursor or employ keyboard shortcuts to select a specific portion of the text which is not convenient. To enable text selection, we will disable the magic selection. The title field will now behave like any other text field of Odoo. task-3676051 Forward-Port-Of: odoo/enterprise#54027
There is a problem in the "Manual Operations" of the bank reconciliation widget with the focus of the clicked fields on line change. Consider the following situation in the bank reconciliation widget: The "Manual Operations" tab is already visible, a line is selected and we click on the amount field of a different line. Then the line should change and the corresponding input of the field should be focussed in the "Manual Operations" tab. (The problem may happen with other columns / fields to
Original PR description
There is a problem in the "Manual Operations" of the bank reconciliation widget with the focus of the clicked fields on line change. Consider the following situation in the bank reconciliation…
There is a problem in the "Manual Operations" of the bank reconciliation widget with the focus of the clicked fields on line change. Consider the following situation in the bank reconciliation widget: The "Manual Operations" tab is already visible, a line is selected and we click on the amount field of a different line. Then the line should change and the corresponding input of the field should be focussed in the "Manual Operations" tab. (The problem may happen with other columns / fields too.) But currently it can happen that the field is not properly focussed. The issue is that the focusing happens before the "Manual Operations" tab is "patched". After the "patching" the focus is lost. This commit corrects this issue by executing the focussing after the "patching". Reproduce 1. Go to bank reconciliation widget (with the default company). The first bank statement line should be selected: It has amount "$ 96.67" and label: "R:9772938 10/07 AX 9415116318 T:5 BRT: 100.00 C/ croip" (or similar). (I think it should always fail if the "Taxes" field is visible on some of the lines on right) 2. Ensure that nothing is selected in the "Match Existing Entries" tab. 3. Click on some line on the right. The "Manual Operations" tab should be selected now. 4. Ensure there is no focus on the "Amount" field in the "Manual Operations". 5. Click on the debit field of some other line. 6. For a short moment (before the line is changed) the "Amount" field is focused. 7. The line is changed and the "Amount" field is not focused. Forward-Port-Of: odoo/enterprise#54202 Forward-Port-Of: odoo/enterprise#52388
… only boolean invisible On a worksheet template, click on Design Template. You arrive in studio, editing the form view for the template Add some fields before the already existing comments field. Remove the comment field. Rename the last added field. Move that field on top of the other added fields. Before this commit, the moved field was never at the desired spot. This is because of the `def normalize` in web_studio. When it tries to determine simple xpath for the operations, it gets l
Original PR description
… only boolean invisible On a worksheet template, click on Design Template. You arrive in studio, editing the form view for the template Add some fields before the already existing comments field.…
… only boolean invisible On a worksheet template, click on Design Template. You arrive in studio, editing the form view for the template Add some fields before the already existing comments field. Remove the comment field. Rename the last added field. Move that field on top of the other added fields. Before this commit, the moved field was never at the desired spot. This is because of the `def normalize` in web_studio. When it tries to determine simple xpath for the operations, it gets lost when a field is replaced by other stuff. Specifically, it can't really handle emptying a node from existing fields and filling that with new things. This is a limitation that could be fixed at the cost of heavy work and potential bugs created by an hypothetical fix. Considering the sensitivity of the `normalize` function, This commit proposes to handle things differently in worksheet. It now supports having an invisible field in the form view, that will have the consequence of not putting the field in the QWeb report for that template model. For simplicity's sake, it only supports Boolean values. opw-3601040 Forward-Port-Of: odoo/enterprise#54145 Forward-Port-Of: odoo/enterprise#54111
Forward-Port-Of: odoo/enterprise#53879
Original PR description
Forward-Port-Of: odoo/enterprise#53879
Since b90cae065001aa44fb05532950b78732217649a7, the domain from _loder_params_product_product is ignored. But the utility products that are supposed to be loaded are declared in that method. In this commit, we now override the _get_available_product_domain to make sure the utility products are loaded when opening a pos session. Forward-Port-Of: odoo/enterprise#53653
Original PR description
Since b90cae065001aa44fb05532950b78732217649a7, the domain from _loder_params_product_product is ignored. But the utility products that are supposed to be loaded are declared in that method. In this commit, we now override the _get_available_product_domain to make sure the utility products are loaded when opening a pos session. Forward-Port-Of: odoo/enterprise#53653
Before this commit, when the customer payed a subscription and the payment was still pending, three alerts were being showed in the screen alerting that its payment was pending, which was too much. After this commit, only the payment module pending message was kept: "Your payment has ben successfully processed but is waiting for approval". This way, the information is presented in a cleaner and direct way. Task-id: 3649938 Forward-Port-Of: odoo/enterprise#53528
Original PR description
Before this commit, when the customer payed a subscription and the payment was still pending, three alerts were being showed in the screen alerting that its payment was pending, which was too much. After this commit, only the payment module pending message was kept: "Your payment has ben successfully processed but is waiting for approval". This way, the information is presented in a cleaner and direct way. Task-id: 3649938 Forward-Port-Of: odoo/enterprise#53528
The aim of this commit is changing the position of xpath for "replace" instead of "after" for the extra options depreciation schedule filters. no task id Forward-Port-Of: odoo/enterprise#54082 Forward-Port-Of: odoo/enterprise#54018
Original PR description
The aim of this commit is changing the position of xpath for "replace" instead of "after" for the extra options depreciation schedule filters. no task id Forward-Port-Of: odoo/enterprise#54082 Forward-Port-Of: odoo/enterprise#54018
When an amount in the consolidation report was computed from multiple consolidation.journal.line objects, auditing it didn't work well: only the move lines corresponding to the first of those journal lines were shown. This is due to https://github.com/odoo/odoo/blame/16.0/addons/web/static/src/search/search_arch_parser.js#L134 . Passing a default value for a filter consisting in a list of ids worked by chance and only in certain contexts in older versions. In 16.0, it does not anymore. This c
Original PR description
When an amount in the consolidation report was computed from multiple consolidation.journal.line objects, auditing it didn't work well: only the move lines corresponding to the first of those journal lines were shown. This is due to https://github.com/odoo/odoo/blame/16.0/addons/web/static/src/search/search_arch_parser.js#L134 . Passing a default value for a filter consisting in a list of ids worked by chance and only in certain contexts in older versions. In 16.0, it does not anymore. This case is currently unsupported by the web framework (it will be on future versions; a task has been created for master) ; the alternative is here to directly rely on a domain on the action. OPW 3662905 Forward-Port-Of: odoo/enterprise#54217
When the user copies an article, the stages set on the article items of the article will not be transposed to the new article. As a result, the embedded view will not have any stage set. To fix that issue, we will properly copy the stage of the article to the new article. Step to reproduce the issue: 1. Create an article 2. Insert a kanban view with /kanban 3. Create a few stages 4. Click on the "Create a Copy" button of the dropdown item => The embedded view will not have any stage se
Original PR description
When the user copies an article, the stages set on the article items of the article will not be transposed to the new article. As a result, the embedded view will not have any stage set. To fix that issue, we will properly copy the stage of the article to the new article. Step to reproduce the issue: 1. Create an article 2. Insert a kanban view with /kanban 3. Create a few stages 4. Click on the "Create a Copy" button of the dropdown item => The embedded view will not have any stage set TO BE: The embedded view should have the same stages as the original article. task-3349324 Forward-Port-Of: odoo/enterprise#41967
The parser of the library we use to extract strings to be translated (python-babel) doesn't handle escaped newlines in the same way as the JavaScript parser. The resulting mismatch makes the content that uses them untranslatable. for example: ```js const hey = _t("slt \ çv ?" ); ``` is exported as "slt \nçv ?", while the content of the variable is "slt çv ?". This commit removes faulty occurrences from the code base and re-exports the corresponding POT files. *: helpdesk Commun
Original PR description
The parser of the library we use to extract strings to be translated (python-babel) doesn't handle escaped newlines in the same way as the JavaScript parser. The resulting mismatch makes the content that uses them untranslatable.
for example:
```js
const hey = _t("slt \
çv ?"
);
```
is exported as "slt \nçv ?", while the content of the variable is "slt çv ?".
This commit removes faulty occurrences from the code base and re-exports the corresponding POT files.
*: helpdesk
Community: https://github.com/odoo/odoo/pull/148931
Forward-Port-Of: odoo/enterprise#52617https://github.com/odoo/enterprise/commit/ac2b8ea131688964bf04789ed8db068817b774a0 added a way to create workspaces directly from the side panel, copying some settings from its parent. Unfortunatly a typo prevent this feature to work properly. steps to reproduce: - go to the search panel of the document app - create a workspace and set some access groups on it - create a new workspace, children from that workspace before this commit: - values from parent are not copied to children
Original PR description
https://github.com/odoo/enterprise/commit/ac2b8ea131688964bf04789ed8db068817b774a0 added a way to create workspaces directly from the side panel, copying some settings from its parent. Unfortunatly a typo prevent this feature to work properly. steps to reproduce: - go to the search panel of the document app - create a workspace and set some access groups on it - create a new workspace, children from that workspace before this commit: - values from parent are not copied to children after this commit: - values from parent are copied to children opw-3579989 Forward-Port-Of: odoo/enterprise#54174 Forward-Port-Of: odoo/enterprise#50875
Now that Odoo is using AI prompts for the edition of articles and website, we are adding this feature to the complete generation of articles. This commit adds a new button when article is empty besides the other already present. This button opens a dialog which contains the prompt to interact with ChatGPT, this way the user gets the possibility to get generated articles and can insert the one they prefer. task-3619294 Forward-Port-Of: odoo/enterprise#54179
Original PR description
Now that Odoo is using AI prompts for the edition of articles and website, we are adding this feature to the complete generation of articles. This commit adds a new button when article is empty besides the other already present. This button opens a dialog which contains the prompt to interact with ChatGPT, this way the user gets the possibility to get generated articles and can insert the one they prefer. task-3619294 Forward-Port-Of: odoo/enterprise#54179
Steps: - Install `web_studio` - Open studio and go to reports - Duplicate a random X report - You can `Edit source` on X - When you try on X copy(1), sources are broken Forward-Port-Of: odoo/enterprise#53633
Original PR description
Steps: - Install `web_studio` - Open studio and go to reports - Duplicate a random X report - You can `Edit source` on X - When you try on X copy(1), sources are broken Forward-Port-Of: odoo/enterprise#53633
Current behaviour: - VAT report is using _l10n_th_get_branch_name() to get the company info value. However _l10n_th_get_branch_name() is a compute method which will not return any values. Expected behaviour: - It should use l10n_th_branch_name instead of _l10n_th_get_branch_name() Explanation: - _l10n_th_get_branch_name() is a compute method. The value should be stored in l10n_th_branch_name. X-original-commit: 0a79698 Forward-Port-Of: odoo/enterprise#54100 Forward-Port-Of: od
Original PR description
Current behaviour: - VAT report is using _l10n_th_get_branch_name() to get the company info value. However _l10n_th_get_branch_name() is a compute method which will not return any values. Expected behaviour: - It should use l10n_th_branch_name instead of _l10n_th_get_branch_name() Explanation: - _l10n_th_get_branch_name() is a compute method. The value should be stored in l10n_th_branch_name. X-original-commit: 0a79698 Forward-Port-Of: odoo/enterprise#54100 Forward-Port-Of: odoo/enterprise#54005