Tuesday, April 2, 2024
23 changes · saas-17.2
Resolved issues and error corrections
This update tidies how the website editor manages link preview behavior and event cleanup. It reduces the risk of editor actions interfering with other page behavior, helping keep editing more reliable without changing visible features.
Original PR description
In preparation of https://github.com/odoo/odoo/pull/98429
This fixes an internal test issue affecting analytic reporting when accounting permissions are present. It ensures the test uses the right access group when available, helping keep validation reliable without changing normal user behavior.
Original PR description
The fields debit and credit are shown in analytic. They are hidden when account is installed if you don't have the group, which is the default. When account_accountant is installed, then the group is given by default. To fix the test on debit and credit, we just give the group if it exists. Linked to runbot error 61019 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an internal timing issue that could make live chat-related automated tests fail unpredictably. It helps maintain confidence in the quality checks without changing how users experience the product.
Original PR description
missing last_interest_dt of channel member can lead to unwanted unpinned channel in test due to race condition. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change removes a duplicate Inventory page path that could cause errors when users refreshed the page or shared a link. It also adds an extra check to prevent similar duplicate paths from being created in the future, improving navigation reliability.
Original PR description
Since [1], a duplicate path `inventory` was introduced, this leads to errors when reloading the page, or when a URL is shared. Normally, duplicated path should be impossible due to the unique SQL constraint, added in [2]. But, the tables ir_act_window, ir_act_report_xml, ir_act_url, ir_act_server and ir_act_client inherit from table ir_actions (see base_data.sql). And a big limitation of the postgresql inheritance feature is that unique indexes only apply to the single tables, and not across all the tables, for more information see [3]. This commit, removes the duplicated path, and add a python api constraint, to check the uniqueness of the path. [1] https://github.com/odoo/odoo/commit/814d2dc6ac5c06403ae5d2133d572a6b01edc1c0 [2] https://github.com/odoo/odoo/commit/c63d14a0485a553b74a8457aee158384e9ae6d3f [3] https://www.postgresql.org/docs/14/ddl-inherit.html#DDL-INHERIT-CAVEATS
Miscellaneous changes
when you install point_of_sale and after install l10n_* then it's not auto install l10n_*_pos after this commit it's installed --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153385
Original PR description
when you install point_of_sale and after install l10n_* then it's not auto install l10n_*_pos after this commit it's installed --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#153385
Fix a bug introduced by 67901a4429c69fbba96c32af5d8f58aff54f0be5 When an expense is submitted and for the steps after, there is no need to recompute the product_cost as it may be confusing or generate discrepancies with the account move by changing the totals. task-3580004 Forward-Port-Of: odoo/odoo#155487 Forward-Port-Of: odoo/odoo#141400
Original PR description
Fix a bug introduced by 67901a4429c69fbba96c32af5d8f58aff54f0be5 When an expense is submitted and for the steps after, there is no need to recompute the product_cost as it may be confusing or generate discrepancies with the account move by changing the totals. task-3580004 Forward-Port-Of: odoo/odoo#155487 Forward-Port-Of: odoo/odoo#141400
Follow-up of [1]. Commit [2] refactored the way we check if an option update needs to trigger a page reload: if the option is marked as a page option (`data-page-options="true"` on the option's main `<div>`), then it will reload whatever the method used if there is a `reload` parameter. Note that this `reload` parameter does not make much sense anymore, it should be reviewed/removed in master. Problem: [2] made a mistake in its implementation, pushing an array instead of concatenating it. Thi
Original PR description
Follow-up of [1]. Commit [2] refactored the way we check if an option update needs to trigger a page reload: if the option is marked as a page option (`data-page-options="true"` on the option's main…
Follow-up of [1]. Commit [2] refactored the way we check if an option update needs to trigger a page reload: if the option is marked as a page option (`data-page-options="true"` on the option's main `<div>`), then it will reload whatever the method used if there is a `reload` parameter. Note that this `reload` parameter does not make much sense anymore, it should be reviewed/removed in master. Problem: [2] made a mistake in its implementation, pushing an array instead of concatenating it. This worked by chance, as instead of asking "does this option method requires a reload", it was asking "does this set of option methods requires a reload"... and in that case, the code is fallbacking on retrieving common parameters, which `reload` likely is without custo. This could have been fixed in master only. Given the very low risk of breaking anything critical updating this code, it was chosen to prevent a potential crash in custo (which could occur as we give a wrong parameter type to a main method) and allow overrides to make `reload` a specific parameter for a specific method without the need of `data-reload` added in the DOM. [1]: https://github.com/odoo/odoo/commit/556ae457b02e9c077d09fa9c3f9f1e6c6e26b345 [2]: https://github.com/odoo/odoo/commit/03c552690b15cbf2e7d6b7812386ac64042219af#diff-70f7fe38208aa7fe678f18e329d3c11b70065dee723921352b6005774e8bab53R456 Forward-Port-Of: odoo/odoo#159640
The numpad in the PoS was sometimes handling events when it was not supposed to, leading to unexpected behavior. This was due to the fact we did not check if there was a buffer holder for the numpad before triggering the event handler. The check is now done by adding a check in the _onKeyboardInput method. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159619
Original PR description
The numpad in the PoS was sometimes handling events when it was not supposed to, leading to unexpected behavior. This was due to the fact we did not check if there was a buffer holder for the numpad before triggering the event handler. The check is now done by adding a check in the _onKeyboardInput method. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159619
## Before this commit: Modifying a location from/to a scrap location should be restricted when there are move lines with reservation. However, starting from Odoo 17, the quantity field indicates the reserved quantity only when the move line's state is different from done. ## After this commit: Only check if there are reservation lines (move lines not in done) in the location when changing from/to a scrap location to match the behaviour before Odoo 17. opw-3815275 Forward-Port-Of: o
Original PR description
## Before this commit: Modifying a location from/to a scrap location should be restricted when there are move lines with reservation. However, starting from Odoo 17, the quantity field indicates the reserved quantity only when the move line's state is different from done. ## After this commit: Only check if there are reservation lines (move lines not in done) in the location when changing from/to a scrap location to match the behaviour before Odoo 17. opw-3815275 Forward-Port-Of: odoo/odoo#159376
The `videocall_location` was accidentally unset when synch from Google, which is not expected ### Step to reproduce 1. From from calendar view of calendar.event, click to open the form view 2. click `Add Odoo meeting` to set discuss videocall location 3. save to create new calendar.event record 4. wait for synch to be done 5. recheck the field `videocall_location` to find its value False ### After this PR The discuss videocall location is no longer overriden with False --- I
Original PR description
The `videocall_location` was accidentally unset when synch from Google, which is not expected ### Step to reproduce 1. From from calendar view of calendar.event, click to open the form view 2. click `Add Odoo meeting` to set discuss videocall location 3. save to create new calendar.event record 4. wait for synch to be done 5. recheck the field `videocall_location` to find its value False ### After this PR The discuss videocall location is no longer overriden with False --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157939
When a background video and an animation coming from the left or the right are on a page at the same time, there sometimes is a horizontal scrollbar that appears for no reason. It can happen at any screen size but more frequently near 1000px and below. This issue seems to happen on Chrome only. It seems to be a race condition between the calls to the `_adjustIframe` function in the `backgroundVideo` public widget. Indeed, this function is called when the video is added in the DOM and each tim
Original PR description
When a background video and an animation coming from the left or the right are on a page at the same time, there sometimes is a horizontal scrollbar that appears for no reason. It can happen at any…
When a background video and an animation coming from the left or the right are on a page at the same time, there sometimes is a horizontal scrollbar that appears for no reason. It can happen at any screen size but more frequently near 1000px and below. This issue seems to happen on Chrome only. It seems to be a race condition between the calls to the `_adjustIframe` function in the `backgroundVideo` public widget. Indeed, this function is called when the video is added in the DOM and each time the screen is resized. When an animation is played, it triggers a resize of the window when it is over, which therefore calls `_adjustIframe`. When the animation comes from the right/left of the screen, the animated element is translated from outside the page; the page width is therefore bigger but its overflow is prevented. When the video is loaded, the loading placeholder is removed. Depending on the time it takes to it to fully load, if the animation ends before it, the iframe is adjusted before the placeholder removal, leaving the iframe wrongly adjusted when it is finally removed. Note that it is hypothetical, as everything refreshes when inspecting the DOM, making the scrollbar disappear. But this proves that no element is really overflowing, so it seems to be a value refreshing issue. This commit adds a call to `_adjustIframe` when the video has loaded, to make sure its dimensions are recomputed/refreshed, preventing the scrollbar to appear. Steps to reproduce: - Drop a "Text-Image" snippet. - Set a background video to it. - Add the "Fade In-Right" animation to the image column. - Save and then resize down the screen to 1000px or below. - Refresh. => When the video is loaded, a horizontal scrollbar may appear. If not, refresh until it does. opw-3487117 Forward-Port-Of: odoo/odoo#159193
In Settings>Inventory>Operations enable "Batch Transfers" Create a [NonTrackedProd] product: - Product Type: Storable Product - Tracking: No tracking Create a [TrackedProd] product: - Product Type: Storable Product - Tracking: By Lot Create and confirm two POs with: - Prod [NonTrackedProd] qty 1 - Prod [TrackedProd] qty 1 Open Barcode Scanning app Select "Batch Transfers" Create a new batch with the incoming transfers from the POs Set only the [NonTrackedProd] lines as done an
Original PR description
In Settings>Inventory>Operations enable "Batch Transfers" Create a [NonTrackedProd] product: - Product Type: Storable Product - Tracking: No tracking Create a [TrackedProd] product: - Product Type: Storable Product - Tracking: By Lot Create and confirm two POs with: - Prod [NonTrackedProd] qty 1 - Prod [TrackedProd] qty 1 Open Barcode Scanning app Select "Batch Transfers" Create a new batch with the incoming transfers from the POs Set only the [NonTrackedProd] lines as done and validate Issue: Error will block validation "You need to supply a Lot/Serial number for products" The system should let the user validate the operation and create a backorder instead of blocking the user opw-3777701 Forward-Port-Of: odoo/odoo#158330
Activate "Reception Report" feature Create a SO for a storable product, confirm. Create a PO for the same product. Confirm the PO and check the delivery, open the "Allocation" report Assign the Product to the delivery of the SO. Go back to the PO and cancel the order, delivery of the SO will be cancelled. Issue: Currently the user cannot modify this behavior as the `propagate_cancel` checkbox is unaccessible opw-3733512 Forward-Port-Of: odoo/odoo#159782 Forward-Port-Of: odoo/odoo#15
Original PR description
Activate "Reception Report" feature Create a SO for a storable product, confirm. Create a PO for the same product. Confirm the PO and check the delivery, open the "Allocation" report Assign the Product to the delivery of the SO. Go back to the PO and cancel the order, delivery of the SO will be cancelled. Issue: Currently the user cannot modify this behavior as the `propagate_cancel` checkbox is unaccessible opw-3733512 Forward-Port-Of: odoo/odoo#159782 Forward-Port-Of: odoo/odoo#158587
**Current behavior before PR:** An extra 'on' indicator was incorrectly displayed in chatter while creating a new record, leading to UI display issues. **Desired behavior after PR is merged:** Resolved the issue where the extra 'on' indicator was not properly displayed during new record creation. Task-3826569 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159606
Original PR description
**Current behavior before PR:** An extra 'on' indicator was incorrectly displayed in chatter while creating a new record, leading to UI display issues. **Desired behavior after PR is merged:** Resolved the issue where the extra 'on' indicator was not properly displayed during new record creation. Task-3826569 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159606
Versions: ------------ saas-16.4 Steps to Reproduce: --------------- - open project - create a project and allow timesheet - open timesheet and change encoding method to days/half days - create a task in the project and set allocated time - open portal view of the task Issue: ------------ - There is no label for allocated time. Cause: ---------- - Condition was added in this commit 82a85d42c86cffcd6e96b0712c8ff9a221f25d87 to show the label if encoding method is not in days.
Original PR description
Versions: ------------ saas-16.4 Steps to Reproduce: --------------- - open project - create a project and allow timesheet - open timesheet and change encoding method to days/half days - create a task in the project and set allocated time - open portal view of the task Issue: ------------ - There is no label for allocated time. Cause: ---------- - Condition was added in this commit 82a85d42c86cffcd6e96b0712c8ff9a221f25d87 to show the label if encoding method is not in days. Fix: -------- - We apply the label for both encoding method of timesheet. task-3761269 Forward-Port-Of: odoo/odoo#159939 Forward-Port-Of: odoo/odoo#156449
Current behavior: After this refactor https://github.com/odoo/odoo/pull/142566 the use_proxy became undefined. And so the pos is not able to connect to the proxy and use the printer connected to the IoT Box. Steps to reproduce: - Install the PoS IoT module - Configure the IoT Box with a printer - Select the printer from the IoT Box in the PoS configuration - Try to print a receipt - Nothing happens, it only try to print via the browser print popups Note: There was also an issue in t
Original PR description
Current behavior: After this refactor https://github.com/odoo/odoo/pull/142566 the use_proxy became undefined. And so the pos is not able to connect to the proxy and use the printer connected to the IoT Box. Steps to reproduce: - Install the PoS IoT module - Configure the IoT Box with a printer - Select the printer from the IoT Box in the PoS configuration - Try to print a receipt - Nothing happens, it only try to print via the browser print popups Note: There was also an issue in the StatusLoop that was not correctly getting the ids of the devices. This was fixed in the same commit. opw-3800437 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159298
When using the "Conditional Visibility" option for blocks that are inside a popup, you can end up with an empty popup. This was has been a limitation of the Conditional Visibility option for a while, but there is a real use case for wanting to only show a popup under certain circumstances. Adapting the option to take into account Popup seemed not stable enough as a lot of code is responsible for showing and hiding content that can be invisible, in edit mode. Therefore, a simpler solution w
Original PR description
When using the "Conditional Visibility" option for blocks that are inside a popup, you can end up with an empty popup. This was has been a limitation of the Conditional Visibility option for a while, but there is a real use case for wanting to only show a popup under certain circumstances. Adapting the option to take into account Popup seemed not stable enough as a lot of code is responsible for showing and hiding content that can be invisible, in edit mode. Therefore, a simpler solution was found. If the all children of the .oe_structure of a popup are in conditional visibility and are all hidden, then the popup will remain hidden. This change is done starting saas-16.3 as this is the version the OPW was opened with. opw-3734501 Forward-Port-Of: odoo/odoo#158303 Forward-Port-Of: odoo/odoo#157518
Versions: --------- saas-16.3 Steps to Reproduce: ------------- - open project - open project settings and mark task dependencies - open task Issue: ------ - The title is super far from the left. Cause: -------- - Every field have the same width. Fix: -------- - We fix the width of priority and state. task-3761269 Forward-Port-Of: odoo/odoo#156441
Original PR description
Versions: --------- saas-16.3 Steps to Reproduce: ------------- - open project - open project settings and mark task dependencies - open task Issue: ------ - The title is super far from the left. Cause: -------- - Every field have the same width. Fix: -------- - We fix the width of priority and state. task-3761269 Forward-Port-Of: odoo/odoo#156441
Description of the issue/feature this PR addresses: Current behavior before PR: formatsSpecs object isn't heritable, which prevents developers from adding new options to the editor --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159293 Forward-Port-Of: odoo/odoo#158703
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: formatsSpecs object isn't heritable, which prevents developers from adding new options to the editor --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159293 Forward-Port-Of: odoo/odoo#158703
Description of the issue/feature this PR addresses: In case we want to search on other fields than name or default_code, or eventually on the descriptions, we need to reverse the domain that is built using AND and OR operators from osv.expression which is something we would prefer to avoid anytime. By adding hooks to add custom domains, it allows to search on whatever extra fields we would like to search on. Current behavior before PR: Impossible to search efficiently on specific fie
Original PR description
Description of the issue/feature this PR addresses: In case we want to search on other fields than name or default_code, or eventually on the descriptions, we need to reverse the domain that is built using AND and OR operators from osv.expression which is something we would prefer to avoid anytime. By adding hooks to add custom domains, it allows to search on whatever extra fields we would like to search on. Current behavior before PR: Impossible to search efficiently on specific fields Desired behavior after PR is merged: Easy to extend the domain to search efficiently on specific fields --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159340 Forward-Port-Of: odoo/odoo#147865
**Steps to reproduce:** **OS:** Ubuntu 20.04.4 LTS with nautilus **Browser:** Google Chrome Version 123.0.6312.58 - type /file command in knowledge - select a folder and click on open - traceback occurs **Current behavior before PR:** When a user attempts to upload a folder using /file command, the processing begins, but the folder is not uploaded because the `getDataURLFromFile` return promise is not fulfilled. Additionally, there is no indication of any warnings or errors during
Original PR description
**Steps to reproduce:** **OS:** Ubuntu 20.04.4 LTS with nautilus **Browser:** Google Chrome Version 123.0.6312.58 - type /file command in knowledge - select a folder and click on open - traceback occurs **Current behavior before PR:** When a user attempts to upload a folder using /file command, the processing begins, but the folder is not uploaded because the `getDataURLFromFile` return promise is not fulfilled. Additionally, there is no indication of any warnings or errors during the folder upload process. **Desired behavior after PR is merged:** If a user attempts to upload a folder instead of a file using the /file command, it results in an error message in the toaster notification. task-3690847 Forward-Port-Of: odoo/odoo#159755 Forward-Port-Of: odoo/odoo#151755
**Current behavior before PR:** Long user names in direct messaging search are not wrapped, leading to UI display issues. **Desired behavior after PR is merged:** Resolved the issue where long user names were not properly wrapped in direct messaging search. Now, when a user name exceeds the allotted space, it is truncated. Task-3748791 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158769
Original PR description
**Current behavior before PR:** Long user names in direct messaging search are not wrapped, leading to UI display issues. **Desired behavior after PR is merged:** Resolved the issue where long user names were not properly wrapped in direct messaging search. Now, when a user name exceeds the allotted space, it is truncated. Task-3748791 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158769
Adds Mauritius localization, includes: - Chart of accounts - Taxes - Fiscal positions - Default settings, including invoice customization. task-3631730 Forward-Port-Of: odoo/odoo#156888
Original PR description
Adds Mauritius localization, includes:
- Chart of accounts
- Taxes
- Fiscal positions
- Default settings, including invoice customization.
task-3631730
Forward-Port-Of: odoo/odoo#156888