Tuesday, January 11, 2022
42 changes · master
Enhancements to existing features
This update makes it easier to navigate Odoo with a keyboard by adding shortcuts to several common actions. Users working in Projects, Sales Projects, calendars, dialogs, and related status actions can move faster with less reliance on the mouse.
Original PR description
The purpose of this commit is, to add keyboard shortcut to multiple actions. So in this commit, added keyboard shortcut to several actions in project, sale_project, web_calendar and added smart action on statusbar. task-2655790 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The web interface can now open the main command palette with customized settings, such as a tailored placeholder message. This gives teams more flexibility to guide users and prefill searches when launching command actions.
Original PR description
This commit adds the possibility to open the custom main command palette.
So it is possible to replace some parts of the default command palette
config.
For example, we will customize the placeholder:
```
this.command_service.openMainPalette({
placeholder: "My custom placeholder",
})
```
This commit also modify the api of CommandPaletteConfig, we replace
namespace by searchValue. Now it is possible to open a command palette
with a value in its input.
For example:
```
this.command_service.openPalette({
searchValue: "@test",
})
```
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-prTimesheet reporting views for projects, tasks, and employees now open with a weekly grid by default. This makes time review more consistent and easier for managers who typically track work on a weekly basis.
Original PR description
This commit sets `week` as `grid_range` in the grid view of `Timesheets by Project`, `Timesheets by Task` and `Timesheets by Employee`. closes #80495 task-2658828
This update adjusts how the Mail app tracks related data behind the scenes, making relationships between records more consistent. It is an internal improvement that should help maintainability without changing the visible user experience.
Original PR description
With the idea of maybe merging the concepts of causal relations and identifying fields, change the identifying fields so that heir inverses are the only fields with `isCausal: true`.
This change improves the payroll test setup by allowing a specific validation check to be disabled when it is not needed. This helps speed up installation and testing without changing day-to-day payroll functionality for users.
Original PR description
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-pr
Website pages with published records now avoid an extra database lookup when loading related images. This improves page efficiency and can slightly speed up image-heavy website content without changing how users manage or view pages.
Original PR description
The record is read directly in sudo, the prefetch is in the sudo environment. When reading the other information there is no longer any need to make a request.
This update reorganizes how activity information is managed in the Mail app, keeping related logic closer to the activity view. It should make the code easier to maintain without changing how users interact with activities.
Original PR description
task-2698446
This update cleans up internal sales-related setup files and aligns Enterprise sales features with recent community edition changes. It helps keep sales reporting, planning, and subscription product screens consistent and easier to maintain, with little direct day-to-day impact for users.
Original PR description
COM PR: odoo/odoo#82070 ENT PR: odoo/enterprise#23183 UPGRADE PR: odoo/upgrade#3135
Adds keyboard shortcuts to common actions across Helpdesk, Planning, Timesheets, Gantt, Grid, Map, and Worksheet screens. This makes navigation faster and improves accessibility for users who rely on keyboards or prefer shortcut-driven workflows.
Original PR description
The purpose of this commit is, to add keyboard shortcut to multiple actions. So in this commit, added keyboard shortcut to several actions in helpdesk_account, helpdesk_fsm, helpdesk_repair, helpdesk_sale_coupon, helpdesk_stock, planning, sale_planning, timesheet_grid, web_gantt, web_grid, web_map, website_helpdesk_forum and worksheet. task-2655790
Payroll validation has been optimized to process employee work entries in batches, reducing the time needed to validate payslips. This helps payroll teams complete batch payroll runs faster while also improving reliability for Belgian payroll flows.
The POS customer list now combines loyalty points and outstanding amounts into one Balance column. This reduces clutter by showing only meaningful non-zero values, making customer information quicker to scan at checkout.
Original PR description
In this PR, we simplify the interface of the POS app. task-2669747
Planning screens now show more useful information such as job titles, resource icons, managers, conflicts, and allocated hours, helping managers schedule work more accurately. Timesheet and Gantt views were also improved with daily timesheet viewing and better year-view resizing, making planning and reporting easier to use.
Original PR description
Planning:
- indicate the job title of human resources
Currently, resource job position does not appear when selecting resource in planning.
Now it will be easier to assign planning according to job position.
- Currently, the material resource icon does not appear in gantt view. So there is a misaligned
between material human and resource. added fa-wrench icon for material resource.
- added a manager to the planning custom group
- Currently, the planning gantt view total row represents the planning sum but will now
sum of the allocated hours.So the end user knows how many hours are allocated.
timesheet_grid:
- Currently, week and month mode is available in my timesheet grid, now day and year
has been added, so that the user can easily view the timesheet of a
particular day or an entire year.
web_gantt:
- Currently, resizing the pill is restricted in year mode gantt view.
closes odoo/enterprise#21692
task-2658828Code cleanup and technical improvements
This update reorganizes Sales app files, report definitions, and menu configuration to make the module easier to maintain. It also fixes the order in which some Sales XML files load, preventing internal setup references from being used before they are defined.
Original PR description
COM PR: odoo/odoo#82070 ENT PR: odoo/enterprise#23183 UPGRADE PR: odoo/upgrade#3135 task - 2692296 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Description of the issue/feature this PR addresses: By searching on account.move.line parent_state instead of move_id.state, we avoid a join in many circumstances and allow the database to benefit on an index on company_id+parent_state to optimize several queries, such as the default filter on the Journal Items menu which shows posted items. Current behavior before PR: Unnecessary SQL join. Desired behavior after PR is merged: Performance improvement on databases with many jo
Original PR description
Description of the issue/feature this PR addresses: By searching on account.move.line parent_state instead of move_id.state, we avoid a join in many circumstances and allow the database to benefit on an index on company_id+parent_state to optimize several queries, such as the default filter on the Journal Items menu which shows posted items. Current behavior before PR: Unnecessary SQL join. Desired behavior after PR is merged: Performance improvement on databases with many journal items. This is a followup to https://github.com/odoo/odoo/pull/80701. @qdp-odoo -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#81842 Forward-Port-Of: odoo/odoo#81793
**Description of the issue/feature this PR addresses:** **Current behavior before PR:** An error occurred when creating stock picking type from an xml file that does not have a company **Desired behavior after PR is merged:** Created stock picking type from an xml file that does not have a company -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82008
Original PR description
**Description of the issue/feature this PR addresses:** **Current behavior before PR:** An error occurred when creating stock picking type from an xml file that does not have a company **Desired behavior after PR is merged:** Created stock picking type from an xml file that does not have a company -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82008
This PR: 1. Allows exporting the FEC without any VAT number. Indeed, a company can have to submit its FEC without being submitted to VAT regulation. 2. Allows non french companies to export FEC file. 3. The FEC now includes the journal items == 0 and/or journal entries which total is 0. Initially, french tax administration rejected the journal items which balance is 0. But after several requests from tax payers, they agreed because they prefer continuous sequences and some tax payers
Original PR description
This PR: 1. Allows exporting the FEC without any VAT number. Indeed, a company can have to submit its FEC without being submitted to VAT regulation. 2. Allows non french companies to export FEC file. 3. The FEC now includes the journal items == 0 and/or journal entries which total is 0. Initially, french tax administration rejected the journal items which balance is 0. But after several requests from tax payers, they agreed because they prefer continuous sequences and some tax payers post entries which total amount is 0. task-2717676 Forward-Port-Of: odoo/odoo#82406 Forward-Port-Of: odoo/odoo#81923
Step to reproduce: - Two internal users, A and B - As A, create a calendar event and set its privacy to private - As B, display everybody's calendar - Double click on the private event created by A - Click on save Current Behaviour: - True name is shown as part of the error Behaviour After PR: - For private event not related to the users, 'Busy' or its translation is shown to the user opw-2723904 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/su
Original PR description
Step to reproduce: - Two internal users, A and B - As A, create a calendar event and set its privacy to private - As B, display everybody's calendar - Double click on the private event created by A - Click on save Current Behaviour: - True name is shown as part of the error Behaviour After PR: - For private event not related to the users, 'Busy' or its translation is shown to the user opw-2723904 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82378 Forward-Port-Of: odoo/odoo#82014
Steps to reproduce : - Create an invoice for a customer (ex $100) - Create a payment for the invoice (ex $100) - create a bank statement with a line item for $200 - In reconciliation, add either another journal entry or a manual operation without partner to reconcile the remaining $100 Issue: All lines receive the partner from the invoice opw-2691196 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged:
Original PR description
Steps to reproduce : - Create an invoice for a customer (ex $100) - Create a payment for the invoice (ex $100) - create a bank statement with a line item for $200 - In reconciliation, add either another journal entry or a manual operation without partner to reconcile the remaining $100 Issue: All lines receive the partner from the invoice opw-2691196 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-pr Forward-Port-Of: odoo/odoo#82505 Forward-Port-Of: odoo/odoo#82322
### Current behavior When the download is finished, the wizard stay open ### Expected behavior Wizard should automatically close after downloading ### Reason The key `close_on_report_download` wasn't defined during new wizard implementation ( commit d9f45ba6941939b3d4b40beb5abbc330be84d695 ) Linked PR : https://github.com/odoo/enterprise/pull/22826 OPW-2710611 Forward-Port-Of: odoo/odoo#81243
Original PR description
### Current behavior When the download is finished, the wizard stay open ### Expected behavior Wizard should automatically close after downloading ### Reason The key `close_on_report_download` wasn't defined during new wizard implementation ( commit d9f45ba6941939b3d4b40beb5abbc330be84d695 ) Linked PR : https://github.com/odoo/enterprise/pull/22826 OPW-2710611 Forward-Port-Of: odoo/odoo#81243
Current behavior: When using a pricelist and discount, the discount wasn't applied on the price from the pricelist but on the price defined on the product. Steps to reproduce: - Create a pricelist for a products - Set the pricelist on the POS session - Open the POS session - Apply the 10% coupon code to the product. opw-2714342 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82285
Original PR description
Current behavior: When using a pricelist and discount, the discount wasn't applied on the price from the pricelist but on the price defined on the product. Steps to reproduce: - Create a pricelist for a products - Set the pricelist on the POS session - Open the POS session - Apply the 10% coupon code to the product. opw-2714342 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82285
Previously, RPCs would always receive the user-context as a keyword argument. When creating the translation layer between the old API and the new RPC service, this was overlooked, resulting in all legacy RPCs losing their user-context. This commit fixes that. Forward-Port-Of: odoo/odoo#82325
Original PR description
Previously, RPCs would always receive the user-context as a keyword argument. When creating the translation layer between the old API and the new RPC service, this was overlooked, resulting in all legacy RPCs losing their user-context. This commit fixes that. Forward-Port-Of: odoo/odoo#82325
Speedup `basic_model._updateRecordsData` for many2many fields such as `fetchmail.server.message_ids` and `mail_channel.channel_message_ids`. Calling `_.findWhere(values)` inside two nested `_.each` calls can be quite slow when the number of values is big. Remove the call to `_.findWhere` by first creating a Map res_id -> data and then calling Map.get to retrieve the data for a given res_id when making a DataPoint The issue this fix solves happens in v13, v14 and v15 (master wasn'
Original PR description
Speedup `basic_model._updateRecordsData` for many2many fields such as `fetchmail.server.message_ids` and `mail_channel.channel_message_ids`. Calling `_.findWhere(values)` inside two nested `_.each`…
Speedup `basic_model._updateRecordsData` for many2many fields such as `fetchmail.server.message_ids` and `mail_channel.channel_message_ids`. Calling `_.findWhere(values)` inside two nested `_.each` calls can be quite slow when the number of values is big. Remove the call to `_.findWhere` by first creating a Map res_id -> data and then calling Map.get to retrieve the data for a given res_id when making a DataPoint The issue this fix solves happens in v13, v14 and v15 (master wasn't tested). #### speedup Time reported (on Chrome) for loading the fetchmail.server tree view. The search_read call is included. | len(message_ids) | Before PR | After PR | |:-----------------:|:----------:|:---------:| | 5000 | 1.4s | 291ms | | 10 000 | 4.6.s | 475ms | | 20 000 | 18s | 860ms | | 200 000 | 26m | 7s | -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#81067
This PR fixes various bugs in seas-15.1 for the services apps. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82068
Original PR description
This PR fixes various bugs in seas-15.1 for the services apps. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82068
Current behavior: When product name is too long and need to be splitted on PoS receipt, the tax is inserted between the two lines of the product name Steps to reproduce: - Install SA modules - Change company in SA - Create a product with a very long name - Try to buy it on the PoS - The receipt is not correctly former opw-2731585 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82453
Original PR description
Current behavior: When product name is too long and need to be splitted on PoS receipt, the tax is inserted between the two lines of the product name Steps to reproduce: - Install SA modules - Change company in SA - Create a product with a very long name - Try to buy it on the PoS - The receipt is not correctly former opw-2731585 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82453
This PR aims to add a link tool in the editor for images. Once an image is selected, a new button is present next to the "Replace" button. This button displays the new tool. With this tool, you can specify a URL and choose whether the link should open in another page or in the current page. If the URL is an internal link to the website, suggestions and a selection of available anchors will appear. This new tool is very similar to the existing one for texts. Task-2666467 -- I confi
Original PR description
This PR aims to add a link tool in the editor for images. Once an image is selected, a new button is present next to the "Replace" button. This button displays the new tool. With this tool, you can specify a URL and choose whether the link should open in another page or in the current page. If the URL is an internal link to the website, suggestions and a selection of available anchors will appear. This new tool is very similar to the existing one for texts. Task-2666467 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#79295
Unlinking a workorder which was in the middle of a chain of workorder created two subchains which both created a product when reaching their new respective ends. The issue was solve by assuring that when we a link is remove from a workorder chain, their adjacent workorders are linked together using "next_workorder_id". opw-2669514 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#80089 Forward-Port-Of: odoo/odoo#79251
Original PR description
Unlinking a workorder which was in the middle of a chain of workorder created two subchains which both created a product when reaching their new respective ends. The issue was solve by assuring that when we a link is remove from a workorder chain, their adjacent workorders are linked together using "next_workorder_id". opw-2669514 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#80089 Forward-Port-Of: odoo/odoo#79251
Suppose a tracked-by-usn and consumed product returns in the stock thanks to a repair order. Using again this component in a new manufacturing order will raise an error To reproduce the issue: 1. In Settings, enable "Storage Locations" 2. Create two products P_finished, P_compo - Storable - P_comp tracked by USN 3. Update the quantity of P_compo: - WH/Stock: 1 x Lot01 4. Create a manufacturing order MO: - Product: P_finished - Components: - 1 x P_compo
Original PR description
Suppose a tracked-by-usn and consumed product returns in the stock thanks to a repair order. Using again this component in a new manufacturing order will raise an error To reproduce the issue: 1. In…
Suppose a tracked-by-usn and consumed product returns in the stock
thanks to a repair order. Using again this component in a new
manufacturing order will raise an error
To reproduce the issue:
1. In Settings, enable "Storage Locations"
2. Create two products P_finished, P_compo
- Storable
- P_comp tracked by USN
3. Update the quantity of P_compo:
- WH/Stock: 1 x Lot01
4. Create a manufacturing order MO:
- Product: P_finished
- Components:
- 1 x P_compo
5. Confirm, Check availability and Mark MO as Done
- (Lot01 should be consumed)
6. Create a repair order RO:
- Product: P_finished
- Parts:
- Type: Remove
- Product: P_compo
- Lot: Lot01
- Destination Location: WH/Stock
7. Confirm RO, Start RO, End RO
- (There should be one Lot01 available in stock)
8. Repeat 4-5
Error: When checking the availability on the MO, Lot01 is correctly
reserved. However, when marking the second MO as done, a User Error is
displayed: "The serial number Lot01 used for component P_compo has
already been consumed" although this lot should be available
When checking the uniqueness of the lot, nothing includes the products
back in stock thanks to the repair orders.
OPW-2701668
Forward-Port-Of: odoo/odoo#82455
Forward-Port-Of: odoo/odoo#82037Current behavior: When cancelling an expense payment, the expense state was not modified and was still 'paid' when it should be 'refused'. Steps to reproduce: - Create an expense and post the expense and register a payment for the expense. - Then go the vendor payments and cancel the associated vendor payment. - The expense still shows as paid in the expenses page. opw-2711383 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of:
Original PR description
Current behavior: When cancelling an expense payment, the expense state was not modified and was still 'paid' when it should be 'refused'. Steps to reproduce: - Create an expense and post the expense and register a payment for the expense. - Then go the vendor payments and cancel the associated vendor payment. - The expense still shows as paid in the expenses page. opw-2711383 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82440 Forward-Port-Of: odoo/odoo#82025
Issue ----- The module lunch generate ir.cron and thus server action when lunch.supplier and lunch.alert are created. Those server action are counted as customization by cloc and thus customer should pays maintenance fee just for the installation of data_merge module Cron are deleted when supplier and alert are deleted but the server action remains. Solution -------- Avoid to count server action generated by lunch by adding a xml_id from lunch mo
Original PR description
Issue ----- The module lunch generate ir.cron and thus server action when lunch.supplier and lunch.alert are created. Those server action are counted as customization by cloc and thus customer should pays maintenance fee just for the installation of data_merge module Cron are deleted when supplier and alert are deleted but the server action remains. Solution -------- Avoid to count server action generated by lunch by adding a xml_id from lunch module to those SA Delete server actions as well Fixes: [Ticket #2718351](https://www.odoo.com/web#id=2718351&cids=1&model=project.task&view_type=form) -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#81853
Forward-Port-Of: odoo/odoo#82491 Forward-Port-Of: odoo/odoo#82396
Original PR description
Forward-Port-Of: odoo/odoo#82491 Forward-Port-Of: odoo/odoo#82396
Description of the issue/feature this PR addresses: See https://github.com/odoo/odoo/pull/62081 for the backstory & extra context Current behavior before PR: Before this commit it is technically possible for "return_picking_line" to be a recordset instead of a record. Desired behavior after PR is merged: By taking the first element ([0]) we're sure it is always a record instead of a recordset to work with. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.
Original PR description
Description of the issue/feature this PR addresses: See https://github.com/odoo/odoo/pull/62081 for the backstory & extra context Current behavior before PR: Before this commit it is technically possible for "return_picking_line" to be a recordset instead of a record. Desired behavior after PR is merged: By taking the first element ([0]) we're sure it is always a record instead of a recordset to work with. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#82557 Forward-Port-Of: odoo/odoo#82339
Loan (LSE): hey (wonderful) JS team! May I have your opinion quickly on this bug ? https://www.odoo.com/web#id=2698505&menu_id=4720&cids=1&action=3531&model=project.task&view_type=form To reproduce (fresh V15) : https://drive.google.com/file/d/1PxItw4cXUqkPFijXDCvWyry5S5Y1nLJb/view I'm curious to know if it is a JS issue or more an issue o Python's side 🤔 Thank you in advance! Forward-Port-Of: odoo/enterprise#23150
Original PR description
Loan (LSE): hey (wonderful) JS team! May I have your opinion quickly on this bug ? https://www.odoo.com/web#id=2698505&menu_id=4720&cids=1&action=3531&model=project.task&view_type=form To reproduce (fresh V15) : https://drive.google.com/file/d/1PxItw4cXUqkPFijXDCvWyry5S5Y1nLJb/view I'm curious to know if it is a JS issue or more an issue o Python's side 🤔 Thank you in advance! Forward-Port-Of: odoo/enterprise#23150
Steps to reproduce the bug: - Go to any MO and plan it - Go to the MOs view list - Try to filter planned MOs Problem: The planned orders don't appear when we filter them because the `planned` state was removed and replaced by the 'is_planned' boolean field, but still used opw-2723598 Forward-Port-Of: odoo/enterprise#23387
Original PR description
Steps to reproduce the bug: - Go to any MO and plan it - Go to the MOs view list - Try to filter planned MOs Problem: The planned orders don't appear when we filter them because the `planned` state was removed and replaced by the 'is_planned' boolean field, but still used opw-2723598 Forward-Port-Of: odoo/enterprise#23387
Before this PR merged: - kanban_state of helpdesk ticket copied when user duplicates a ticket. - ticket id showing in breadcrumb-item of portal view of helpdesk. After this PR merged: - kanban_state of helpdesk ticket should not be copied when user duplicate a ticket. - show name of ticket instead of id in breadcrumb-item of ticket in portal view. task-2722863 Forward-Port-Of: odoo/enterprise#23177
Original PR description
Before this PR merged: - kanban_state of helpdesk ticket copied when user duplicates a ticket. - ticket id showing in breadcrumb-item of portal view of helpdesk. After this PR merged: - kanban_state of helpdesk ticket should not be copied when user duplicate a ticket. - show name of ticket instead of id in breadcrumb-item of ticket in portal view. task-2722863 Forward-Port-Of: odoo/enterprise#23177
Forward-Port-Of: odoo/enterprise#23070
Original PR description
Forward-Port-Of: odoo/enterprise#23070
### Current behavior Got a `Server Error` when trying to print labels for a Product (with Tracking set to No Tracking) during a work order ### Steps to reproduce - Install Manufacturing - Enable Work Orders in Settings > Manufacturing - Create a Work Order with a Product (with Tracking set to `No Tracking`) - Add a step in Assembly operation to print labels - Follow the work order flow and try to print labels ### Reason Previous records have been replaced by a wizard ( commit : [d9f
Original PR description
### Current behavior Got a `Server Error` when trying to print labels for a Product (with Tracking set to No Tracking) during a work order ### Steps to reproduce - Install Manufacturing - Enable Work Orders in Settings > Manufacturing - Create a Work Order with a Product (with Tracking set to `No Tracking`) - Add a step in Assembly operation to print labels - Follow the work order flow and try to print labels ### Reason Previous records have been replaced by a wizard ( commit : [d9f45ba6941939b3d4b40beb5abbc330be84d695](https://github.com/odoo/odoo/commit/d9f45ba6941939b3d4b40beb5abbc330be84d695) ) Linked PR : https://github.com/odoo/odoo/pull/81243 OPW-2710611 Forward-Port-Of: odoo/enterprise#22826
A user associated to a task's slot can have more than one resource linked. We should take only the first resource found otherwise we will face a traceback when setting the resource on the slot. opw-2715635 Forward-Port-Of: odoo/enterprise#23068
Original PR description
A user associated to a task's slot can have more than one resource linked. We should take only the first resource found otherwise we will face a traceback when setting the resource on the slot. opw-2715635 Forward-Port-Of: odoo/enterprise#23068
This PR purpose is to address several Field Service Bugs among which: - correctly compute serial_missing - fix user_id into user_ids in project.task write - prevent unwanted message posts - handle preventing message post in right def - add ensure_one on `fsm.stock.tracking` task-2714003 Forward-Port-Of: odoo/enterprise#23366 Forward-Port-Of: odoo/enterprise#22899
Original PR description
This PR purpose is to address several Field Service Bugs among which:
- correctly compute serial_missing
- fix user_id into user_ids in project.task write
- prevent unwanted message posts
- handle preventing message post in right def
- add ensure_one on `fsm.stock.tracking`
task-2714003
Forward-Port-Of: odoo/enterprise#23366
Forward-Port-Of: odoo/enterprise#22899Previously, calling _updateSidebar twice in quick succession could result in a crash. This was caused by the fact that the sidebar is instantiated and stored on "this", then it is appended to a fragment, which is asynchronous. After the sidebar has been appended to the fragment, the code attempts to append it to the document, but it does so by reading "this.sidebar" which may not be the same sidebar that was appended if another call to _updateSidebar was madei, causing the assumption that
Original PR description
Previously, calling _updateSidebar twice in quick succession could result in a crash. This was caused by the fact that the sidebar is instantiated and stored on "this", then it is appended to a fragment, which is asynchronous. After the sidebar has been appended to the fragment, the code attempts to append it to the document, but it does so by reading "this.sidebar" which may not be the same sidebar that was appended if another call to _updateSidebar was madei, causing the assumption that the sidebar has an $el to be wrong. This commit fixes that by capturing the sidebar that was actually appended in the closure of the continuation, and uses it instead of going through self. Forward-Port-Of: odoo/enterprise#23314
The filter 'Open Time (hours)' throws an error when applied Steps to reproduce: 1. Install the Helpdesk app 2. Go to Helpdesk -> Tickets -> All Tickets 3. Add the custom filter 'Open Time (hours)' is equal to 0 4. An error is raised when applying the filter Solution: Repair the call to 'relativedelta' OPW-2716616 Forward-Port-Of: odoo/enterprise#23341
Original PR description
The filter 'Open Time (hours)' throws an error when applied Steps to reproduce: 1. Install the Helpdesk app 2. Go to Helpdesk -> Tickets -> All Tickets 3. Add the custom filter 'Open Time (hours)' is equal to 0 4. An error is raised when applying the filter Solution: Repair the call to 'relativedelta' OPW-2716616 Forward-Port-Of: odoo/enterprise#23341
The intrastat report l10n_nl_intrastat provides the 'export (cbs)' button using the function _get_report_country_code. However _get_report_country_code is returning none, and since the button is provided based on this function, the button is not appearing. When the report is being used by a dutch company, the code should be 'NL'. The function _get_report_country_code is inherited from account.report on the account.intrastat.report model. This fix defines the function _get_report_country_code
Original PR description
The intrastat report l10n_nl_intrastat provides the 'export (cbs)' button using the function _get_report_country_code. However _get_report_country_code is returning none, and since the button is provided based on this function, the button is not appearing. When the report is being used by a dutch company, the code should be 'NL'. The function _get_report_country_code is inherited from account.report on the account.intrastat.report model. This fix defines the function _get_report_country_code on the account.intrastat.report model, so that a usable country code is returned, and can be used in the dependent modules (such as l10n_nl_intrastat). task-id: 2728182 Forward-Port-Of: odoo/enterprise#23262
Steps : - Install helpdesk_sale. - Helpdesk > any Team > Create a ticket : - Customer Name : xxx - Email : yyy - Phone : zzz - Customer : aaa > Create and Edit... Issue : - Name, Email and Phone are not on the 'create partner' form. Cause : - Context, containing those informations, is overridden by helpdesk_sale's form view, so they're lost. Fix : - Append the new context to the old one. opw-2726443 Forward-Port-Of: odoo/enterprise#23310
Original PR description
Steps : - Install helpdesk_sale. - Helpdesk > any Team > Create a ticket : - Customer Name : xxx - Email : yyy - Phone : zzz - Customer : aaa > Create and Edit... Issue : - Name, Email and Phone are not on the 'create partner' form. Cause : - Context, containing those informations, is overridden by helpdesk_sale's form view, so they're lost. Fix : - Append the new context to the old one. opw-2726443 Forward-Port-Of: odoo/enterprise#23310