Thursday, October 24, 2024
28 changes · master
Enhancements to existing features
The Field Service planning view now shows only deadlines and milestones linked to Field Service projects when FSM mode is active. This reduces clutter for field service teams and helps them focus on the work that is relevant to their operations.
Original PR description
In this PR, we implement the following changes: 1. Refactor get_all_deadlines Method: The get_all_deadlines method has been refactored by splitting it into two distinct methods: one for preparing the domain and another for retrieving all the necessary fields. This refactor enhances flexibility by enabling easier method overrides, allowing for the addition of fields or adjustment of the domain as required. 2. Hide Non-FSM Deadlines and Milestones in FSM Gantt View: Deadlines and milestones that do not belong to FSM projects are now hidden in the Gantt view when FSM mode is active. This visibility is controlled by a domain, ensuring that only FSM project deadlines and milestones are displayed in the FSM. task-4037284
Indian GST reports and tax group labels now use SGST/UTGST instead of SGST. This makes the wording more accurate for businesses operating in Union Territories and improves compliance-related reporting clarity.
Original PR description
with this PR: Renamed SGST to SGST/UTGST in Tax Groups and GST Report Heading task - 4231745
Public users now see a close button on the thank-you dialog after signing a document. This makes the signing flow easier to exit and keeps the experience consistent with portal users.
Original PR description
**Before this PR:** - Previously, when portal users signed documents, they received a "Thank You" dialog that included a close button for convenience. However, public users did not have this close button in their "Thank You" dialog, potentially leading to a less intuitive experience. **After this PR:** - To enhance the user experience for public users, a close button has now been added to the "Thank You" dialog. This adjustment aligns the experience of public users with that of portal users, providing a consistent and user-friendly interface. task-4069539 --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
WhatsApp discussion users now get one consistent search experience for finding conversations from the sidebar. This replaces separate channel-specific search controls with the existing quick search, making navigation faster and more predictable with Ctrl-K.
Original PR description
replaced the channel selector search on the discuss sidebar categories with a unified search extending the existing quick search feature. replaced ChannelSelector component with the new DiscussSearch. community PR: https://github.com/odoo/odoo/pull/176652 task-4100945
Features or functions removed from Odoo
This update removes support for an older internal field option that was used when defining certain model fields. It keeps enterprise modules aligned with the main Odoo platform changes and helps prevent inconsistencies in Studio, field service reports, quality worksheets, and exports.
Original PR description
See the community PR. https://github.com/odoo/odoo/pull/133446 https://github.com/odoo/upgrade/pull/5091 https://github.com/odoo/upgrade-util/pull/154
Code cleanup and technical improvements
Side panel section titles now use a clearer configuration method while preserving translation support. This is an internal cleanup that makes spreadsheet-related side panels easier to maintain without changing user workflows.
Original PR description
Currently, the title of a `Section` component is a title slot. We are using a slot to translate the title: a props like `title="'My title'"` wouldn't work since this props is javascript expression, while text content inside xml elements are extracted and translated. But since the introduction of the `.translate` modifier, we can use a props! It's much more natural (props vs slot) and explicit (`.translate`) Task: 4226704
Miscellaneous changes
Problem: The issue occurs when trying to select a different plan for a recurring product with variants in the e-commerce view. We are not refreshing the list of plans when we select another combination. Steps to reproduce: - Create a recurring product with variants. - Add multiple subscription plans with variants. - Go to the website and view the product page. - The selection of alternative plans is unavailable. opw-4179086 Forward-Port-Of: odoo/enterprise#72685 Forward-Port-Of: odoo
Original PR description
Problem: The issue occurs when trying to select a different plan for a recurring product with variants in the e-commerce view. We are not refreshing the list of plans when we select another combination. Steps to reproduce: - Create a recurring product with variants. - Add multiple subscription plans with variants. - Go to the website and view the product page. - The selection of alternative plans is unavailable. opw-4179086 Forward-Port-Of: odoo/enterprise#72685 Forward-Port-Of: odoo/enterprise#71347
A duplicate menu item in the spreadsheet edition area was removed because the same option is already provided by the core spreadsheet component. This keeps the menu configuration simpler and more consistent without changing the intended user experience.
Original PR description
This menu item is also defined in o-spreadsheet but overwritten here with the same thing (except the name, sequence and separator, which have been adapted in o-spreadsheet) Task: 4242125
Problem: When changing a variant in the rental product page, the availability is not updated because the `/rental/product/availabilities` endpoint is not called. This results in situations where users can attempt to rent unavailable variants without being warned. Steps to reproduce: - Create a rental product with two variants. - Try to rent the second variant when it is unavailable. - The `/rental/product/availabilities` endpoint is not called, so availabilities are not updated, and no wa
Original PR description
Problem: When changing a variant in the rental product page, the availability is not updated because the `/rental/product/availabilities` endpoint is not called. This results in situations where users can attempt to rent unavailable variants without being warned. Steps to reproduce: - Create a rental product with two variants. - Try to rent the second variant when it is unavailable. - The `/rental/product/availabilities` endpoint is not called, so availabilities are not updated, and no warning is displayed. opw-4130172 Forward-Port-Of: odoo/enterprise#72614 Forward-Port-Of: odoo/enterprise#71851
Forward-Port-Of: odoo/enterprise#72581 Forward-Port-Of: odoo/enterprise#72260
Original PR description
Forward-Port-Of: odoo/enterprise#72581 Forward-Port-Of: odoo/enterprise#72260
Before this fix, when setting up a new foreign VAT fiscal position, no corresponding draft closing move was created. Because of that, if nothing was made to generate it in the meantime, when the user posted the last of the other draft closing moves, the tax lock date was set, forbidding adding new invoices for the new foreign closing, even though it wasn't posted yet. Though corner cases are still possible, we alleviate that by automatically generating the draft move when the user creates a new
Original PR description
Before this fix, when setting up a new foreign VAT fiscal position, no corresponding draft closing move was created. Because of that, if nothing was made to generate it in the meantime, when the user posted the last of the other draft closing moves, the tax lock date was set, forbidding adding new invoices for the new foreign closing, even though it wasn't posted yet. Though corner cases are still possible, we alleviate that by automatically generating the draft move when the user creates a new foreign VAT fiscal position. Forward-Port-Of: odoo/enterprise#72548 Forward-Port-Of: odoo/enterprise#71857
In the `test_serial_product_packaging` tour, we scan 4 different serial numbers without waiting which can cause race condition (in case a scanned SN is finished to be processed before the previous scanned SN.) To fix that, two solutions: - Update each trigger to wait the result of previous scan; - Scan all SN as one single barcode, which force them to be processed in the right order. Second option is used by this commit since it's simplier. runbuild error: 99539 Forward-Port-Of: odoo/en
Original PR description
In the `test_serial_product_packaging` tour, we scan 4 different serial numbers without waiting which can cause race condition (in case a scanned SN is finished to be processed before the previous scanned SN.) To fix that, two solutions: - Update each trigger to wait the result of previous scan; - Scan all SN as one single barcode, which force them to be processed in the right order. Second option is used by this commit since it's simplier. runbuild error: 99539 Forward-Port-Of: odoo/enterprise#72520
task_id: 4261885 Forward-Port-Of: odoo/enterprise#72567
Original PR description
task_id: 4261885 Forward-Port-Of: odoo/enterprise#72567
CAF is based on the AVS Salary and not the GROSS Forward-Port-Of: odoo/enterprise#72550 Forward-Port-Of: odoo/enterprise#72534
Original PR description
CAF is based on the AVS Salary and not the GROSS Forward-Port-Of: odoo/enterprise#72550 Forward-Port-Of: odoo/enterprise#72534
### Before this PR: - The task column data was visible even when timesheets were grouped by task_id or helpdesk_ticket_id. - This caused misalignment in the table when grouped by these fields. ### After this PR: - The task column is hidden when timesheets are grouped by task_id or helpdesk_ticket_id. - The table headers is now correctly aligned. task-4184455 Forward-Port-Of: odoo/enterprise#71180
Original PR description
### Before this PR: - The task column data was visible even when timesheets were grouped by task_id or helpdesk_ticket_id. - This caused misalignment in the table when grouped by these fields. ### After this PR: - The task column is hidden when timesheets are grouped by task_id or helpdesk_ticket_id. - The table headers is now correctly aligned. task-4184455 Forward-Port-Of: odoo/enterprise#71180
Before this commit: The lock date error message was hard-coded to the MM/DD/YYYY format, regardless of the user's language, which causing inconsistency and confusion in date format. After this commit: The lock date error message now dynamically follows the date format set to the user's language, which improve consistency and reduce confusion. task-3925185 Forward-Port-Of: odoo/enterprise#72579 Forward-Port-Of: odoo/enterprise#70405
Original PR description
Before this commit: The lock date error message was hard-coded to the MM/DD/YYYY format, regardless of the user's language, which causing inconsistency and confusion in date format. After this commit: The lock date error message now dynamically follows the date format set to the user's language, which improve consistency and reduce confusion. task-3925185 Forward-Port-Of: odoo/enterprise#72579 Forward-Port-Of: odoo/enterprise#70405
Steps to Reproduce: - Open All Timesheets in Timesheets app. - Scroll down in the grid view - Change view using view switcher Issue: - You can see that grid view starts at the top. - It is not the case in other views. Fix: - Adding root reference in useSetupAction Reason: - When a root reference is added it scrolls down the page to its previous state. task-4010043 Forward-Port-Of: odoo/enterprise#70637
Original PR description
Steps to Reproduce: - Open All Timesheets in Timesheets app. - Scroll down in the grid view - Change view using view switcher Issue: - You can see that grid view starts at the top. - It is not the case in other views. Fix: - Adding root reference in useSetupAction Reason: - When a root reference is added it scrolls down the page to its previous state. task-4010043 Forward-Port-Of: odoo/enterprise#70637
**Steps to reproduce:** 1. In the Sign app, create a sign request for a partner. 2. From the sign request email, cancel the request as the public user (partner). 3. The cancellation log is created without a partner assigned. **Issue:** When a public user (partner) cancels a sign request, the cancellation log entry does not have a partner_id. **Cause:** The partner_id was set as none when there was a public user **Solution:** Assign the partner_id to the sign log during the cre
Original PR description
**Steps to reproduce:** 1. In the Sign app, create a sign request for a partner. 2. From the sign request email, cancel the request as the public user (partner). 3. The cancellation log is created without a partner assigned. **Issue:** When a public user (partner) cancels a sign request, the cancellation log entry does not have a partner_id. **Cause:** The partner_id was set as none when there was a public user **Solution:** Assign the partner_id to the sign log during the creation. task-4213637 Forward-Port-Of: odoo/enterprise#71335
Current behaviour: --- When you click on the "request a document" link, then upload a document, you get a CSRF error Steps to reproduce: --- 1. Install documents 2. In documents, click the arrow next to "new", then "request" 3. Add a name, and a "request to", then click "request" 4. Go to messages, copy the link in the generated email 5. Paste the link in an incognito window 6. Upload a document, CSRF error Cause of the issue: --- The js file that adds the CSRF token (documents_
Original PR description
Current behaviour: --- When you click on the "request a document" link, then upload a document, you get a CSRF error Steps to reproduce: --- 1. Install documents 2. In documents, click the arrow next…
Current behaviour: --- When you click on the "request a document" link, then upload a document, you get a CSRF error Steps to reproduce: --- 1. Install documents 2. In documents, click the arrow next to "new", then "request" 3. Add a name, and a "request to", then click "request" 4. Go to messages, copy the link in the generated email 5. Paste the link in an incognito window 6. Upload a document, CSRF error Cause of the issue: --- The js file that adds the CSRF token (documents_public_pages.js) could not be loaded due to an error caused by website_sale_renting: `TypeError: odoo.define is not a function` The mixin file was loaded before the odoo module loader. Caused by: https://github.com/odoo/enterprise/commit/93d09071a08bd5de948886729d827b1c46e907d9 Fix: --- Put js code from website_sale_renting before owl.js which is right after assets_frontend_minimal, containing module_loader.js opw-4138333 Forward-Port-Of: odoo/enterprise#72159 Forward-Port-Of: odoo/enterprise#70577
Steps to reproduce the bug: - Create a storable product “P1”: - UoM: Unit - Create a transfer for one dozen of P1: - Mark it as "To Do" - Go to the MPS: - Add the product “P1” - In the filter, add “Actual Demand” Problem: The demand is shown as one unit instead of 12 units. The quantity of the move is not being converted into the UoM of product P1. opw-4199710 Forward-Port-Of: odoo/enterprise#72530 Forward-Port-Of: odoo/enterprise#71216
Original PR description
Steps to reproduce the bug: - Create a storable product “P1”: - UoM: Unit - Create a transfer for one dozen of P1: - Mark it as "To Do" - Go to the MPS: - Add the product “P1” - In the filter, add “Actual Demand” Problem: The demand is shown as one unit instead of 12 units. The quantity of the move is not being converted into the UoM of product P1. opw-4199710 Forward-Port-Of: odoo/enterprise#72530 Forward-Port-Of: odoo/enterprise#71216
## Description When looking for related documents on a large projects, it can inline a large list of ids (`task_ids`) into the following `_read_group` to retrieve the documents associated with any of the project's tasks. The improvement consists of using a subquery instead of a list of ids when the list `task_ids` becomes "too large". We are using `PREFETCH_MAX` for the "too large" threshold. ## Benchmark The `_read_group` to fetch the related documents on 5 projects, one of which has over
Original PR description
## Description When looking for related documents on a large projects, it can inline a large list of ids (`task_ids`) into the following `_read_group` to retrieve the documents associated with any of the project's tasks. The improvement consists of using a subquery instead of a list of ids when the list `task_ids` becomes "too large". We are using `PREFETCH_MAX` for the "too large" threshold. ## Benchmark The `_read_group` to fetch the related documents on 5 projects, one of which has over 1M tasks. | | Before | After | Speed-up | |---------------|--------|-------|----------| | Timings (hot) | 2.85s | 1.16s | 2.45x | Forward-Port-Of: odoo/enterprise#72603 Forward-Port-Of: odoo/enterprise#72468
In odoo/odoo#182509, a constraint on the availability_condition was added, where if availability_condition is set to country, the country_id should be set. Therefore, in tests where the availability condition is set to country, the country should be set before. task-4160643 Forward-Port-Of: odoo/enterprise#72523
Original PR description
In odoo/odoo#182509, a constraint on the availability_condition was added, where if availability_condition is set to country, the country_id should be set. Therefore, in tests where the availability condition is set to country, the country should be set before. task-4160643 Forward-Port-Of: odoo/enterprise#72523
We we tried to open the report with a company without journal and that the report had journal filter set, it would crash. The goal is to set the label of the filter explicitely to "No Journal" and make the filter unclickable when this is the case. task-4267503 Forward-Port-Of: odoo/enterprise#72226
Original PR description
We we tried to open the report with a company without journal and that the report had journal filter set, it would crash. The goal is to set the label of the filter explicitely to "No Journal" and make the filter unclickable when this is the case. task-4267503 Forward-Port-Of: odoo/enterprise#72226
Steps to Reproduce: - Open Field Service in mobile view. - Change to Gantt View. - Click on any planning task in gantt view. Issue: - You get a traceback. Reason: - After the PR https://github.com/odoo/enterprise/pull/54292 we can have multiple buttons in gantt popover. - Here we try to add a onClick to button Edit/View. - Code was not adapted for multiple buttons being available. Fix: - Adapted code to work with multiple buttons and find the View/Edit button and add onC
Original PR description
Steps to Reproduce: - Open Field Service in mobile view. - Change to Gantt View. - Click on any planning task in gantt view. Issue: - You get a traceback. Reason: - After the PR https://github.com/odoo/enterprise/pull/54292 we can have multiple buttons in gantt popover. - Here we try to add a onClick to button Edit/View. - Code was not adapted for multiple buttons being available. Fix: - Adapted code to work with multiple buttons and find the View/Edit button and add onClick. task-4204936 Forward-Port-Of: odoo/enterprise#72540 Forward-Port-Of: odoo/enterprise#71314
Steps to reproduce ================== - Go to accounting > customer invoices - Open studio - Switch to the view tab - => The mass edit option is missing - Switch 'when creating record' to 'add record on top' - => The mass edit is displayed Cause of the issue ================== The mass_edit was displayed when `archInfo.editable` was set, but editable is meant to add new record on top or bottom. Solution ======== What we want is to show the mass_edit if we can edit: `archIn
Original PR description
Steps to reproduce ================== - Go to accounting > customer invoices - Open studio - Switch to the view tab - => The mass edit option is missing - Switch 'when creating record' to 'add record on top' - => The mass edit is displayed Cause of the issue ================== The mass_edit was displayed when `archInfo.editable` was set, but editable is meant to add new record on top or bottom. Solution ======== What we want is to show the mass_edit if we can edit: `archInfo.activeActions.edit === true` opw-4272416 Forward-Port-Of: odoo/enterprise#72616 Forward-Port-Of: odoo/enterprise#72516
After this commit: === - When the user clicks the Create Store button, the location is now created in Atlas. task-4270144 Forward-Port-Of: odoo/enterprise#72459
Original PR description
After this commit: === - When the user clicks the Create Store button, the location is now created in Atlas. task-4270144 Forward-Port-Of: odoo/enterprise#72459
In this PR: - Added a `rate_by_tax_tag` dictionary to store tax rates by tax type (IGST, CGST, SGST) at the line level. - Adjusted the logic to populate `gst_tax_rate` by summing the values from `rate_by_tax_tag`, ensuring accurate tax rate calculations when multiple tax types are involved. - This change improves handling of scenarios with different tax types and ensures consistent and accurate GST reporting. Forward-Port-Of: odoo/enterprise#72455 Forward-Port-Of: odoo/enterprise#72396
Original PR description
In this PR: - Added a `rate_by_tax_tag` dictionary to store tax rates by tax type (IGST, CGST, SGST) at the line level. - Adjusted the logic to populate `gst_tax_rate` by summing the values from `rate_by_tax_tag`, ensuring accurate tax rate calculations when multiple tax types are involved. - This change improves handling of scenarios with different tax types and ensures consistent and accurate GST reporting. Forward-Port-Of: odoo/enterprise#72455 Forward-Port-Of: odoo/enterprise#72396
Current behavior before PR: On mobile, when a guest joined a public channel via an invitation URL, the `Add a Reaction` icon appeared as `[]` instead of the `oi-smile-add` icon. This was due to Font Awesome loading after `odoo_ui_icons`, causing a conflict with the `fa` class. Before / After  Desired behavior after PR is merged: This PR fixes the issue, and now the `Add a Reaction` icon displays
Original PR description
Current behavior before PR: On mobile, when a guest joined a public channel via an invitation URL, the `Add a Reaction` icon appeared as `[]` instead of the `oi-smile-add` icon. This was due to Font Awesome loading after `odoo_ui_icons`, causing a conflict with the `fa` class. Before / After  Desired behavior after PR is merged: This PR fixes the issue, and now the `Add a Reaction` icon displays correctly. Related : [odoo/ #184552](https://github.com/odoo/odoo/pull/184552) Forward-Port-Of: odoo/enterprise#72507