Thursday, April 4, 2024
19 changes · saas-17.1
Resolved issues and error corrections
This fix prevents entire list rows from appearing highlighted as errors when only one field has an invalid value. Users can now more easily identify the specific cell that needs correction, reducing confusion during data entry.
Original PR description
In [this commit](https://github.com/odoo/odoo/commit/a010a22f3ae6dda8c45cb6a4c36bb38f949b33e9) we introduced a new behavior on our fields having an invalid state applying a slight danger background.…
In [this commit](https://github.com/odoo/odoo/commit/a010a22f3ae6dda8c45cb6a4c36bb38f949b33e9) we introduced a new behavior on our fields having an invalid state applying a slight danger background. However in the list view table, the background of the inputs that are at the same line were displaying the error state. -> To reproduce, enter a wrong value in the list view, save and click outside of focus. This commit resets the `o-input-background-color` to it's initial value inside the list view making it fallback to transparent, not displaying the bg when line is in error state and avoiding overlapping with the background already set on the td. task-3644895 | Before | |:------:| |  | | After | | | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a warning message appearing when users share projects with tasks created using the 'blockby' feature. The issue stemmed from a technical error in how Odoo processed temporary project records, leading to incorrect data comparisons. This change ensures warnings are suppressed when sharing projects, improving user experience.
Original PR description
Steps: - Install project app. - Share a project which contains a task with blockby task. - Open that project in project sharing and keep login via admin. - Edit something in blockby page. Issue: - Warning displaying about other private project task blockby even though there are no task in blockby which from other project. Cause: - Computation on changing project task block by tree call compute of depend_on_count field but since record is just temparory save it get _origin instead of actual record and because of origin it fails to get actual id key data from dictonary. Fix: - Get id from origin if record is _origin record to properly get and set data. task-3764782
Miscellaneous changes
This commit removes an unwanted `bg-primary` class applied to the change password modal, making it weird and unconsistent regarding others modals across Odoo. ### Steps to reproduce 1. Open a database 2. Click on your avatar in the top right corner 3. Click on `Preferences` 4. Go to `Account Security` 5. Click on `Change password` The modal has a `bg-primary` class, making it look purple. | saas-16.3 | saas-16.3-fix-unconsistent-modal-design-chgo | |--------|--------| |
Original PR description
This commit removes an unwanted `bg-primary` class applied to the change password modal, making it weird and unconsistent regarding others modals across Odoo. ### Steps to reproduce 1. Open a database 2. Click on your avatar in the top right corner 3. Click on `Preferences` 4. Go to `Account Security` 5. Click on `Change password` The modal has a `bg-primary` class, making it look purple. | saas-16.3 | saas-16.3-fix-unconsistent-modal-design-chgo | |--------|--------| | <img alt="image" src="https://github.com/odoo/odoo/assets/128030743/7abc9d80-1570-4364-adda-a505721bfb55"> | <img alt="image" src="https://github.com/odoo/odoo/assets/128030743/128f4729-6e02-4105-b16a-efadac8c2ea8"> | Forward-Port-Of: odoo/odoo#159774 Forward-Port-Of: odoo/odoo#155334
- replace order summary by a dropdown like mobile view - remove 'Pay With' title - match 'Choose delivery method' style with 'Choose payment method' - make order summary sticky so that 'Pay now' is always accessible task-3741412 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154035
Original PR description
- replace order summary by a dropdown like mobile view - remove 'Pay With' title - match 'Choose delivery method' style with 'Choose payment method' - make order summary sticky so that 'Pay now' is always accessible task-3741412 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154035
This commit fixes a layout issue inside the eCommerce categories form view on mobile devices. Prior to this commit, a `.oe_left` class was applied to the content of the sheet, moving it "out of the flow", resulting in a wrong sized `form_sheet`. To fix the issue, we remove the `.oe_left` class, we apply a `.col-md-4` `.col-lg-6` to handle the width on large devices, and add a `.pe-3` to ensure that the labels are not placed right next to the image in mobile. task-3847917 | saas-16.3
Original PR description
This commit fixes a layout issue inside the eCommerce categories form view on mobile devices. Prior to this commit, a `.oe_left` class was applied to the content of the sheet, moving it "out of the flow", resulting in a wrong sized `form_sheet`. To fix the issue, we remove the `.oe_left` class, we apply a `.col-md-4` `.col-lg-6` to handle the width on large devices, and add a `.pe-3` to ensure that the labels are not placed right next to the image in mobile. task-3847917 | saas-16.3 | saas-16.3-fix-ecommerce-categories-formview-layout-on-mobile-chgo | |--------|--------| | <img alt="image" src="https://github.com/odoo/odoo/assets/128030743/66bd001f-0bcc-424f-89e4-40b4b7f15841"> | <img alt="image" src="https://github.com/odoo/odoo/assets/128030743/d08ee984-4bb9-4425-b3ac-58e0ed56ac54"> | Forward-Port-Of: odoo/odoo#160422 Forward-Port-Of: odoo/odoo#160314
This commit reverts [#133504](https://github.com/odoo/odoo/pull/133504), as it was deliberating access to private event information to uninvited administrators in the calendar view. Only the event organizer and its attendees must be able to fetch private events information. In addition, two tests have been added to: 1. ensure the confidentiality of private events from uninvited administrators and 2. prohibit uninvited administrators from edit the information of any event, private or not. t
Original PR description
This commit reverts [#133504](https://github.com/odoo/odoo/pull/133504), as it was deliberating access to private event information to uninvited administrators in the calendar view. Only the event organizer and its attendees must be able to fetch private events information. In addition, two tests have been added to: 1. ensure the confidentiality of private events from uninvited administrators and 2. prohibit uninvited administrators from edit the information of any event, private or not. task-3837646 Forward-Port-Of: odoo/odoo#160308 Forward-Port-Of: odoo/odoo#159743
**[IMP] web_editor: prevent the colorpicker from closing on inner click** Before this commit, clicking in the area below the "Hex color" input would close the color picker. This was annoying when entering a value in the "Hex color" input and then clicking below to confirm it. After this commit, the color picker no longer closes when clicking on its background. task-3747408 ----------------------- **[IMP] web: update the colorpicker on hex color input's input event** This commit
Original PR description
**[IMP] web_editor: prevent the colorpicker from closing on inner click** Before this commit, clicking in the area below the "Hex color" input would close the color picker. This was annoying when entering a value in the "Hex color" input and then clicking below to confirm it. After this commit, the color picker no longer closes when clicking on its background. task-3747408 ----------------------- **[IMP] web: update the colorpicker on hex color input's input event** This commit improves the UX of the color picker's hex input in two ways: If the user enters a hex color without the "#" symbol, it's automatically added. As soon as a valid hexadecimal color is entered in the input, the colorpicker updates, and the color is applied to the target element. task-3747408 Forward-Port-Of: odoo/odoo#157034
Deleting a partner may take a long time because odoo has to check an entire table to find few records or no records at all that reference the partner and set it to null. So we are adding an index btree not null to speed up the deletion of partners. TASK-ID: 3759406 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 Fo
Original PR description
Deleting a partner may take a long time because odoo has to check an entire table to find few records or no records at all that reference the partner and set it to null. So we are adding an index btree not null to speed up the deletion of partners. TASK-ID: 3759406 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#160184
Currently, the emoji picker uses the `onWillUnmount` hook to detect when the popover element is closed. The code defined in this hook accesses the component's DOM and retrieves the scroll offset of the emoji picker's scroll view. The scroll offset will then be saved and restored the next time the emoji picker is opened by the user. Unfortunately, it happens that the emoji picker's scroll view is no longer in the DOM when the popover is closed and when the callback function passed to the `onWi
Original PR description
Currently, the emoji picker uses the `onWillUnmount` hook to detect when the popover element is closed. The code defined in this hook accesses the component's DOM and retrieves the scroll offset of…
Currently, the emoji picker uses the `onWillUnmount` hook to detect when the popover element is closed. The code defined in this hook accesses the component's DOM and retrieves the scroll offset of the emoji picker's scroll view. The scroll offset will then be saved and restored the next time the emoji picker is opened by the user. Unfortunately, it happens that the emoji picker's scroll view is no longer in the DOM when the popover is closed and when the callback function passed to the `onWillUnmount` hook is called. When this happens, the system will log an error to the console (`TypeError: this.gridRef.el is null`) and the user will not be able to reopen the emoji picker. To fix this, we simply check that the emoji picker's scroll view exists before retrieving the scroll offset of the element in the `onWillUnmount` hook. This fix will prevent the error while keeping the code simple. Steps to reproduce the issue: 1. Click on the article emoji 2. Click out of the dropdown to close it 3. Click on the article emoji again => The emoji picker no longer appear. TO BE: The emoji picker should reappear when the user clicks on the emoji. task-3818728 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158432
In this commit: ================== Invisible the 'Removal strategy' field when selecting the other location type except the Internal location. task-3555853 Forward-Port-Of: odoo/odoo#157888 Forward-Port-Of: odoo/odoo#154117
Original PR description
In this commit: ================== Invisible the 'Removal strategy' field when selecting the other location type except the Internal location. task-3555853 Forward-Port-Of: odoo/odoo#157888 Forward-Port-Of: odoo/odoo#154117
Currently, when making a manufacture order, the duration for operations is not computed when time was not tracked. Steps to reproduce: ------------------- * Go to the **Manufacturing** App * Under **Products**, select **Bill of Materials** * Create a new bill of materials * Add any product * Add any component * Add an operation * Select any work center * For `Duration Computation`, select `Set duration manually`, set any amount * Save everything * Under **Operations**
Original PR description
Currently, when making a manufacture order, the duration for operations is not computed when time was not tracked. Steps to reproduce: ------------------- * Go to the **Manufacturing** App * Under…
Currently, when making a manufacture order, the duration for operations is not computed when time was not tracked.
Steps to reproduce:
-------------------
* Go to the **Manufacturing** App
* Under **Products**, select **Bill of Materials**
* Create a new bill of materials
* Add any product
* Add any component
* Add an operation
* Select any work center
* For `Duration Computation`, select `Set duration manually`, set any amount
* Save everything
* Under **Operations**, select **Manufacturing Orders**
* Create a new order
* Select the product for which the bill of meterial was created
* Save > Confirm > Mark as done
> Observation: Real duration is showing 0, instead of the manual amount.
Why the fix:
------------
As of now, the duration only depends on the time tracked on each operation. https://github.com/odoo/odoo/blob/7a9b05e5e7ccc54fe673a00167a261c2c6181d0a/addons/mrp/models/mrp_workorder.py#L318-L321
The issue was solved in upper versions with this fix: https://github.com/odoo/odoo/commit/5e2b97b47f3cf14616c24631acf2cd08f0295a43
I'm backporting this fix for consistency even though the issue it was originally for does not exist in 16.0 but it still solves the fact that the duration isn't computed if time was not tracked.
opw-3800477
Forward-Port-Of: odoo/odoo#160282
Forward-Port-Of: odoo/odoo#158789Steps to reproduce the issue: ============================= - Go to website and open editor - Click on the 'Contact Us' button - Change the color of the text - error Origin of the issue: ==================== `HistoryReverCurrentStep` will call `observerFlush` which will mark `_toRollback = true` and in `_observeOdooFieldChanges` we will update the html with `withoutRollback` but this only works only if `_toRollback` is `false`. Solution: ========= We need to rever the step withou
Original PR description
Steps to reproduce the issue: ============================= - Go to website and open editor - Click on the 'Contact Us' button - Change the color of the text - error Origin of the issue: ==================== `HistoryReverCurrentStep` will call `observerFlush` which will mark `_toRollback = true` and in `_observeOdooFieldChanges` we will update the html with `withoutRollback` but this only works only if `_toRollback` is `false`. Solution: ========= We need to rever the step without rollback too. task-3770287 Forward-Port-Of: odoo/odoo#156461
Before this commit, the `helpdesk_ticket_id` field in `account.analytic.line` model was not defined in the list view used in `My Timesheets` menu. This commit updates the list view to correctly display the `helpdesk_ticket_id` field in `My Timesheets` and `All Timesheets`. Forward-Port-Of: odoo/enterprise#59255
Original PR description
Before this commit, the `helpdesk_ticket_id` field in `account.analytic.line` model was not defined in the list view used in `My Timesheets` menu. This commit updates the list view to correctly display the `helpdesk_ticket_id` field in `My Timesheets` and `All Timesheets`. Forward-Port-Of: odoo/enterprise#59255
In the system parameters, switch account_online_synchronization.proxy_mode to sandbox Add a bank with plaid for example and follow the different steps Have a user [DEMO] with Accounting access set to 'Read-only' Log in with [DEMO] Try to access the Accounting App Dashboard Issue: Access Error """ You are not allowed to access 'Bank Connection' (account.online.link) records. This operation is allowed for the following groups: - Accounting/Accountant - Accounting/Boo
Original PR description
In the system parameters, switch account_online_synchronization.proxy_mode to sandbox
Add a bank with plaid for example and follow the different steps
Have a user [DEMO] with Accounting access set to 'Read-only'
Log in with [DEMO]
Try to access the Accounting App Dashboard
Issue:
Access Error
"""
You are not allowed to access 'Bank Connection' (account.online.link) records.
This operation is allowed for the following groups:
- Accounting/Accountant
- Accounting/Bookkeeper
Contact your administrator to request access if necessary.
"""
This occurs because the read access to the account.online.link
and account.online.account records is granted only to users having at
least the account.group_account_user group
But, as those accesses are defined to be read only, it should be
greanted also to account.group_account_readonly users
opw-3821540
Forward-Port-Of: odoo/enterprise#59984Deleting a partner may take a long time because odoo has to check an entire table to find few records or no records at all that reference the partner and set it to null. So we are adding an index btree not null to speed up the deletion of partners. TASK-ID: 3759406 Forward-Port-Of: odoo/enterprise#59932
Original PR description
Deleting a partner may take a long time because odoo has to check an entire table to find few records or no records at all that reference the partner and set it to null. So we are adding an index btree not null to speed up the deletion of partners. TASK-ID: 3759406 Forward-Port-Of: odoo/enterprise#59932
This commit fixes a race condition in the following test tour: `test_inventory_adjustment_dont_update_location` Runbuild error: 60324 Forward-Port-Of: odoo/enterprise#59900
Original PR description
This commit fixes a race condition in the following test tour: `test_inventory_adjustment_dont_update_location` Runbuild error: 60324 Forward-Port-Of: odoo/enterprise#59900
Before this commit, the lowest shipping rate was used as the delivery cost, as in: https://github.com/odoo/enterprise/blob/8c40ba77b23c4ccd24c3785bc1e6cf5b3fbe0e51/delivery_sendcloud/models/sendcloud_service.py#L91 However, the prices received from the Sendcloud are strings, and as a result, this line returned the rate with the lowest lexicographical order. As a result, sometimes the rates with a higher value were chosen. The issue happens when a shipping product costs a single digit amount (
Original PR description
Before this commit, the lowest shipping rate was used as the delivery cost, as in: https://github.com/odoo/enterprise/blob/8c40ba77b23c4ccd24c3785bc1e6cf5b3fbe0e51/delivery_sendcloud/models/sendcloud_service.py#L91 However, the prices received from the Sendcloud are strings, and as a result, this line returned the rate with the lowest lexicographical order. As a result, sometimes the rates with a higher value were chosen. The issue happens when a shipping product costs a single digit amount (e.g. `9.00`) but a second product costs in double digits (e.g. `11.00`). In this case the latter is used which is wrong. This commit, converts the prices to float before comparing them to get the actual best price. opw-3815117 Forward-Port-Of: odoo/enterprise#59536
**[FIX] stock_barcode: scan only picking's (sub)loc** > Before this commit, it was possible to scan any location as the source location. > This commit fixes that and a location can be used as the source only if it's the picking's source location or one of its child locations. **[FIX] stock_barcode: Package source location** > Steps to reproduce: > - Edit internal transfers setting: -- general tab: Move entire Package "Checked" -- barcode tab: Source Location "No Scan" > - Create a new
Original PR description
**[FIX] stock_barcode: scan only picking's (sub)loc** > Before this commit, it was possible to scan any location as the source location. > This commit fixes that and a location can be used as the source only if it's the picking's source location or one of its child locations. **[FIX] stock_barcode: Package source location** > Steps to reproduce: > - Edit internal transfers setting: -- general tab: Move entire Package "Checked" -- barcode tab: Source Location "No Scan" > - Create a new storable product > - Update onhand qty: 20 package: PKG1, location: WH/Stock/Shelf 1 > - in Barcode app create a new transfer and scan PKG1 > > Bug: > the current package location is different from the default source location therefore package is ignored and an error is thrown (you are expected to scan one or more products ....) > > Fix: > check if the package is in a child location aswell > > opw-3595643 Forward-Port-Of: odoo/enterprise#59526 Forward-Port-Of: odoo/enterprise#58896
Issue: ------ Some tests of `TestSaleReport` introduced with the fix [^1], do not pass if the module `website_sale` is installed. This is due to the fact that the sale order flush does not flush all the fields of the sale order line model that are used in the tests (`price_subtotal` for example). Solution: --------- Use `flush_all` to flush the `sale.order` and `sale.order.line` models. opw-3818584 [^1]: https://github.com/odoo/enterprise/commit/f886e65ce123f06ee8a5a2f149330864bcdb
Original PR description
Issue: ------ Some tests of `TestSaleReport` introduced with the fix [^1], do not pass if the module `website_sale` is installed. This is due to the fact that the sale order flush does not flush all the fields of the sale order line model that are used in the tests (`price_subtotal` for example). Solution: --------- Use `flush_all` to flush the `sale.order` and `sale.order.line` models. opw-3818584 [^1]: https://github.com/odoo/enterprise/commit/f886e65ce123f06ee8a5a2f149330864bcdb3254 Forward-Port-Of: odoo/enterprise#59915