Monday, July 15, 2024
41 changes · saas-17.4
Resolved issues and error corrections
A small typo was corrected in the password reset action wording. This improves clarity for users without changing how the password reset process works.
Original PR description
fix a small typo
This change removes an unnecessary timing-sensitive check from a Point of Sale test that could fail intermittently. It helps keep automated validation stable without changing how users operate the system.
Original PR description
The test was failing because it was trying to check if the line is to refund but sometime the test run the check to fast. We remove this check since the "Refund" button is clicked just after. So the check isn't necessary. RB error: 67873, 69032
This change corrects an internal import used by the Hong Kong payroll module. It helps prevent errors when working with Manulife MPF payroll-related functionality, improving reliability without changing business workflows.
Miscellaneous changes
Problem: The `l10n_gcc_invoice.arabic_english_invoice` report was recently updated to fix (https://github.com/odoo/odoo/pull/169267) an issue related to RTL ordering. However, this fix uses the `_lang_get_direction` method. While fine on theoriginally targeted version, in 17.2 this method was reworked into a new api `_get_data`. FW ports for 17.2+ had this older method still. Purpose: Swap `_lang_get_direction` with new `_get_data` method in report opw-4045879 Forward-Port-Of: odoo/odoo#1
Original PR description
Problem: The `l10n_gcc_invoice.arabic_english_invoice` report was recently updated to fix (https://github.com/odoo/odoo/pull/169267) an issue related to RTL ordering. However, this fix uses the `_lang_get_direction` method. While fine on theoriginally targeted version, in 17.2 this method was reworked into a new api `_get_data`. FW ports for 17.2+ had this older method still. Purpose: Swap `_lang_get_direction` with new `_get_data` method in report opw-4045879 Forward-Port-Of: odoo/odoo#172684
Description of the issue/feature this PR addresses: - In v17.0, the default value of 'analytic plan' (analytic_plan_id) has not been set in setting. - Analytic plan has config_parameter is set as "[analytic.analytic_plan_projects](https://github.com/odoo/odoo/blob/758ced91f8cb220a003a49b01e047b507f8509d7/addons/project/models/res_config_settings.py#L18-L22)" However, the default key was set different "[account.plan_projects](https://github.com/odoo/odoo/blob/758ced91f8cb220a003a49b01e047b507
Original PR description
Description of the issue/feature this PR addresses: - In v17.0, the default value of 'analytic plan' (analytic_plan_id) has not been set in setting. - Analytic plan has config_parameter is set as…
Description of the issue/feature this PR addresses: - In v17.0, the default value of 'analytic plan' (analytic_plan_id) has not been set in setting. - Analytic plan has config_parameter is set as "[analytic.analytic_plan_projects](https://github.com/odoo/odoo/blob/758ced91f8cb220a003a49b01e047b507f8509d7/addons/project/models/res_config_settings.py#L18-L22)" However, the default key was set different "[account.plan_projects](https://github.com/odoo/odoo/blob/758ced91f8cb220a003a49b01e047b507f8509d7/addons/analytic/data/analytic_data.xml#L13)" - And during the migration from v16.0 to v17.0, the default key generated in v16.0 is [removed](https://github.com/odoo/upgrade/blob/20faf7ba48595c61fc028ba1b4cf278d2c44e3cc/migrations/analytic/saas~16.5.1.1/pre-migrate.py#L10-L18) in saas~16.5 and new key will be set which this only "account.plan_projects" . - Because of the incorrect key value of 'analytic plan'(analytic_plan_id) is null. **Steps to reproduce:** - Install project module. - Go to Setting > Projects > got to Analytics section in that Analytic Plan. - Default analytic plan value is not there. **Solution:** - Set the correct key `analytic.project_plan` for the 'analytic_plan_id' field. **Current behavior in 16.0 :**  **Current behavior in 17.0 before pr:**  **Desired behavior after PR is merged:**  task-3941668 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#173099 Forward-Port-Of: odoo/odoo#172123
In a call to search_panel_select_multi_range for a many2many with a limit set and expand=False (default), 2 filterings of comodel records (more precisely records in comodel_domain) are done. First only up to L=limit records are fetched, then only those that are in the domain image are used to create values in field_range. The limit check is done after the 2 filterings. Let us write - C for the set of comodel records - F for the set of comodel records obtained by the first filtering -
Original PR description
In a call to search_panel_select_multi_range for a many2many with a limit set and expand=False (default), 2 filterings of comodel records (more precisely records in comodel_domain) are done. First…
In a call to search_panel_select_multi_range for a many2many with a
limit set and expand=False (default), 2 filterings of comodel records
(more precisely records in comodel_domain) are done. First only up to
L=limit records are fetched, then only those that are in the domain
image are used to create values in field_range. The limit check is done
after the 2 filterings.
Let us write
- C for the set of comodel records
- F for the set of comodel records obtained by the first filtering
- I fot the set of comodel records in the domain image
The code to be valid should do the check on C ⋂ I while it
does it on F ⋂ I so that 2 bad things can happen:
- #(F ⋂ I) < L but #(C ⋂ I) = #(F ⋂ I) + #((C ∖ F) ⋂ I) >= L
so that the error_msg is not returned while it should
- #(C ⋂ I) < L and #((C ∖ F) ⋂ I) >= 1
so that some records that should be shown are not
We use the fact that it is possible in 15.0 and after to use many2many
fields in read_group to make a single correct filtering, that is get C ⋂ I
and do the limit check on it.
opw-3827751
Forward-Port-Of: odoo/odoo#172963Follow-up of https://github.com/odoo/odoo/pull/154349 PR above allowed to define shadow DOM-specific overlays, which is desirable for apps that need to work in a shadow DOM like livechat from visitor's perspective. The reason for shadow DOM is to use exactly same style and behaviour of livechat like in Discuss as internal users. The shadow DOM has to sustain its good working by itself, so it also needs to deploy some required main components like overlay container. In website, there's also
Original PR description
Follow-up of https://github.com/odoo/odoo/pull/154349 PR above allowed to define shadow DOM-specific overlays, which is desirable for apps that need to work in a shadow DOM like livechat from…
Follow-up of https://github.com/odoo/odoo/pull/154349 PR above allowed to define shadow DOM-specific overlays, which is desirable for apps that need to work in a shadow DOM like livechat from visitor's perspective. The reason for shadow DOM is to use exactly same style and behaviour of livechat like in Discuss as internal users. The shadow DOM has to sustain its good working by itself, so it also needs to deploy some required main components like overlay container. In website, there's also an overlay container, and since they share the same stateful service (overlay_service), we do not want to display the overlay twice. So PR above solved the issue by allowing to make overlay with a provided `rootId`, which when set it contains the `id` attribute of the root node of the overlay that has to manage the overlay. This allows to clearly determine which overlay container is responsible to display the appropriate overlay. Code above was however buggy: it relies on `isVisible(overlay)`, whose computation requires `rootRef.el`. Refs' el are not determined on the 1st rendering of the overlay service. This is not a problem when the overlay container is 1st mounted without any overlay, but if it's being registered with some overlays, mounting the overlay container afterwards results in the non-showing of the overlay. The `rootRef` is important to find out the "global" root node id, i.e. the shadow DOM root id. This commit fixes the issue by rendering again overlay container after mount when there are some pre-registered overlays. Forward-Port-Of: odoo/odoo#172839 Forward-Port-Of: odoo/odoo#169264
The recent PR #171722 introduced the use of stdnum and zeep Python libraries in odoo/tools/_monkeypatches.py Now when connecting an iot box to a database Odoo never starts on it as the IoT Box Image 24_01 doesn't have these libraries. This PR adds the try/except around the imports of them and adds a check to make sure that the variables defined through these libraries exist With these try/except the IoT Box works as expected Forward-Port-Of: odoo/odoo#172887 Forward-Port-Of: odoo/odoo#
Original PR description
The recent PR #171722 introduced the use of stdnum and zeep Python libraries in odoo/tools/_monkeypatches.py Now when connecting an iot box to a database Odoo never starts on it as the IoT Box Image 24_01 doesn't have these libraries. This PR adds the try/except around the imports of them and adds a check to make sure that the variables defined through these libraries exist With these try/except the IoT Box works as expected Forward-Port-Of: odoo/odoo#172887 Forward-Port-Of: odoo/odoo#172789
Steps to reproduce: - Install Calendar and Appointment - Go to Calendar - Create a meeting with a name and click on "+ Odoo Meeting" - Copy this link and keep it on the side - Create the event and edit it - Copy the link Issues: The link doesn't match, this is because we are not sending the access token upon the creation of the meeting to the backend. This causes a new access token to be created which ends up in a new link. opw-3910706 Forward-Port-Of: odoo/odoo#169992
Original PR description
Steps to reproduce: - Install Calendar and Appointment - Go to Calendar - Create a meeting with a name and click on "+ Odoo Meeting" - Copy this link and keep it on the side - Create the event and edit it - Copy the link Issues: The link doesn't match, this is because we are not sending the access token upon the creation of the meeting to the backend. This causes a new access token to be created which ends up in a new link. opw-3910706 Forward-Port-Of: odoo/odoo#169992
### Steps to reproduce: 1. Create a product - Tracked by serial numbers - Set the weight to 2kg - Update the quantity on hands to 2 (with serials numbers) 2. Create a transfer of 2 quantities of the product 3. Open the detailed operations 5. Set the quantity done on a single line 6. Go back to the transfer and click put in pack 7. Select any package ### Before this commit: The shipping weight is 4 kg instead of 2 kg, as it takes all lines regardless of their picked state.
Original PR description
### Steps to reproduce: 1. Create a product - Tracked by serial numbers - Set the weight to 2kg - Update the quantity on hands to 2 (with serials numbers) 2. Create a transfer of 2 quantities of the product 3. Open the detailed operations 5. Set the quantity done on a single line 6. Go back to the transfer and click put in pack 7. Select any package ### Before this commit: The shipping weight is 4 kg instead of 2 kg, as it takes all lines regardless of their picked state. ### After this commit: Only the picked move lines are used to compute the shipping weight. opw-4028054 Forward-Port-Of: odoo/odoo#172790
Steps to reproduce: - Create a subcontracted bom for a product with: - Flexible consumption (with warning) - One component requiring 1 qty - Create a receipt for 10 for that product from the recorded subcontractor - Click on 'Record Component' and set: - Quantity (subcontracted product) to 3 - Done (component) to 5 - Record Production and validate the warning - Discard the wizard - Validate the picking and select 'No backorder' Issue: Once validated, the subcontracted consu
Original PR description
Steps to reproduce: - Create a subcontracted bom for a product with: - Flexible consumption (with warning) - One component requiring 1 qty - Create a receipt for 10 for that product from the recorded…
Steps to reproduce: - Create a subcontracted bom for a product with: - Flexible consumption (with warning) - One component requiring 1 qty - Create a receipt for 10 for that product from the recorded subcontractor - Click on 'Record Component' and set: - Quantity (subcontracted product) to 3 - Done (component) to 5 - Record Production and validate the warning - Discard the wizard - Validate the picking and select 'No backorder' Issue: Once validated, the subcontracted consumption will be back to 3 instead of 5. During the subcontracted move's `_action_done()`, as the move is incomplete, it will be split in two. After doing the split, the `product_uom_qty` of the initial move will be changed to its done quantity, which will trigger the update of the subcontracted demand. This will end up triggering `change_prod_qty()` of the recorded production, but to change its quantity to the same quantity. However, doing that will reset the consumption of its components to what would be expected from the bom. Instead of doing that, we can simply stop if there is no quantity to remove anymore before calling `change_prod_qty()`. opw-4032052 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172243 Forward-Port-Of: odoo/odoo#171078
This commit fixes a glitch in the animated spinner when running HOOT tests on small/mobile screen. Note: adding flex grow/shrink variants for consistency's sake. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172743
Original PR description
This commit fixes a glitch in the animated spinner when running HOOT tests on small/mobile screen. Note: adding flex grow/shrink variants for consistency's sake. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172743
In This PR: - Set Place of Supply on 'general' journals with POS sessions if the country is India and Place of Supply is not set. - Adjusted state ID computation for account moves with POS sessions. Task Id: 3935317 Forward-Port-Of: odoo/odoo#172976 Forward-Port-Of: odoo/odoo#172377
Original PR description
In This PR: - Set Place of Supply on 'general' journals with POS sessions if the country is India and Place of Supply is not set. - Adjusted state ID computation for account moves with POS sessions. Task Id: 3935317 Forward-Port-Of: odoo/odoo#172976 Forward-Port-Of: odoo/odoo#172377
The unread message banner helps users keep track of which messages they have read in a conversation. However, this does not make sense with the chat bot: the bot waits for the visitor's input at each step, so users do not need to remember where they left off when returning to the discussion. In this case, the banner is just unnecessary visual noise. This PR removes the banner when the chat bot handles the discussion with the visitor. Forward-Port-Of: odoo/odoo#173098
Original PR description
The unread message banner helps users keep track of which messages they have read in a conversation. However, this does not make sense with the chat bot: the bot waits for the visitor's input at each step, so users do not need to remember where they left off when returning to the discussion. In this case, the banner is just unnecessary visual noise. This PR removes the banner when the chat bot handles the discussion with the visitor. Forward-Port-Of: odoo/odoo#173098
Previously, seats availability check was not working properly. The check was comparing the availability of each ticket with the global amount of tickets in the registration (all tickets combined). This commit fixes the issue by comparing the availability of each ticket. In addition to that, the commit also adds an error message on the event page so that the user can see the error message when the ticket is not available. TASK-4029299 Forward-Port-Of: odoo/odoo#172990 Forward-Port-Of: o
Original PR description
Previously, seats availability check was not working properly. The check was comparing the availability of each ticket with the global amount of tickets in the registration (all tickets combined). This commit fixes the issue by comparing the availability of each ticket. In addition to that, the commit also adds an error message on the event page so that the user can see the error message when the ticket is not available. TASK-4029299 Forward-Port-Of: odoo/odoo#172990 Forward-Port-Of: odoo/odoo#171614
Before this commit, the tax assignation was not working properly when a product has multiple taxes. This commit fixes the issue by adding all taxes to the product line. Forward-Port-Of: odoo/odoo#172912
Original PR description
Before this commit, the tax assignation was not working properly when a product has multiple taxes. This commit fixes the issue by adding all taxes to the product line. Forward-Port-Of: odoo/odoo#172912
Open Bank Journal settings In 'Outgoing Payments' tab add a payment method entry: - Type: Manual - Name: [TEST] - Outstanding Payment Account: [ACCOUNT] Create an expense paid by company Create the report, select as payment method [TEST] Approve the expense and post journal entry Check the created payment Issue: Payment line is not using [ACCOUNT], but the account of the first outgoing payment line found in the Bank Journal opw-4015780 Forward-Port-Of: odoo/odoo#171892
Original PR description
Open Bank Journal settings In 'Outgoing Payments' tab add a payment method entry: - Type: Manual - Name: [TEST] - Outstanding Payment Account: [ACCOUNT] Create an expense paid by company Create the report, select as payment method [TEST] Approve the expense and post journal entry Check the created payment Issue: Payment line is not using [ACCOUNT], but the account of the first outgoing payment line found in the Bank Journal opw-4015780 Forward-Port-Of: odoo/odoo#171892
Before this commit, after searching for an article via the search button, selecting it, and completing payment, the search term persisted in the search field when starting a new order. This behavior could lead to confusion or slower workflows for cashiers. opw-4015200 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172602 Forward-Port-Of: odoo/odoo#171796
Original PR description
Before this commit, after searching for an article via the search button, selecting it, and completing payment, the search term persisted in the search field when starting a new order. This behavior could lead to confusion or slower workflows for cashiers. opw-4015200 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172602 Forward-Port-Of: odoo/odoo#171796
**Issue** From v17.2, the website_slides tour is not working because of some changes in the tour library. Commit from where I think the bug is coming https://github.com/odoo/odoo/commit/b334055c82c4350b4122e620ae76179a9fc4eaa2 and later due to the website design change another step was also failing and that should be coming this commit https://github.com/odoo/odoo/commit/80e3f53550b7ed74ac18bb09ea542c9e77c9a61d **Technical** The "Add to content" is loading before our frame is ready due t
Original PR description
**Issue** From v17.2, the website_slides tour is not working because of some changes in the tour library. Commit from where I think the bug is coming https://github.com/odoo/odoo/commit/b334055c82c4350b4122e620ae76179a9fc4eaa2 and later due to the website design change another step was also failing and that should be coming this commit https://github.com/odoo/odoo/commit/80e3f53550b7ed74ac18bb09ea542c9e77c9a61d **Technical** The "Add to content" is loading before our frame is ready due to this the position of the pointer was wrong. Due to the design change tour was not able to point the publish btn **After this PR** Now the tour is working properly. Task-3960962 Forward-Port-Of: odoo/odoo#168182
A recent fix forbade the usage of partners from other companies on a SO (see 7be39d0b2157ec53e84c730a210868e4a4a1f8d9, and the comment on the original PR). On the ecommerce, in some advanced multi-company & multi-website configuration, this led some customers to be unable to create a cart (add products to it), because their partner was restricted to another company. It was previously possible, but led to other issues later on, e.g. during the post-processing of payment transactions linked
Original PR description
A recent fix forbade the usage of partners from other companies on a SO (see 7be39d0b2157ec53e84c730a210868e4a4a1f8d9, and the comment on the original PR). On the ecommerce, in some advanced…
A recent fix forbade the usage of partners from other companies on a SO (see 7be39d0b2157ec53e84c730a210868e4a4a1f8d9, and the comment on the original PR). On the ecommerce, in some advanced multi-company & multi-website configuration, this led some customers to be unable to create a cart (add products to it), because their partner was restricted to another company. It was previously possible, but led to other issues later on, e.g. during the post-processing of payment transactions linked to the cart. Therefore, we consider it's still better to show a warning early on, but we prefer to replace the standard multi-company warning by a dedicated error message recommending the customer to have another account, or to contact the website administrator. To solve the issue for a given customer, either he should have a separate account for the given company, or no company (ID) should be set on its partner record, so that it's shared between companies. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172505 Forward-Port-Of: odoo/odoo#172101
Since 17.0 activity view now has a pager, which is not working at all. Actually there are two problems fixed in this commit - Frontend problem fixed in activity_controller.js - Backend problem fixed in mail_activity.py # First problem: Steps: - Install a module with activity view (`sale_management` for example) - Open activity view Let's say we have 4 records, at the loading of the view a request to `get_activity_data` with the following domain in the payload ``
Original PR description
Since 17.0 activity view now has a pager, which is not working at all. Actually there are two problems fixed in this commit - Frontend problem fixed in activity_controller.js - Backend problem fixed…
Since 17.0 activity view now has a pager, which is not working at all.
Actually there are two problems fixed in this commit
- Frontend problem fixed in activity_controller.js
- Backend problem fixed in mail_activity.py
# First problem:
Steps:
- Install a module with activity view (`sale_management` for example)
- Open activity view
Let's say we have 4 records, at the loading of the view a request to
`get_activity_data` with the following domain in the payload
```json
{
"domain": [
["user_id", "=", 2],
["activity_ids.active", "in", [true, false]]
]
}
```
the response contains for example
```json
{
"activity_res_ids": [
3,
19,
4,
7
]
}
```
This is correct, the problem comes if we try to "refresh" the view
with the pager, by clicking in the pager's input and press enter
(without changing anything).
Normally it will be exactly the same request as the one above.
But the domain is not the same this time
```json
{
"domain": [["user_id", "=", 2]]
}
```
Because of this `get_activity_data` returns incorrect data.
To fix this issue we have to do the same thing as here in the pager onUpdate()
https://github.com/odoo/odoo/blob/e11e3ca447fa2997b51a39cefc3457ae411ccb3c/addons/mail/static/src/views/web/activity/activity_model.js#L12
# Second problem:
When the model contains a different order than 'id' `get_activity_data`
can returns incorrect data since we don't specify `order` in `_search`
opw-[3862389](https://www.odoo.com/web#id=3862389&view_type=form&model=project.task)
Forward-Port-Of: odoo/odoo#172558
Forward-Port-Of: odoo/odoo#164713Currently the condition on `self.product_id or not self.account_id` is inside the lambda passed to `_conditional_add_to_compute`. `_conditional_add_to_compute` calls the lambda in a filtered so this condition will be evaluated for all the lines in self. As it only depends on self, i.e. not the current line, we can move it outside of the implicit for-loop. #### speedup Customer database. Calling `_inverse_product_id` increasing the cardinality of self. | self size | Before PR | After PR
Original PR description
Currently the condition on `self.product_id or not self.account_id` is inside the lambda passed to `_conditional_add_to_compute`. `_conditional_add_to_compute` calls the lambda in a filtered so this condition will be evaluated for all the lines in self. As it only depends on self, i.e. not the current line, we can move it outside of the implicit for-loop. #### speedup Customer database. Calling `_inverse_product_id` increasing the cardinality of self. | self size | Before PR | After PR | |:----------:|:---------------:|:-----------:| | 10 | 5ms | 5ms | | 100 | 14ms | 11ms | | 1000 | 271ms | 36ms | | 10000 | 28.7s | 300ms | | 50000 | 16min | 1.5s | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170934
Steps to reproduce: - install documents and inventory - create a Lot/Serial Number which is a number e.g. "89787897894984" - insert the Lot/Serial Number list in a spreadsheet - download the excel file "File > Download" => "89787897894984" is displayed as "8.97879E+13" This issue is present in all versions. But it can only be fixed very easily starting from 17.1 where we introduced the plain text format "@". The report ticket is for saas-17.2 (according to James (jale)), so we go for
Original PR description
Steps to reproduce: - install documents and inventory - create a Lot/Serial Number which is a number e.g. "89787897894984" - insert the Lot/Serial Number list in a spreadsheet - download the excel file "File > Download" => "89787897894984" is displayed as "8.97879E+13" This issue is present in all versions. But it can only be fixed very easily starting from 17.1 where we introduced the plain text format "@". The report ticket is for saas-17.2 (according to James (jale)), so we go for the easy fix and don't backport in all version. opw-4034386 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172961 Forward-Port-Of: odoo/odoo#172901
Current behavior: --- When printing a Lot/Serial Number, if the product name is too long, the content overlaps. Steps to reproduce: --- 1. Go to Inventory > Products > Lots/Serial Numbers 2. Open one Serial Number > open its product 3. Rename product with long name 4. Go back to Lots/Serial Numbers 5. Select the Serial Number with renamed product 6. Click on Print > PDF 7. Barcode is out of the box Cause of the issue: --- Caused by: https://github.com/odoo/odoo/commit/95880f4
Original PR description
Current behavior: --- When printing a Lot/Serial Number, if the product name is too long, the content overlaps. Steps to reproduce: --- 1. Go to Inventory > Products > Lots/Serial Numbers 2. Open one Serial Number > open its product 3. Rename product with long name 4. Go back to Lots/Serial Numbers 5. Select the Serial Number with renamed product 6. Click on Print > PDF 7. Barcode is out of the box Cause of the issue: --- Caused by: https://github.com/odoo/odoo/commit/95880f43c59c061f2a971ba8f41f9912139b798a div was changed to span without changing the css opw-3819349 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159137
Steps to reproduce the bug: - Create a storable product P1 with BoM: - Component: Add any component - operation: OP1 - Create a MO with P1: - Confirm it - Start the workorder and mark it as done - Come back to the dashboard > workorders list - Select the finished workorder - Try to start it Problem: The work order can be started while it is in the 'done' state. When the function `button_start` is called, we will check if we need to skip the employee check or n
Original PR description
Steps to reproduce the bug: - Create a storable product P1 with BoM: - Component: Add any component - operation: OP1 - Create a MO with P1: - Confirm it - Start the workorder and mark it as done -…
Steps to reproduce the bug:
- Create a storable product P1 with BoM:
- Component: Add any component
- operation: OP1
- Create a MO with P1:
- Confirm it
- Start the workorder and mark it as done
- Come back to the dashboard > workorders list
- Select the finished workorder
- Try to start it
Problem:
The work order can be started while it is in the 'done' state.
When the function `button_start` is called, we will check if we need to
skip the employee check or not. However, since the current user is also
an employee, we will use them:
https://github.com/odoo/enterprise/blob/c4604d8b398713898b014e6073219d6202c154c3/mrp_workorder/models/mrp_workorder.py#L258-L259
The function start_employee will then be called:
https://github.com/odoo/enterprise/blob/c4604d8b398713898b014e6073219d6202c154c3/mrp_workorder/models/mrp_workorder.py#L284-L286
The state of the work order will then be updated:
https://github.com/odoo/enterprise/blob/c4604d8b398713898b014e6073219d6202c154c3/mrp_workorder/models/mrp_workorder.py#L740"
opw-[4024904](https://www.odoo.com/web#id=4024904&view_type=form&model=project.task)
Forward-Port-Of: odoo/odoo#172587Steps to reproduce ================== Example A) - Install project - In the settings, enable subtasks - Open any project - Open any task - Switch to the "Sub-Tasks" notebook tab - Add a new line with a very long name - Save => The list overflows to the right and does not allow to scroll Example B) - Install Expenses - Go to Expense Report - Open any record - Enable every optional column - Reduce the window width => Same issue Cause of the issue ==================
Original PR description
Steps to reproduce ================== Example A) - Install project - In the settings, enable subtasks - Open any project - Open any task - Switch to the "Sub-Tasks" notebook tab - Add a new line with…
Steps to reproduce ================== Example A) - Install project - In the settings, enable subtasks - Open any project - Open any task - Switch to the "Sub-Tasks" notebook tab - Add a new line with a very long name - Save => The list overflows to the right and does not allow to scroll Example B) - Install Expenses - Go to Expense Report - Open any record - Enable every optional column - Reduce the window width => Same issue Cause of the issue ================== Without a custom widget, the classes on a one2many field are `o_field_widget `o_field_one2many`. With a custom widget, the classes are for example `o_field_widget o_field_subtasks_one2many`. This means that this [css] snippet is not applied. An attempt has been made to pass those classes in [additionalClasses], but it's missing in the examples used to reproduce this issue. In the example B, the list is wider than the allowed space, because the minimum width for a column is [92px] and if we sum them all, it is more than the total space. Those issues have become more apparent since a [fix] for Safari. The allowed width was computed with a fixed table layout, which means in most cases, it was a bit less. We can see though that even before the [fix] for Safari, there were still issues, for example in the example B. Solution ======== We add back the css removed from the [additionalClasses] fix. It was removed initially since `:has` was not supported in Firefox. It is now supported since 2023-12-19. Still, if someone has an old version, it will not fix the issue. For that, we still add the classes to the two reported widgets. --- [css]: https://github.com/odoo/odoo/blob/6abd479dcae0e206155d8d7171b62e384fa61740/addons/web/static/src/views/form/form_controller.scss#L710-L718 [additionalClasses]: https://github.com/odoo/odoo/pull/121182 [92px]: https://github.com/odoo/odoo/blob/ae5de53c3f4009d23ec556be4abb9eefd111f9b7/addons/web/static/src/views/list/list_renderer.js#L395 [fix]: https://github.com/odoo/odoo/commit/ae5de53c3f4009d23ec556be4abb9eefd111f9b7 opw-4010760 opw-4028675 Forward-Port-Of: odoo/odoo#173055 Forward-Port-Of: odoo/odoo#172926
Steps to reproduce: ------------------- - Install `Task Logs` module - Go to `Timesheets` - Create a timesheet line in the project `Research & Development` and give a description (but set no task) - Go to `Project` and open `Research & Development` project settings - Click on `Actions` button and select `Timesheets` to download report - Open the downloaded report Issue: ------ The `Task` column contains the `Description` of the timesheet, and the `Hours` value is in the `Descript
Original PR description
Steps to reproduce: ------------------- - Install `Task Logs` module - Go to `Timesheets` - Create a timesheet line in the project `Research & Development` and give a description (but set no task) - Go to `Project` and open `Research & Development` project settings - Click on `Actions` button and select `Timesheets` to download report - Open the downloaded report Issue: ------ The `Task` column contains the `Description` of the timesheet, and the `Hours` value is in the `Description` column. Cause: ------ If the timesheet line has no task and generating report only for one project, the cell value will not be created for the timesheet line. Solution: --------- If the column `Task` (or `Project`) exist, create the cell anyway. opw-3984479 Forward-Port-Of: odoo/odoo#172382
In Sweden, Peppol endpoint is required to be exactly 10 digits - no other characters are allowed. Currently, we're mapping SE peppol endpoint to be the VAT number, which contains the country code prefix and a 12-digit number. As a result, a lot of our invoices are being rejected by the Swedish access points. Let's map it to the company registry number and add a check in constrains. See: https://docs.peppol.eu/poacc/billing/3.0/codelist/eas/ no task, customer feedback --- I confirm
Original PR description
In Sweden, Peppol endpoint is required to be exactly 10 digits - no other characters are allowed. Currently, we're mapping SE peppol endpoint to be the VAT number, which contains the country code prefix and a 12-digit number. As a result, a lot of our invoices are being rejected by the Swedish access points. Let's map it to the company registry number and add a check in constrains. See: https://docs.peppol.eu/poacc/billing/3.0/codelist/eas/ no task, customer feedback --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172834 Forward-Port-Of: odoo/odoo#172756
Purpose ======= Fix the traceback appearing when creating a new mailing on mobile. Specification ============= There is no "filter" method on HTMLCollection. Converting the HTMLCollection to an array so that the filtering can be performed. related commit: 5a990d8d8ba2ec2999f84d2f1dae7aeec0f2d9b5 Task-4000990 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170836
Original PR description
Purpose ======= Fix the traceback appearing when creating a new mailing on mobile. Specification ============= There is no "filter" method on HTMLCollection. Converting the HTMLCollection to an array so that the filtering can be performed. related commit: 5a990d8d8ba2ec2999f84d2f1dae7aeec0f2d9b5 Task-4000990 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#170836
Description On a 'stock.move' with a lot of move lines (serial numbers), setting the 'stock.move' quantity to 0 could take a few minutes due to the number of unlink calls. Solution: Extract unlink call outside the "for" loop. | Move Lines | Without Fix | With Fix | | --- | --- | ---| | 10 | 321 ms | 102 ms | | 100 | 2.60 s | 108 ms | | 1.000 | 31.71 s | 380 ms | | 10.000 | 20.7 min | 1.41 s | | 100.000 | no idea | 17.47 | --- OPW-4043076 --- I confirm I have signed
Original PR description
Description On a 'stock.move' with a lot of move lines (serial numbers), setting the 'stock.move' quantity to 0 could take a few minutes due to the number of unlink calls. Solution: Extract unlink call outside the "for" loop. | Move Lines | Without Fix | With Fix | | --- | --- | ---| | 10 | 321 ms | 102 ms | | 100 | 2.60 s | 108 ms | | 1.000 | 31.71 s | 380 ms | | 10.000 | 20.7 min | 1.41 s | | 100.000 | no idea | 17.47 | --- OPW-4043076 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172750
Before this commit, searching for paid orders using the system's date format was not possible due to the lack of proper date parsing and formatting in the search fields. opw-4008489 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172670 Forward-Port-Of: odoo/odoo#171733
Original PR description
Before this commit, searching for paid orders using the system's date format was not possible due to the lack of proper date parsing and formatting in the search fields. opw-4008489 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#172670 Forward-Port-Of: odoo/odoo#171733
To reproduce the bug: - Go to website(eCommerce) - Click on the Shop tab. - Once you are in the store tab, click on the 'Edit' option to edit the website and select Categories: Left and Collapse Categories: enable. - Go to the theme, in the light and dark themes select a darker version like black or gray for the first option. - The drop down appears for categories which are not selected but when selected the up arrow disappears. This problem was due to the superposition of the .accordion
Original PR description
To reproduce the bug: - Go to website(eCommerce) - Click on the Shop tab. - Once you are in the store tab, click on the 'Edit' option to edit the website and select Categories: Left and Collapse Categories: enable. - Go to the theme, in the light and dark themes select a darker version like black or gray for the first option. - The drop down appears for categories which are not selected but when selected the up arrow disappears. This problem was due to the superposition of the .accordion-button and .bg-transparent CSS classes. When the accordion button is clicked, it switches its body and background colors, changing the body color from black to white. However, since the background becomes black, we can still see the button. The issue arises when the background is transparent; in this case, the button becomes invisible. opw-4009051 Forward-Port-Of: odoo/odoo#171009
Before this commit, there was a (xss specific) form view rule preventing the oe_title content to be displayed properly. In the task form view, in mobile, the title is a textarea, and long titles were displayed with words cut in the middle. The removed rule had been introduced a long time ago, for the kanban quick create form view [1], but it was probably a mistake. [1] https://github.com/odoo/odoo/commit/d18d08f01a589053e40c7af1fd4dd59c13aaa625 Task 4045168 Description of the issue/feat
Original PR description
Before this commit, there was a (xss specific) form view rule preventing the oe_title content to be displayed properly. In the task form view, in mobile, the title is a textarea, and long titles were displayed with words cut in the middle. The removed rule had been introduced a long time ago, for the kanban quick create form view [1], but it was probably a mistake. [1] https://github.com/odoo/odoo/commit/d18d08f01a589053e40c7af1fd4dd59c13aaa625 Task 4045168 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#172898
Impacted Version: - 15.0 and above This commit improve below features: - Update singapore default taxes opw-3679292 Forward-Port-Of: odoo/odoo#172704
Original PR description
Impacted Version: - 15.0 and above This commit improve below features: - Update singapore default taxes opw-3679292 Forward-Port-Of: odoo/odoo#172704
In this commit, we test the feature implemented in this PR: https://github.com/odoo/enterprise/pull/50383 task-3874263 Forward-Port-Of: odoo/enterprise#66367 Forward-Port-Of: odoo/enterprise#61329
Original PR description
In this commit, we test the feature implemented in this PR: https://github.com/odoo/enterprise/pull/50383 task-3874263 Forward-Port-Of: odoo/enterprise#66367 Forward-Port-Of: odoo/enterprise#61329
When opening a message thread on cells, the request fetching the messages is not properly awaited. We didn't find any actual issue with this (in prod or in tests), but this is the kind of things leading to non-deterministic tests. So we prefer to fix it. Forward-Port-Of: odoo/enterprise#66601 Forward-Port-Of: odoo/enterprise#66559
Original PR description
When opening a message thread on cells, the request fetching the messages is not properly awaited. We didn't find any actual issue with this (in prod or in tests), but this is the kind of things leading to non-deterministic tests. So we prefer to fix it. Forward-Port-Of: odoo/enterprise#66601 Forward-Port-Of: odoo/enterprise#66559
In this PR: Steps to reproduce: 1. Create a POS session. 2. Make two orders: one with an invoice and one without. Close the session. 3. Create another session, make an order, and create an invoice for an order from the previous session. Close the session. 4. Create a GST return period and generate the GSTR-1 spreadsheet. Changes made: - Fixed the retrieval of POS line details by move ID. - Added a safe access method using get to prevent key errors during HSN summary generation. Ta
Original PR description
In this PR: Steps to reproduce: 1. Create a POS session. 2. Make two orders: one with an invoice and one without. Close the session. 3. Create another session, make an order, and create an invoice for an order from the previous session. Close the session. 4. Create a GST return period and generate the GSTR-1 spreadsheet. Changes made: - Fixed the retrieval of POS line details by move ID. - Added a safe access method using get to prevent key errors during HSN summary generation. Task ID: 3935317 Forward-Port-Of: odoo/enterprise#66596 Forward-Port-Of: odoo/enterprise#66311
Before this commit, the tax assignation was not working properly when a product has multiple taxes. This commit fixes the issue by adding all taxes to the product line. Forward-Port-Of: odoo/enterprise#66568
Original PR description
Before this commit, the tax assignation was not working properly when a product has multiple taxes. This commit fixes the issue by adding all taxes to the product line. Forward-Port-Of: odoo/enterprise#66568
**Steps to reproduce the bug:** - Create a storable product P1 with BoM: - Component: Add any component - operation: OP1 - Create a MO with P1: - Confirm it - Start the workorder and mark it as done - Come back to the dashboard > workorders list - Select the finished workorder - Try to start it **Problem:** The work order can be started while it is in the 'done' state. When the function `button_start` is called, we will check if we need to skip the employee ch
Original PR description
**Steps to reproduce the bug:** - Create a storable product P1 with BoM: - Component: Add any component - operation: OP1 - Create a MO with P1: - Confirm it - Start the workorder and mark it as done…
**Steps to reproduce the bug:**
- Create a storable product P1 with BoM:
- Component: Add any component
- operation: OP1
- Create a MO with P1:
- Confirm it
- Start the workorder and mark it as done
- Come back to the dashboard > workorders list
- Select the finished workorder
- Try to start it
**Problem:**
The work order can be started while it is in the 'done' state.
When the function `button_start` is called, we will check if we need to
skip the employee check or not. However, since the current user is also
an employee, we will use them:
https://github.com/odoo/enterprise/blob/c4604d8b398713898b014e6073219d6202c154c3/mrp_workorder/models/mrp_workorder.py#L258-L259
The function start_employee will then be called:
https://github.com/odoo/enterprise/blob/c4604d8b398713898b014e6073219d6202c154c3/mrp_workorder/models/mrp_workorder.py#L284-L286
The state of the work order will then be updated:
https://github.com/odoo/enterprise/blob/c4604d8b398713898b014e6073219d6202c154c3/mrp_workorder/models/mrp_workorder.py#L740"
opw-4024904
Forward-Port-Of: odoo/enterprise#66358task-4004305 Forward-Port-Of: odoo/enterprise#65167
Original PR description
task-4004305 Forward-Port-Of: odoo/enterprise#65167
Updated description when connecting new IoT Box to db, added help buttons redirecting to Odoo documentation. Task: 4021957 Forward-Port-Of: odoo/enterprise#66298
Original PR description
Updated description when connecting new IoT Box to db, added help buttons redirecting to Odoo documentation. Task: 4021957 Forward-Port-Of: odoo/enterprise#66298