Monday, August 19, 2024
28 changes · saas-17.4
Resolved issues and error corrections
Chat bubbles were adjusted to use valid page structure and display more clearly in dark mode. This helps users better recognize chat channels, especially when icons have transparent areas.
Original PR description
Before this PR, chat bubbles were using button elements inside another button element. It's not valid HTML and can be replaced by a simple div. This PR also adds a dark mode-friendly background to the bubble. This makes the bubble more visible when an image with transparency is used as a channel icon. Before:  After: 
This fix prevents an unexpected system error when users create or register payments before configuring outstanding accounts. Users will now avoid a technical crash and continue to receive the intended business validation message if setup is incomplete.
Original PR description
Since aa07813918480b0b6beae74ccdbe3656ef6a3a56, we make a query to display a warning if duplicated payments already exist, but if user did not set any outstanding account, we get a SyntaxError from psycopg2. With this commit, we avoid checking `outstanding_account_ids` in the query, this is not an issue since at the end, we raise an UserError when validating the payment if no outstanding account is set. Steps: - Make sure there is no outstanding accounts set on the company nor on the bank journal's payment method lines - Either register a payment from invoice view or create a customer payment -> Error: `psycopg2.errors.SyntaxError: syntax error at or near ")"` opw-4099204
This fix ensures uploaded website background images display correctly even when their file URLs include spaces. It prevents broken blog or website visuals after users add images through the editor.
Original PR description
Before this commit the img url in the css background-image property was not quoted, this led to background not being displayed when URL contained spaces (char "%20"). [Reproduce] - Open blog, upload new background image via Editor - BUG: image not displayed opw-4089093
Code cleanup and technical improvements
This update adjusts internal tests for the HR attendance planning view so they wait in a more controlled way. It helps keep automated checks reliable without changing how employees or managers use the system.
Original PR description
We replace some calls to runAllTimers by calls to advanceTime in order to not to have to remove components/services from mail (see https://github.com/odoo/enterprise/pull/68143 for more info).
Miscellaneous changes
Steps to reproduce: - Go to website (in "Edit" mode) > Drop a "Title" block > Add a highlight effect to the title text. - Select a word in the title text > Transform it to a link, and save. - Try to translate the title into another language in the editor > You cannot update the text or remove it. The highlight effects have an auto-updated DOM structure handled by JS. Having an element that is not inline translated (the `<a/>` tag in this case) inside a highlight structure will wr
Original PR description
Steps to reproduce: - Go to website (in "Edit" mode) > Drop a "Title" block > Add a highlight effect to the title text. - Select a word in the title text > Transform it to a link, and save. - Try to…
Steps to reproduce: - Go to website (in "Edit" mode) > Drop a "Title" block > Add a highlight effect to the title text. - Select a word in the title text > Transform it to a link, and save. - Try to translate the title into another language in the editor > You cannot update the text or remove it. The highlight effects have an auto-updated DOM structure handled by JS. Having an element that is not inline translated (the `<a/>` tag in this case) inside a highlight structure will wrap the link content in `<span data-oe-translation-initial-sha="...">` elements that are considered "UNREMOVABLE" and, as a consequence, cannot be adapted as normal content inside the highlight DOM. Also, we cannot translate `<a>` elements inline to fix this issue, since there is a reason why this was prevented (see more details in the commit message from [1]). The goal of this commit is to fix this behaviour by forcing the highlight content to always be translated as a whole. This should wrap all the text highlight DOM in one global `<span>` so it can be translated correctly. [1]: https://github.com/odoo/odoo/commit/9bd60ca93510e410a0136b8b433f596330900593 opw-3980975 Forward-Port-Of: odoo/odoo#170895
Steps to reproduce the bug: - Create a subcontracted product “P1”: - the valuation: AVCO automated - BoM: - component: C1 ($15) - Go back to the product form for “P1.” - Click on "Compute from BoM" -> Result: P1 = $15. - Create a Purchase order: - 1 unit of P1 - Confirm the PO and receive P1 - Return the received quantity: - Location: “Partner/lcoation” **Problem:** A traceback is triggered: ``` File "/home/odoo/src/odoo/addons/mrp_subcontracting_purchase
Original PR description
Steps to reproduce the bug: - Create a subcontracted product “P1”: - the valuation: AVCO automated - BoM: - component: C1 ($15) - Go back to the product form for “P1.” - Click on "Compute from BoM"…
Steps to reproduce the bug:
- Create a subcontracted product “P1”:
- the valuation: AVCO automated
- BoM:
- component: C1 ($15)
- Go back to the product form for “P1.”
- Click on "Compute from BoM" -> Result: P1 = $15.
- Create a Purchase order:
- 1 unit of P1
- Confirm the PO and receive P1
- Return the received quantity:
- Location: “Partner/lcoation”
**Problem:**
A traceback is triggered:
```
File "/home/odoo/src/odoo/addons/mrp_subcontracting_purchase/models/stock_valuation_layer.py", line 21, in _get_layer_price_unit
return super()._get_layer_price_unit() + components_price
File "/home/odoo/src/odoo/addons/purchase_stock/models/stock_valuation_layer.py", line 12, in _get_layer_price_unit
return self.value / self.quantity
ZeroDivisionError: float division by zero
```
When validating the return, the `_account_entry_move` function is called to verify if the returned value of the product is different from the purchased one. In this case, we need to clear the `stock_in` account with the difference. To do this, we retrieve the layer associated with the origin move of the return. However, since this move is an internal one (from the subcontracting location to WH/stock), the `_should_be_valued` function returns `False`, and no layer is created for this move:
https://github.com/odoo/odoo/blob/7afd9294338dd18c3351afd2017648931fdb9ee3/addons/stock_account/models/stock_location.py#L25-L30
Because we do not check if a layer exists for this move and directly call the `_get_layer_price_unit` function, a traceback is triggered as we have division by zero
**Solution:**
In case there is no layer associated with the original move, we can consider the difference as 0.
For example, in our case, the layer of the returned move has a value of 30 (15 for P1 and 15 for C1). Therefore, even if we return P1 to the subcontractor, we will not return the value of C1 because it has already been delivered and used.
opw-4053362
Forward-Port-Of: odoo/odoo#176637
Forward-Port-Of: odoo/odoo#176515Odoo service could not restart after reboot as `service odoo restart` was missing in `wireless_ap.sh` file, which is called in `rc.local`. Forward-Port-Of: odoo/odoo#176967
Original PR description
Odoo service could not restart after reboot as `service odoo restart` was missing in `wireless_ap.sh` file, which is called in `rc.local`. Forward-Port-Of: odoo/odoo#176967
Steps to reproduce [`17.2`]: - Start a fresh DB. - Enable one of the Spanish sub-languages except the `Spanish LATAM` (the one with default `/es` url code) e.g., `"es_AR"`. - An error is triggered when upgrading to a `17.3+` version by the code trying to set the `'es'` url code while it was already available in another record. Starting from [1], we allow using the short url code `'es'` when a Spanish sub-language is enabled (as long as `es_419` is not) [A]. We also update the reco
Original PR description
Steps to reproduce [`17.2`]: - Start a fresh DB. - Enable one of the Spanish sub-languages except the `Spanish LATAM` (the one with default `/es` url code) e.g., `"es_AR"`. - An error is triggered…
Steps to reproduce [`17.2`]: - Start a fresh DB. - Enable one of the Spanish sub-languages except the `Spanish LATAM` (the one with default `/es` url code) e.g., `"es_AR"`. - An error is triggered when upgrading to a `17.3+` version by the code trying to set the `'es'` url code while it was already available in another record. Starting from [1], we allow using the short url code `'es'` when a Spanish sub-language is enabled (as long as `es_419` is not) [A]. We also update the records in XML to set the Spanish LATAM (`es_419`) as the one with the default `'es'`, assuming that the `base.lang_es` record will always hold the `'es'` url code. Running the XML updates again in the situation of [A] will try to set the unique `es` url code on a record while another record (other than `base.lang_es`) is holding it (`"es_AR"` in this case). The goal of this commit is to simply add a `noupdate` for the XML updates so they are only loaded on initialization. [1]: https://github.com/odoo/odoo/commit/a992d2deab9d582cc33dc31f0b1bd610f82add0d 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#176706
This commit is a backport of commit [1], adjusting the `color5` of the color palette generated after uploading a logo in the configurator. Indeed, this color was too light, even though it is supposed to be the darkest. [1]: https://github.com/odoo/odoo/commit/09fd191657372da5a5220fe82c180a3d2f5a076e Related to task-4109584 Forward-Port-Of: odoo/odoo#176930
Original PR description
This commit is a backport of commit [1], adjusting the `color5` of the color palette generated after uploading a logo in the configurator. Indeed, this color was too light, even though it is supposed to be the darkest. [1]: https://github.com/odoo/odoo/commit/09fd191657372da5a5220fe82c180a3d2f5a076e Related to task-4109584 Forward-Port-Of: odoo/odoo#176930
Description of the issue/feature this PR addresses: - i found that context is never passed in [_duplicateRecords()](https://github.com/odoo/odoo/blob/bd922d14051e5cf09628ad20087d5a78c6588919/addons/web/static/src/model/relational_model/dynamic_list.js#L210) function for list views, when making 'orm' calls from js side, while it is passed in [duplicate](https://github.com/odoo/odoo/blob/bd922d14051e5cf09628ad20087d5a78c6588919/addons/web/static/src/model/relational_model/record.js#L191) functi
Original PR description
Description of the issue/feature this PR addresses: - i found that context is never passed in…
Description of the issue/feature this PR addresses: - i found that context is never passed in [_duplicateRecords()](https://github.com/odoo/odoo/blob/bd922d14051e5cf09628ad20087d5a78c6588919/addons/web/static/src/model/relational_model/dynamic_list.js#L210) function for list views, when making 'orm' calls from js side, while it is passed in [duplicate](https://github.com/odoo/odoo/blob/bd922d14051e5cf09628ad20087d5a78c6588919/addons/web/static/src/model/relational_model/record.js#L191) function of record.js, which is called when duplicating record from form view. **use case:** - In `sale_renting` module, There is difference in the result, when a `sale_order` is duplcated from form view(duplicated properly) and when it is duplicated from list view(unexpected result). When duplicating a sale_order, its lines are also being duplicated, and at that time [_compute_is_rental](https://github.com/odoo/enterprise/blob/10006504139abc706ccdb00f71c16846414731eb/sale_renting/models/sale_order_line.py#L56) is being computed, which relies on context key `in_rental_app`. 'in_rental_app' is set in the related action yet was not available when duplicating the sale_order from list view (which resulted in unexpected behaviour). Current behavior before PR: - Context is not passed when duplicating Records from list view. Desired behavior after PR is merged: - Context is passed when duplicating Records from list view. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176305 Forward-Port-Of: odoo/odoo#174137
With the replacement of URLs to match the new scheme, links to return from portal preview can stop working because their new URL is not recognized as a backend URL. This commit adds the `/odoo/` prefix in URLs identified as belonging to the backend. Steps to reproduce: - Install website & sale. - Go to an Invoice. - Click on Preview. - If you are not in the backend view, click on "Editor". - Click on the link to return to the backend view. => A cross-origin error happened because t
Original PR description
With the replacement of URLs to match the new scheme, links to return from portal preview can stop working because their new URL is not recognized as a backend URL. This commit adds the `/odoo/` prefix in URLs identified as belonging to the backend. Steps to reproduce: - Install website & sale. - Go to an Invoice. - Click on Preview. - If you are not in the backend view, click on "Editor". - Click on the link to return to the backend view. => A cross-origin error happened because the backend was being reloaded within the website preview `iframe`. opw-4098566 Forward-Port-Of: odoo/odoo#176603
### **Description:** * **Steps to Reproduce:-** 1. Install the Inventory module and create a new warehouse, other than the standard one. 2. Archive the standard warehouse. 3. Attempt to install the Point_of_Sale module. * After this commit: https://github.com/odoo/odoo/commit/0ddd04a34d85386d4ffc59aab07f68b365619b0a, archived warehouses are now also considered when defaulting the `pos_type_id`. Initially, if a warehouse was archived, no `pos_type_id` would be creat
Original PR description
### **Description:** * **Steps to Reproduce:-** 1. Install the Inventory module and create a new warehouse, other than the standard one. 2. Archive the standard warehouse. 3. Attempt to install the…
### **Description:**
* **Steps to Reproduce:-**
1. Install the Inventory module and create a new warehouse, other than the standard one.
2. Archive the standard warehouse.
3. Attempt to install the Point_of_Sale module.
* After this commit: https://github.com/odoo/odoo/commit/0ddd04a34d85386d4ffc59aab07f68b365619b0a, archived warehouses are now also considered when defaulting the `pos_type_id`. Initially, if a warehouse was archived, no `pos_type_id` would be created for it. Later on, if any new `pos_config` record is created for `self.env.company` where the warehouse is archived, it will throw the following error:
```py
File "/home/odoo/src/odoo/17.0/odoo/sql_db.py", line 332, in execute
res = self._obj.execute(query, params)
psycopg2.errors.NotNullViolation: null value in column "picking_type_id" of relation "pos_config" violates not-null constraint
DETAIL: Failing row contains (1, null, null, 1, null, 221, 222, null, 1, 170, 169, 289, null, null, 7, null, 1, 1, Shop, total, null, 17c45bf9-4ffa-45ce-b637-53249b394421, direct, null, null, null, null, null, null, null, null, null, null, f, t, null, f, null, t, null, null, null, f, null, null, null, null, null, null, null, null, null, null, t, null, t, 2024-08-06 04:46:54.504337, 2024-08-06 04:46:54.504337, null).
```
While parsing this...
```py
File "/home/odoo/src/odoo/17.0/odoo/tools/convert.py", line 569, in _tag_root
raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
odoo.tools.convert.ParseError: while parsing /home/odoo/src/odoo/17.0/addons/point_of_sale/data/point_of_sale_data.xml:35, somewhere inside
<record model="pos.config" id="pos_config_main" forcecreate="0">
<field name="name">Shop</field>
</record>
```
OPW - 4094096
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#175838Issue: ====== Image changes aren't auto saved. Steps to reproduce the issue: ============================= - Add cover snippet and text-image snipets - Change cover image or the image in the text-image snippet - Don't click anywhere after that - Switch tab to A/B testing for example - Go back to mail body - The image changes aren't saved Origin of the issue and solution: ================================= When we choose an image from the media dialog, we loose the focus from t
Original PR description
Issue: ====== Image changes aren't auto saved. Steps to reproduce the issue: ============================= - Add cover snippet and text-image snipets - Change cover image or the image in the…
Issue: ====== Image changes aren't auto saved. Steps to reproduce the issue: ============================= - Add cover snippet and text-image snipets - Change cover image or the image in the text-image snippet - Don't click anywhere after that - Switch tab to A/B testing for example - Go back to mail body - The image changes aren't saved Origin of the issue and solution: ================================= When we choose an image from the media dialog, we loose the focus from the editable which means `onWysiwygBlur` is not called and as consequence `commitChanges` isn't called too. Since the flow of the destroy and the `commitChanges` in `onWysiwygBlur` are in parallel, the following happens: - We don't update the value in the blur flow because we will wait for some promises which may take some time and the component gets destroyed and we never call the `updateValue` at the end of the function. - Now in the `commitChanges` coming from `onWillUnmount` we need to pass the `urgent` flag in mass_mailing too. opw-3947516 Forward-Port-Of: odoo/odoo#174740 Forward-Port-Of: odoo/odoo#172312
It's not common, but apparently it's possible for Chrome to send a screencast frame after it's been told to stop. I assume because screencasting is asynchronous so if a frame capture is triggered before the command to stop reaches the browser, that frame capture may complete and be dispatched. Locally this seems to occur in about 3.5% of calls to `test_screencasts` (7 out of 200 runs). In those cases, the event sequence looks like this: T + 0.0000s _save_screencast()
Original PR description
It's not common, but apparently it's possible for Chrome to send a screencast frame after it's been told to stop. I assume because screencasting is asynchronous so if a frame capture is triggered…
It's not common, but apparently it's possible for Chrome to send a screencast frame after it's been told to stop. I assume because screencasting is asynchronous so if a frame capture is triggered before the command to stop reaches the browser, that frame capture may complete and be dispatched.
Locally this seems to occur in about 3.5% of calls to `test_screencasts` (7 out of 200 runs). In those cases, the event sequence looks like this:
T + 0.0000s _save_screencast()
sends `Page.stopScreencast`
T + 0.0002s stop
send `Page.stopScreencast`, unsets `screencasts_dir`
T + 0.0100s _handle_screencast_frame
accesses screencasts_frames_dir
`screencasts_frames_dir` then proceed to access `screencasts_dir`, not handle it being `None`, and break.
To fix, just make `screencasts_frame_dir` return `None` if `screencasts_dir` is `None`. This makes `_handle_screencast_frame` properly no-op on the incoming frame. And remove the redundant check on `screencasts_dir` after having ack'd the frame.
Note that this issue has *not* been reported upstream for consideration, as it would require creating a bespoke test case and I can't be arsed. A search on both the tracker and the internet at large doesn't reveal anything relevant.
Example stagings failed due to this:
- https://runbot.odoo.com/runbot/build/66915127
- https://runbot.odoo.com/runbot/build/66915510
And because it's a "traceback found in the logs" it doesn't seem like the runbot is able to see / track it.
Forward-Port-Of: odoo/odoo#176893Changing a BoM from 'phantom' (kit) to 'normal' (manufacture) during leads to an error if the kit is in the middle of a sale process. ## How to reproduce: 2. Create a product category PC: AVCO Automated 3. Create 3 storable products P_kit, P_01, P_02 in category PC 4. Create a BoM: - Product: P_kit - Type: kit - Components: - 1 x P_01 - 1 x P_02 5. Create and confirm a SO with 1 x P_kit 6. Force the delivery 7. Change BoM type to 'Manufacture this product' 8. Cr
Original PR description
Changing a BoM from 'phantom' (kit) to 'normal' (manufacture) during leads to an error if the kit is in the middle of a sale process.
## How to reproduce:
2. Create a product category PC: AVCO Automated
3. Create 3 storable products P_kit, P_01, P_02 in category PC
4. Create a BoM:
- Product: P_kit
- Type: kit
- Components:
- 1 x P_01
- 1 x P_02
5. Create and confirm a SO with 1 x P_kit
6. Force the delivery
7. Change BoM type to 'Manufacture this product'
8. Create and confirm the SO's invoice
Error: a traceback appears "ValueError: Expected singleton: uom.uom..."
Related PR: https://github.com/odoo/odoo/pull/119944
OPW-3843356
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#171802Since [1] when routing was changed to path-based, the website service's `pageDocument` can be reset before the wysiwyg adapter is destroyed. Because of this, the `destroy` might fail - leading to further errors. Steps to reproduce: - Be logged in. - Access the visitor view of the Home page. - Click on the "Editor" link to reach the back-end view. - Click on "Edit". - Click on the back button of the browser. => An error dialog appears. [1]: https://github.com/odoo/odoo/commit/c63d14
Original PR description
Since [1] when routing was changed to path-based, the website service's `pageDocument` can be reset before the wysiwyg adapter is destroyed. Because of this, the `destroy` might fail - leading to further errors. Steps to reproduce: - Be logged in. - Access the visitor view of the Home page. - Click on the "Editor" link to reach the back-end view. - Click on "Edit". - Click on the back button of the browser. => An error dialog appears. [1]: https://github.com/odoo/odoo/commit/c63d14a0485a553b74a8457aee158384e9ae6d3f opw-4074988 Forward-Port-Of: odoo/odoo#175305
More logging is required to track calls to VIES services to enable tracking databases triggering VIES limitations. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176677 Forward-Port-Of: odoo/odoo#176602
Original PR description
More logging is required to track calls to VIES services to enable tracking databases triggering VIES limitations. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176677 Forward-Port-Of: odoo/odoo#176602
After the commit https://github.com/odoo/odoo/commit/6636135d5f2858e4a2bf27e5c2da91a91fa52695, an unnecessary error was triggered when a bill of materials (BOM) containing an item with zero quantity was used. This commit updates the logic to prevent this check when the item's quantity is zero and its unit of measure (UoM) matches the product's UoM, avoiding the error. opw-4113385 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odo
Original PR description
After the commit https://github.com/odoo/odoo/commit/6636135d5f2858e4a2bf27e5c2da91a91fa52695, an unnecessary error was triggered when a bill of materials (BOM) containing an item with zero quantity was used. This commit updates the logic to prevent this check when the item's quantity is zero and its unit of measure (UoM) matches the product's UoM, avoiding the error. opw-4113385 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#176566
A FROM email is required in order to send an email. For this email, the source email can either come from the new user's company, or from the sending user's company. In both cases it's almost certainly going to be *the* company. The company's email comes from its partner object, which only gets one when loading the demo (via a `<function>` call in the users demo, making finding it a bit of a chore). This means without demo the totp mail send fails with somewhat unhelpful error messages (as it
Original PR description
A FROM email is required in order to send an email. For this email, the source email can either come from the new user's company, or from the sending user's company. In both cases it's almost certainly going to be *the* company. The company's email comes from its partner object, which only gets one when loading the demo (via a `<function>` call in the users demo, making finding it a bit of a chore). This means without demo the totp mail send fails with somewhat unhelpful error messages (as it's on the server side of a controller call and deep into the bowels of email rendering). The fix is to just set an email on the main company before going through the signup flow, that way there is an email_from to use and everything works out. Runbot error 70541 Forward-Port-Of: odoo/odoo#176906
A coding mistake was added in d53aae967c5b44b2ca1ed716e90e065fbbe938d4 Indeed, for resource bookings, we decrease asked capacity to allocate the full reserved capacity to available resources. However, it is decreased directly. This means that event values have a 0 asked_capacity, leading in turns to an inexact use of _get_default_appointment_attendee_status, used to determine whether the status should be 'accepted' or 'needsAction' depending on the manual treshold percentage if set, asked cap
Original PR description
A coding mistake was added in d53aae967c5b44b2ca1ed716e90e065fbbe938d4 Indeed, for resource bookings, we decrease asked capacity to allocate the full reserved capacity to available resources. However, it is decreased directly. This means that event values have a 0 asked_capacity, leading in turns to an inexact use of _get_default_appointment_attendee_status, used to determine whether the status should be 'accepted' or 'needsAction' depending on the manual treshold percentage if set, asked capacity and existing bookings. Indeed, the asked_capacity will not be counted when computing the total reserved percentage. In practice, this means that events crossing the treshold will be automatically 'accepted' instead of 'needsAction' The fix creates another variable to avoid the issue and adds a test. Task-4084727 Forward-Port-Of: odoo/enterprise#67626
Two warnings need to be conditionally hidden if the company does not have an OSCU active: - the warning on invoices that the delivered quantities do not match invoiced quantities; and - the warning on BoMs. In addition, we take the opportunity to remove the method `env['product.product']._compute_l10n_ke_validation_message` which is dead code. Forward-Port-Of: odoo/enterprise#68423
Original PR description
Two warnings need to be conditionally hidden if the company does not have an OSCU active: - the warning on invoices that the delivered quantities do not match invoiced quantities; and - the warning on BoMs. In addition, we take the opportunity to remove the method `env['product.product']._compute_l10n_ke_validation_message` which is dead code. Forward-Port-Of: odoo/enterprise#68423
**Description** A [recent](https://github.com/odoo/enterprise/commit/76d9188767e26c4ae1f815334af5ca3ac6c5fcdf) change in the l10n_fr_reports **IMB - Intermediate management balances** created a new child and parent hierarchy between report lines that never existed before. This causes a traceback when opening the report on migrated databases. The report lines must be loaded in an order where parent lines come before their children. The sorting of `account.report.line` model is by `sequence,
Original PR description
**Description** A [recent](https://github.com/odoo/enterprise/commit/76d9188767e26c4ae1f815334af5ca3ac6c5fcdf) change in the l10n_fr_reports **IMB - Intermediate management balances** created a new…
**Description**
A [recent](https://github.com/odoo/enterprise/commit/76d9188767e26c4ae1f815334af5ca3ac6c5fcdf) change in the l10n_fr_reports **IMB - Intermediate management balances** created a new child and parent hierarchy between report lines that never existed before. This causes a traceback when opening the report on migrated databases.
The report lines must be loaded in an order where parent lines come before their children. The sorting of `account.report.line` model is by `sequence, id`, where `sequence` column (if unchanged) remains null, causing lines to be sorted by `id`. The change caused larger id records to be assigned as the parent of smaller id records, violating the required hierarchy and raising a traceback.
**Traceback :**
```py
File "/home/odoo/src/enterprise/17.0/account_reports/models/account_report.py", line 4386, in get_report_information
'lines': self._get_lines(options, all_column_groups_expression_totals=all_column_groups_expression_totals, warnings=warnings),
File "/home/odoo/src/enterprise/17.0/account_reports/models/account_report.py", line 2123, in _get_lines
parent_generic_id = line_cache[line.parent_id]['id'] if line.parent_id else None # The parent line has necessarily been treated in a previous iteration
KeyError: account.report.line(338,)
```
**steps to reproduce**
1. install 'l10n_fr' and 'account_accountant' in a demo database of version 16
2. migrate it to version 17.
3. go to Reporting->Profit and Loss (Fr company should be selected)
4. Change Report to "IMB - Intermediate management balances"
Note: This PR is created by this [suggestion](https://github.com/odoo/upgrade/pull/6267#issuecomment-2244373973).
Forward-Port-Of: odoo/enterprise#68182
Forward-Port-Of: odoo/enterprise#67147This commit aims to add a minimum box size for sign items. regardless of how the user resizes them, they should maintain this minimum size. Task: 4014579 Forward-Port-Of: odoo/enterprise#67242
Original PR description
This commit aims to add a minimum box size for sign items. regardless of how the user resizes them, they should maintain this minimum size. Task: 4014579 Forward-Port-Of: odoo/enterprise#67242
Before this commit, the bottom right label in sign templates which included the hourglass icon was overlapping the action buttons and the search panel in the left position of the screen was occupying a big part of the screen when the width was small, hiding the sign templates and sign documents in the bottom of the page. After this commit, the bottom right label does not overlaps the action buttons anymore and when the screen is small (in width) we hide the search panel for showing the sign t
Original PR description
Before this commit, the bottom right label in sign templates which included the hourglass icon was overlapping the action buttons and the search panel in the left position of the screen was occupying a big part of the screen when the width was small, hiding the sign templates and sign documents in the bottom of the page. After this commit, the bottom right label does not overlaps the action buttons anymore and when the screen is small (in width) we hide the search panel for showing the sign templates and sign documents correctly. task-4077791 Forward-Port-Of: odoo/enterprise#67700
Have a 0% Tax Open bank reconciliation widget Reconcile a bank statement with a manual operation including the 0% tax Issue: On the reconciliation widget a void line will be shown After validation the 0 balance tax line will be created opw-4043498 Forward-Port-Of: odoo/enterprise#68383 Forward-Port-Of: odoo/enterprise#67458
Original PR description
Have a 0% Tax Open bank reconciliation widget Reconcile a bank statement with a manual operation including the 0% tax Issue: On the reconciliation widget a void line will be shown After validation the 0 balance tax line will be created opw-4043498 Forward-Port-Of: odoo/enterprise#68383 Forward-Port-Of: odoo/enterprise#67458
Ensure that, when importing amounts involving currency exchanges, the system reads the amount that includes the fees. (New behavior confirmed with CHKL) opw-3999490 Forward-Port-Of: odoo/enterprise#68385 Forward-Port-Of: odoo/enterprise#67879
Original PR description
Ensure that, when importing amounts involving currency exchanges, the system reads the amount that includes the fees. (New behavior confirmed with CHKL) opw-3999490 Forward-Port-Of: odoo/enterprise#68385 Forward-Port-Of: odoo/enterprise#67879
Specification: The time should not be reset when dragging an event in the month view. Observed behavior: Time is reset when dragging an event in month mode. Task-3432065 Forward-Port-Of: odoo/odoo#171402
Original PR description
Specification:
The time should not be reset when dragging an event in the month view.
Observed behavior:
Time is reset when dragging an event in month mode.
Task-3432065
Forward-Port-Of: odoo/odoo#171402Fixed error on compute method when more of one wizard is created and tried to get the `mail_partner_ids`. This section is for `invoice_single` records, so, if you send multiple move_ids a singleton error is returned because you send the moves of all the wizards. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175266
Original PR description
Fixed error on compute method when more of one wizard is created and tried to get the `mail_partner_ids`. This section is for `invoice_single` records, so, if you send multiple move_ids a singleton error is returned because you send the moves of all the wizards. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#175266