Thursday, February 20, 2025
59 changes · saas-18.2
Enhancements to existing features
This update simplifies how Odoo chooses default email recipients across several apps by relying more on shared base logic instead of custom per-app rules. It should make recipient selection easier to maintain and more consistent, with fixes for cases involving normalized email addresses and primary contact emails.
Original PR description
RATIONALE Cleanup addon-specific code about default recipients computation. Since base code is now smarter, most overrides can be removed to keep simple code and ease understanding. SPECIFICATIONS…
RATIONALE Cleanup addon-specific code about default recipients computation. Since base code is now smarter, most overrides can be removed to keep simple code and ease understanding. SPECIFICATIONS Remove overrides that are now covered by base computation. When necessary use '_mail_defaults_to_email' that prioritizes email over partner (customer) when searching for default recipients. When necessary add missing '_primary_email' definition allowing to find the main email to contact. Provide some fixes in default recipients computation, notably linked to normalized emails usage and comparison instead of raw emails. QUERIES Simple overrides on test models are removed. This implies usage of more complete '_message_get_default_recipients' hence some additional queries. LINKS Followup of odoo/odoo#172714: improve default behavior of templates Followup of odoo/odoo#188642 : main branch for email-like recipients Task-4555506: Cleanup / Mergeup default / suggested recipients
This update simplifies how default email recipients are selected across several Odoo apps by relying more on shared platform logic instead of custom overrides. It improves consistency for email templates and recipient suggestions, with specific fixes for salary offer communications and normalized email matching.
Original PR description
RATIONALE Cleanup addon-specific code about default recipients computation. Since base code is now smarter, most overrides can be removed to keep simple code and ease understanding. SPECIFICATIONS…
RATIONALE Cleanup addon-specific code about default recipients computation. Since base code is now smarter, most overrides can be removed to keep simple code and ease understanding. SPECIFICATIONS Remove overrides that are now covered by base computation. When necessary use '_mail_defaults_to_email' that prioritizes email over partner (customer) when searching for default recipients. When necessary add missing '_primary_email' definition allowing to find the main email to contact. Provide some fixes in default recipients computation, notably linked to normalized emails usage and comparison instead of raw emails. QUERIES Simple overrides on test models are removed. This implies usage of more complete '_message_get_default_recipients' hence some additional queries. LINKS Followup of odoo/odoo#172714: improve default behavior of templates Followup of odoo/odoo#188642 : main branch for email-like recipients Task-4555506: Cleanup / Mergeup default / suggested recipients
Resolved issues and error corrections
Installing Belgian reports with invoicing will no longer automatically pull in loan features and the full accounting app. A small connector module now loads the loan-related demo content only when both Belgian reports and loans are installed, keeping lighter setups simpler.
Original PR description
Previously, `l10n_be_reports` was depending on `account_loans` because it already depended on `account_reports` which depended on `account_accountant`. `account_loans` also depended on `account_accountant` so this was not a problem. Now this is not true anymore, we might install `l10n_be_reports` with just invoicing, and not the full accounting. This means that by installing `l10n_be_reports`, we would trigger the installation of `account_loans` which would install the full accounting. So now, instead of relying on the dependency chain, we create a new bridge module between `l10n_be_reports` and `account_loans` which will be autoinstalled if both modules are installed. So if you only install `l10n_be_reports`, you will not have `account_loans` (and the full accounting) installed too. task-none
Miscellaneous changes
The cogwheel dropdown menu is unwanted and only contains the 'Export All' button, which is disabled with an attribute. This commit extends the existing base tree view for this specific use to avoid interfering with other views that use/extend it. Task ID: [4471980](https://www.odoo.com/odoo/project/966/tasks/4471980) Forward-Port-Of: odoo/odoo#195148 Forward-Port-Of: odoo/odoo#193987
Original PR description
The cogwheel dropdown menu is unwanted and only contains the 'Export All' button, which is disabled with an attribute. This commit extends the existing base tree view for this specific use to avoid interfering with other views that use/extend it. Task ID: [4471980](https://www.odoo.com/odoo/project/966/tasks/4471980) Forward-Port-Of: odoo/odoo#195148 Forward-Port-Of: odoo/odoo#193987
This fix prevents key UrbanPiper charge products from being left inactive during test setup. It helps ensure packaging, delivery, and other charge items remain available where needed, reducing failures in related localization workflows.
Original PR description
Before this commit: === - Certain UrbanPiper-related products (product_packaging_charges, product_delivery_charges, product_other_charges) could be archived, leading to test case failure in l10n_in. After this commit: === - The corresponding product.template records are explicitly reactivated after calling archive_products(cls.env), ensuring they remain available for use. runbot-115160
A typo caused the Manage Versions option to disappear from the Documents action menu. This fix restores that option so users can manage document versions as expected.
Original PR description
- we made some typo here https://github.com/odoo/enterprise/pull/77329/commits/0005513aedee0fce8db174dc25846d17f46f056b#diff-636ce727908264dec04ea3634d7cea514ba8f21344134c239c474d989abcf266R144 and we lost the ```manage versions ``` from the action. Task-4586706
In the context of grouping records on a Many2Many field (e.g. tags of tasks) in the list view, it's possible to select the same record multiple times. In such case, when modifying the selected records, there could be duplicated ids in the arguments of the different RPCs (write, unlink, call). Processing the same record multiple times in backend could cause unexpected issues. So in this PR, we filter out the duplicated records ids before each call, to work with a clean recordset in backend.
Original PR description
In the context of grouping records on a Many2Many field (e.g. tags of tasks) in the list view, it's possible to select the same record multiple times. In such case, when modifying the selected records, there could be duplicated ids in the arguments of the different RPCs (write, unlink, call). Processing the same record multiple times in backend could cause unexpected issues. So in this PR, we filter out the duplicated records ids before each call, to work with a clean recordset in backend. version-17.4 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198137 Forward-Port-Of: odoo/odoo#195224
The tour requires the commercial_company_name to be 'yourcompany' which is not the case when demo data is not installed. https://runbot.odoo.com/odoo/runbot.build.error/116103 Forward-Port-Of: odoo/odoo#198303
Original PR description
The tour requires the commercial_company_name to be 'yourcompany' which is not the case when demo data is not installed. https://runbot.odoo.com/odoo/runbot.build.error/116103 Forward-Port-Of: odoo/odoo#198303
When message content is not markup(), it will not render its content as HTML but as text when using t-out. This case was not taken into account when manually processing the content, leading to incorrectly detecting links or other features within purely text content. Those are now properly ignored. From https://github.com/odoo/odoo/pull/190461 Forward-Port-Of: odoo/odoo#198331 Forward-Port-Of: odoo/odoo#197343
Original PR description
When message content is not markup(), it will not render its content as HTML but as text when using t-out. This case was not taken into account when manually processing the content, leading to incorrectly detecting links or other features within purely text content. Those are now properly ignored. From https://github.com/odoo/odoo/pull/190461 Forward-Port-Of: odoo/odoo#198331 Forward-Port-Of: odoo/odoo#197343
Before this PR, the chat bot would continue even after forwarding an operator to the visitor when the step contained a message. Steps to reproduce: - Create a chat bot script with three steps: "text", "free_input_single", "fw_operator" with a message set. - Start the bot as a visitor, the operator is correctly added to the channel but the input is not available, the conversation is considered as ended. This is due to a race conditions when processing the notifications coming on the
Original PR description
Before this PR, the chat bot would continue even after forwarding an operator to the visitor when the step contained a message. Steps to reproduce: - Create a chat bot script with three steps:…
Before this PR, the chat bot would continue even after forwarding an operator to the visitor when the step contained a message. Steps to reproduce: - Create a chat bot script with three steps: "text", "free_input_single", "fw_operator" with a message set. - Start the bot as a visitor, the operator is correctly added to the channel but the input is not available, the conversation is considered as ended. This is due to a race conditions when processing the notifications coming on the bus. When the message is posted, the operator is not yet added, this information is sent on the bus. When the operator is added, another payload is sent on the bus informing an operator was found. However, the processing of the message notification is delayed and comes after the processing of the newest information, leading to an incorrect state. To solve this issue, ensure insertions are made immediately in the new message handler and send updated data on the bus to ensure the state is correct. This PR also fixes identifying fields issue wiht chat bot steps (step is identified by script step and message not channel. opw-4514479 Forward-Port-Of: odoo/odoo#197242 Forward-Port-Of: odoo/odoo#196584
Follow-up of https://github.com/odoo/odoo/pull/195734 PR above reintroduced composer when livechat is inactive for operators, so that they can still make leads or post a message to visitor as a last resort. However the showing of composer was only made in chat window: the discuss app was still hiding the composer for operator on livechat end. This commit fixes the issue in discuss app, by showing the composer to livechat operators when the livechat has ended. Part of Task-4528331
Original PR description
Follow-up of https://github.com/odoo/odoo/pull/195734 PR above reintroduced composer when livechat is inactive for operators, so that they can still make leads or post a message to visitor as a last resort. However the showing of composer was only made in chat window: the discuss app was still hiding the composer for operator on livechat end. This commit fixes the issue in discuss app, by showing the composer to livechat operators when the livechat has ended. Part of Task-4528331 Before  After  Forward-Port-Of: odoo/odoo#198203
Before this commit, the button to collapse/expand participants in the discuss sidebar was not easy to spot. The button has low impact on UI, which makes sense because the most important elements are the call participants. However, the lack of style change on mouse hovering doesn't help noticing its presence. This commit improves by changing its visibility slightly on mouse-hovering the call participants. A background effect is also added when mouse-hovering precisely this button, so that i
Original PR description
Before this commit, the button to collapse/expand participants in the discuss sidebar was not easy to spot. The button has low impact on UI, which makes sense because the most important elements are the call participants. However, the lack of style change on mouse hovering doesn't help noticing its presence. This commit improves by changing its visibility slightly on mouse-hovering the call participants. A background effect is also added when mouse-hovering precisely this button, so that it's very obvious that this is a clickable button.   Forward-Port-Of: odoo/odoo#198305
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#197484
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197484
This commit fixes two pivot tests failing randomly by ensuring that we wait for the download to be completed before ending the test or asserting the steps. Runbot error-134572 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#198402 Forward-Port-Of: odoo/odoo#198098
Original PR description
This commit fixes two pivot tests failing randomly by ensuring that we wait for the download to be completed before ending the test or asserting the steps. Runbot error-134572 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#198402 Forward-Port-Of: odoo/odoo#198098
Versions: --------- 18.0+ Issue: ------ When uploading a document using the `Upload` button, the document is always assigned to the user's main company, regardless of the selected company. Steps to Reproduce: ------------------- 1. Create a secondary company that the current user can access. 2. Navigate to Sales / Configuration / Sales Orders / Headers/Footers. 3. Switch the user's current company to the secondary company. 4. Click the `Upload` button and select any document.
Original PR description
Versions: --------- 18.0+ Issue: ------ When uploading a document using the `Upload` button, the document is always assigned to the user's main company, regardless of the selected company. Steps to…
Versions:
---------
18.0+
Issue:
------
When uploading a document using the `Upload` button, the document is always assigned to the user's main company, regardless of the selected company.
Steps to Reproduce:
-------------------
1. Create a secondary company that the current user can access.
2. Navigate to Sales / Configuration / Sales Orders / Headers/Footers.
3. Switch the user's current company to the secondary company.
4. Click the `Upload` button and select any document.
- Notice that no document is added to the secondary company's scope.
5. Switch back to the primary company.
- The uploaded document is available under the primary company instead of the secondary one.
Cause:
------
During the upload process, no company-specific information is provided to associate the document with the selected company.
Due to the inheritance of the `ir.attachment` model, it uses `self.env.company` as the default company value for the document[^1]. Because the upload happens via the `HttpDispatcher`, no `allowed_company_ids` context value is provided to the request. Without this context value present, `request.env.company` defaults to the main company of the current user[^2].
Fix:
----
Use the `company_id` associated with the relevant `sale.order.template` (`False` when uploading documents not linked to a template).
opw-4472602
[^1]: https://github.com/odoo/odoo/blob/d99e44f22634ac589a940d85fab84ca2b2e85332/odoo/addons/base/models/ir_attachment.py#L408-L409
[^2]: https://github.com/odoo/odoo/blob/d99e44f22634ac589a940d85fab84ca2b2e85332/odoo/api.py#L680-L681
Forward-Port-Of: odoo/odoo#197999
Forward-Port-Of: odoo/odoo#196842In the survey stats, the number of votes for a multiple choice answer displayed the label "Votes" without it being translatable. This commit makes it translatable. [task-4421055](https://www.odoo.com/odoo/project.task/4421055) Forward-Port-Of: odoo/odoo#197157 Forward-Port-Of: odoo/odoo#196704
Original PR description
In the survey stats, the number of votes for a multiple choice answer displayed the label "Votes" without it being translatable. This commit makes it translatable. [task-4421055](https://www.odoo.com/odoo/project.task/4421055) Forward-Port-Of: odoo/odoo#197157 Forward-Port-Of: odoo/odoo#196704
Issue: A blank screen appears after canceling an order. Steps to reproduce: - Open a POS restaurant on **Community** - Select a table - Order some food - Reopen the order - Cancel the order runbot Error: 113288 Forward-Port-Of: odoo/odoo#198371
Original PR description
Issue: A blank screen appears after canceling an order. Steps to reproduce: - Open a POS restaurant on **Community** - Select a table - Order some food - Reopen the order - Cancel the order runbot Error: 113288 Forward-Port-Of: odoo/odoo#198371
Description of the issue/feature this PR addresses: The o_rating_label css is not properly configured, which caused an unintended extra border line to appear on the rating image This commit removes the border explicitly in the CSS file to correct the visual issue. opw-4482430 Related Commit: https://github.com/odoo/odoo/commit/9e8a709f80e3e4620bfa92decb383781b04d64c8#diff-b7f943d7f11d281f92f78810d7da31d5ab33d4e5952d66ce973d0bc24278ebcd Current behavior before PR:  Desired behavior after PR is merged: The border will be invisible and everything else still functional without any influence --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196513
**Problem**: Wrapping links with `feff` chars allows placing the cursor at their inner or outer edge. However, if the parent is `contenteditable=false`, this behavior is unnecessary since navigation outside the link is already blocked. **Example**: `<div contenteditable=false>/ZWS/<a contenteditable=true>` `/ZWS/ab[]c</a></div>` Pressing the left arrow key repeatedly places the cursor at the start of `a`, before `feff`: `<div contenteditable=false>/ZWS/<a contenteditable=true>` `[]/
Original PR description
**Problem**: Wrapping links with `feff` chars allows placing the cursor at their inner or outer edge. However, if the parent is `contenteditable=false`, this behavior is unnecessary since navigation…
**Problem**: Wrapping links with `feff` chars allows placing the cursor at their inner or outer edge. However, if the parent is `contenteditable=false`, this behavior is unnecessary since navigation outside the link is already blocked. **Example**: `<div contenteditable=false>/ZWS/<a contenteditable=true>` `/ZWS/ab[]c</a></div>` Pressing the left arrow key repeatedly places the cursor at the start of `a`, before `feff`: `<div contenteditable=false>/ZWS/<a contenteditable=true>` `[]/ZWS/abc</a></div>` This forces an extra left-arrow press to move past `a`, which is redundant since only the link itself is editable. **Solution**: Wrap links with `feff` only if their parent element is `contenteditable=true`. **Steps to Reproduce**: 1. Add a Form snippet. 2. Focus on the "Submit" button. 3. Press the "Home" button to move the cursor to the start. 4. Press the right arrow key twice. - **Expected**: Cursor moves after the first visible char. - **Issue**: Cursor stops prematurely before the character. opw-4505962 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#195704
Steps to Reproduce: - Open POS restaurant. - Select a table. - Order some food. - Return to the floor plan. - Select the same table again. - Add a kitchen note to a line. - Click Order. - The note update is correctly sent to the preparation display. The "order" button is still displayed and the line with the note is still marked as “changed”. Forward-Port-Of: odoo/odoo#198213 Forward-Port-Of: odoo/odoo#198094
Original PR description
Steps to Reproduce: - Open POS restaurant. - Select a table. - Order some food. - Return to the floor plan. - Select the same table again. - Add a kitchen note to a line. - Click Order. - The note update is correctly sent to the preparation display. The "order" button is still displayed and the line with the note is still marked as “changed”. Forward-Port-Of: odoo/odoo#198213 Forward-Port-Of: odoo/odoo#198094
Issue Before This Commit: ----------------------------------------------- - Purchase tab and checkbox is visible in the product form without installing Purchase. Steps to Produce: ----------------------------------------------- => Purchase checkbox Problem: Purchase checkbox is always visible in the product form which is incorrect. => Purchase tab 1. Install Sales. 2. On Unit and Measure. Problem: Now Purchase tab is visible in the product form without installing Purchase which is
Original PR description
Issue Before This Commit: ----------------------------------------------- - Purchase tab and checkbox is visible in the product form without installing Purchase. Steps to Produce: ----------------------------------------------- => Purchase checkbox Problem: Purchase checkbox is always visible in the product form which is incorrect. => Purchase tab 1. Install Sales. 2. On Unit and Measure. Problem: Now Purchase tab is visible in the product form without installing Purchase which is incorrect. With this commit: ----------------------------------------------- - Purchase tab and checkbox is visible in the product form only after installing Purchase. Task-id: 4391349 Forward-Port-Of: odoo/odoo#190610
It is possible to have a lead linked to registration from different events by using the merge method on the leads. Currently once they are merged it becomes impossible to update any field that is synced as syncing expects we will only encounter one event. We just default to the first event for the name. Additionally the test revealed that if the lead doesn't have a description and a partner is added, the update mechanism crashes. task-4531433 Forward-Port-Of: odoo/odoo#198380 Forwar
Original PR description
It is possible to have a lead linked to registration from different events by using the merge method on the leads. Currently once they are merged it becomes impossible to update any field that is synced as syncing expects we will only encounter one event. We just default to the first event for the name. Additionally the test revealed that if the lead doesn't have a description and a partner is added, the update mechanism crashes. task-4531433 Forward-Port-Of: odoo/odoo#198380 Forward-Port-Of: odoo/odoo#196848
Versions -------- - 17.0+ Steps ----- 1. Have a PNG image with a transparent background; - e.g. https://odoocdn.com/openerp_website/static/src/img/assets/png/odoo_logo.png 3. use it as main image for a product; 4. upload it again as extra image via the website editor; 5. enable click on zoom for the images; 6. click on the images. Issue ----- - The main image gets displayed with a black background. - The extra image gets displayed with a white background. Cause ----- -
Original PR description
Versions
--------
- 17.0+
Steps
-----
1. Have a PNG image with a transparent background;
- e.g. https://odoocdn.com/openerp_website/static/src/img/assets/png/odoo_logo.png
3. use it as main image for a product;
4. upload it again as extra image via the website editor;
5. enable click on zoom for the images;
6. click on the images.
Issue
-----
- The main image gets displayed with a black background.
- The extra image gets displayed with a white background.
Cause
-----
- The `img` element of the main image has the `bg-black` class.
- PNG images uploaded via the `website_sale` editor get converted to WEBP, and then drawn on a white canvas before getting stored.
Solution
--------
- Remove the `bg-black` class from the `img` element.
- When converting to WEBP, use a transparent canvas.
- Do the same for WEBP images uploaded via `ImageField`.
opw-3848324
Forward-Port-Of: odoo/odoo#197603When the chat windows overlap the document action buttons, the buttons are floating on top of the chatwindow. This happens because chat window was lower than document actions, which uses `$zindex-dropdown` (`z-index: 1000`). This commit fixes the issue by putting chat window above `$zindex-dropdown`. before/after:  . This commit fixes the issue by putting chat window above `$zindex-dropdown`. before/after:   --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198362
**Behavior before PR:** When user edits link and inserts 3 or more digits, link url gets converted to telephone url. This happens because in sanitize.js `deduceURLfromText` method converts url to telephone url if label matches the regex. **Behavior after PR:** Now, inserting 3 or more digits will not convert existing url to telephone url directly. If current link is telephone url or label starts with `"tel:"` prefix then url will get converted to telephone url if label matches the `PHO
Original PR description
**Behavior before PR:** When user edits link and inserts 3 or more digits, link url gets converted to telephone url. This happens because in sanitize.js `deduceURLfromText` method converts url to telephone url if label matches the regex. **Behavior after PR:** Now, inserting 3 or more digits will not convert existing url to telephone url directly. If current link is telephone url or label starts with `"tel:"` prefix then url will get converted to telephone url if label matches the `PHONE_REGEX`. task-4173806 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197701 Forward-Port-Of: odoo/odoo#193420
**Current behaviour before PR:** When single cell is selected in a table, trying to apply color closes color palette and color is not getting applied on it. This happens because applying color on single cell changes selection and cell gets deselected in _onSelectionChange. **Desired behaviour after PR:** Now, it is possible to apply color on a single cell. task-3433784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-
Original PR description
**Current behaviour before PR:** When single cell is selected in a table, trying to apply color closes color palette and color is not getting applied on it. This happens because applying color on single cell changes selection and cell gets deselected in _onSelectionChange. **Desired behaviour after PR:** Now, it is possible to apply color on a single cell. task-3433784 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197455 Forward-Port-Of: odoo/odoo#173845
Description of the issue/feature this PR addresses: This PR aims to add better visibility to own checks. Made voided and debited checks appear gray on tree view in order to make handed checks more eye-catching. I also refactor the labels on search views for own and third party checks to make them consistent with "Issue state" field. Lastly, I refactored account.payment tree view to make decoration-muted work well when "state" is "Canceled". Current behavior before PR: - l10n_latam_check
Original PR description
Description of the issue/feature this PR addresses: This PR aims to add better visibility to own checks. Made voided and debited checks appear gray on tree view in order to make handed checks more…
Description of the issue/feature this PR addresses: This PR aims to add better visibility to own checks. Made voided and debited checks appear gray on tree view in order to make handed checks more eye-catching. I also refactor the labels on search views for own and third party checks to make them consistent with "Issue state" field. Lastly, I refactored account.payment tree view to make decoration-muted work well when "state" is "Canceled". Current behavior before PR: - l10n_latam_check Debited checks records appear black on tree view, and "Issue state" tag on green. Voided checks records appear gray on tree view as well as "Issue state" tag.  - account "Canceled" payments records appear black on tree view. Desired behavior after PR is merged: - l10n_latam_check Voided or debited checks records will appear with gray color on tree view, as well as "Issue state" tag. Handed checks records will appear blue on tree view, as well as "Issue state" tag.  - account "Canceled" payments records appear gray on tree view. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197515 Forward-Port-Of: odoo/odoo#195595
Steps to reproduce the bug: - Ceate a product - add a new attribute with "variant creation mode" = "Dynamic" - create a BoM for this product - make sure to add an operation in the operational lines of the bom - Click on the BoM smart button then BoM overview smart button Problem: Traceback is raise, because in the BoM overview it creates a BoM report, and it adds the operational lines(operations) to the report, some operations are skipped based on the function `_match_all_variant_v
Original PR description
Steps to reproduce the bug: - Ceate a product - add a new attribute with "variant creation mode" = "Dynamic" - create a BoM for this product - make sure to add an operation in the operational lines…
Steps to reproduce the bug: - Ceate a product - add a new attribute with "variant creation mode" = "Dynamic" - create a BoM for this product - make sure to add an operation in the operational lines of the bom - Click on the BoM smart button then BoM overview smart button Problem: Traceback is raise, because in the BoM overview it creates a BoM report, and it adds the operational lines(operations) to the report, some operations are skipped based on the function `_match_all_variant_values` that checks if the product has all the variant values. This function expects a product to run on, but in case of dynamic attribute a product will only be created if it is included in a sales order, hence the product is empty and the function raise the exception. Since the BoM report is for the product variants, then we can skip the operational line if no product is used in the BoM, and hence the `_match_all_variant_values` won't be called over empty product. opw-4518723 **Possible approaches for the Issue**: 1- Change the product variable in the bom object in the _get_bom_data function to be the product.template instead of the concrete product, this will affect many other functions in the generating of the bom report as **_get_resupply_route_info** function that calls **_get_rules_from_location** which is not a function on the 'product.template' model. Considering that approach requires anticipating the case of having the product.template in the bom in all the sections in the bom report. 2- Keep the porduct in the bom object empty one since we don't have with dynamic attributes. And we just skip operational lines if the porduct is empty so the **_match_all_variant_values** is not called. [**IMPLEMENTED**] (This change doesn't require more changes as everything will be still working with the expected model type 'product.product' but the operations and other data will be empty in the report which make sense because they are variant related ) Current behavior before PR: the app show error whenever a BoM overview smart button is clicked for a BoM of a product with dynamic attribute variants Desired behavior after PR is merged: The BoM overview report should be shown normally with no problems. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196264
Since 1 January 2025, the VAT rates in Slovakia have increased from 20% to 23% and from 10% to 19%. This commit adds the new taxes and updates the fiscal position accordingly. task-4502344 Forward-Port-Of: odoo/odoo#197782 Forward-Port-Of: odoo/odoo#194686
Original PR description
Since 1 January 2025, the VAT rates in Slovakia have increased from 20% to 23% and from 10% to 19%. This commit adds the new taxes and updates the fiscal position accordingly. task-4502344 Forward-Port-Of: odoo/odoo#197782 Forward-Port-Of: odoo/odoo#194686
There is an inconsistency in the product description during 3-step incoming shipments. How to reproduce the issue: - Enable three-step incoming shipments. - Create a product with a description for receipts (e.g., 'receipt') and a different description for internal transfers (e.g., 'transfer'). - Create a receipt with the product, validate it, and open the corresponding picking for the internal transfer. The move_line description_picking is taken from the receipt description instea
Original PR description
There is an inconsistency in the product description during 3-step incoming shipments. How to reproduce the issue: - Enable three-step incoming shipments. - Create a product with a description for receipts (e.g., 'receipt') and a different description for internal transfers (e.g., 'transfer'). - Create a receipt with the product, validate it, and open the corresponding picking for the internal transfer. The move_line description_picking is taken from the receipt description instead of the internal transfer description (it shows 'receipt' instead of 'transfer'). opw-4406582 PR with very similar issue: https://github.com/odoo/enterprise/pull/77283 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197834 Forward-Port-Of: odoo/odoo#193996
Here is description of modifications for each tour: modified: addons/barcodes/static/src/barcode_handlers.js Use hoot event instead of custom event defined in macro.js to uniform code and behaviors. modified: addons/l10n_br_website_sale/static/tests/tours/brazilian_address.js Add a delay to wait the form is loaded to avoid problem with _selectState(id) function. modified: addons/point_of_sale/static/tests/tours/utils/chrome_util.js U
Original PR description
Here is description of modifications for each tour: modified: addons/barcodes/static/src/barcode_handlers.js Use hoot event instead of custom event defined in macro.js to uniform code and behaviors.…
Here is description of modifications for each tour:
modified: addons/barcodes/static/src/barcode_handlers.js
Use hoot event instead of custom event defined in macro.js to
uniform code and behaviors.
modified: addons/l10n_br_website_sale/static/tests/tours/brazilian_address.js
Add a delay to wait the form is loaded to avoid problem with
_selectState(id) function.
modified: addons/point_of_sale/static/tests/tours/utils/chrome_util.js
Use waitFor in run of step because .fa-circle-o-notch should not
appears ... then of course body:not(:has(.fa-circle-o-notch)) also
not and then tour crashes.
modified: addons/pos_self_order/static/tests/tours/self_order_kiosk_tour.js
Because of the background animation, clicking on order now
may not do anything... so we'll click until we get to take out.
modified: addons/pos_self_order/tests/test_self_order_kiosk.py
Let's see comment of previous file ... We could need more time
for the tours.
modified: addons/test_website/static/tests/tours/restricted_editor.js
:contains(text) => Check that textContent.test(regex)
:has(class) => Check the element classList contains the class
modified: addons/website/static/tests/tours/html_editor.js
Additionnal steps to ensure tour take the good way.
modified: addons/website_slides/static/tests/tours/slides_tour_tools.js
Uniformize the behavior for two tours with clickOnAddTagDropdown
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#198214
Forward-Port-Of: odoo/odoo#197871In this commit, we simplify the macro API by removing onTimeout() and keeping only onError(). Timeout is ultimately just one type of error that can happen in macro.js. 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#198170
Original PR description
In this commit, we simplify the macro API by removing onTimeout() and keeping only onError(). Timeout is ultimately just one type of error that can happen in macro.js. 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#198170
Related to https://github.com/odoo/enterprise/pull/78533 Forward-Port-Of: odoo/odoo#196524 Forward-Port-Of: odoo/odoo#196447
Original PR description
Related to https://github.com/odoo/enterprise/pull/78533 Forward-Port-Of: odoo/odoo#196524 Forward-Port-Of: odoo/odoo#196447
Add tour for the fix b395f98. Forward-Port-Of: odoo/odoo#198096
Original PR description
Add tour for the fix b395f98. Forward-Port-Of: odoo/odoo#198096
When calling preserve_existing_tags_on_taxes(), the module name is passed as argument, cf https://github.com/odoo/odoo/blob/18.0/addons/account/models/chart_template.py#L38. The module name is now l10n_fr_account instead of l10n_fr (account.account.tag are now defined in l10n_fr_account, cf https://github.com/odoo/odoo/blob/18.0/addons/l10n_fr_account/data/account_chart_template_data.xml#L3). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forwar
Original PR description
When calling preserve_existing_tags_on_taxes(), the module name is passed as argument, cf https://github.com/odoo/odoo/blob/18.0/addons/account/models/chart_template.py#L38. The module name is now l10n_fr_account instead of l10n_fr (account.account.tag are now defined in l10n_fr_account, cf https://github.com/odoo/odoo/blob/18.0/addons/l10n_fr_account/data/account_chart_template_data.xml#L3). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198119
Currently, if you have a product named "clémentines" and input "clémentine" in the search bar it will not be found. Steps to reproduce: ------------------- * Create a product sold in POS named clémentine * Open a shop which does not restrict categories * Input in the search bar "clémentine" > Observation: No product for "clémentine" Why the fix: ------------ The product `searchString` is `unaccent` and `toLowerCase` while the searchWord is only `toLowerCase`. https://github.com/o
Original PR description
Currently, if you have a product named "clémentines" and input "clémentine" in the search bar it will not be found. Steps to reproduce: ------------------- * Create a product sold in POS named clémentine * Open a shop which does not restrict categories * Input in the search bar "clémentine" > Observation: No product for "clémentine" Why the fix: ------------ The product `searchString` is `unaccent` and `toLowerCase` while the searchWord is only `toLowerCase`. https://github.com/odoo/odoo/blob/f82f768729d897fa54b04789f4e0637ed1bb27f4/addons/point_of_sale/static/src/app/screens/product_screen/product_screen.js#L397-L397 opw-4558898 Forward-Port-Of: odoo/odoo#198164 Forward-Port-Of: odoo/odoo#197925
[1] introduced a new URL mechanism where the menu_id isn't in the URL anymore. To find the corresponding menu on reload, the web client searches for a menu corresponding to the first application in the URL. The advantage of this, is that a clean URL without superflow is used. One of the limitations is that if the first action in the URL is not linked to a menu, the menu may disappear on reload. This PR fixes this issue by creating a fallback to the last used menu. This is done to improve the
Original PR description
[1] introduced a new URL mechanism where the menu_id isn't in the URL anymore. To find the corresponding menu on reload, the web client searches for a menu corresponding to the first application in the URL. The advantage of this, is that a clean URL without superflow is used. One of the limitations is that if the first action in the URL is not linked to a menu, the menu may disappear on reload. This PR fixes this issue by creating a fallback to the last used menu. This is done to improve the user experience on reload. Note that this only fixes the problem on reload. If the URL is opened in a new tab, or shared, the menu will not be display. [1] https://github.com/odoo/odoo/commit/c63d14a0485a553b74a8457aee158384e9ae6d3f opw-198103 Forward-Port-Of: odoo/odoo#198294 Forward-Port-Of: odoo/odoo#198122
Before this PR, upon connecting an IoT box to WiFi, the user was left with a simple message saying that the IoT box would attempt to connect to the network. There was no context given with the pairing code on either the screen or status printout. After this PR, there are additional instructions directing the user to find their pairing code and enter it into the IoT app on their database. task-4586907    --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198260
Steps to reproduce: - Create a new blank spreadsheet in Documens - Hit the Share button - Open the sharing link in a incognito window => it says "Frozen and copied on ..." even though it's not frozen at all See Enterprise PR Task-4583953 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/odo
Original PR description
Steps to reproduce: - Create a new blank spreadsheet in Documens - Hit the Share button - Open the sharing link in a incognito window => it says "Frozen and copied on ..." even though it's not frozen at all See Enterprise PR Task-4583953 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#198015
Steps to reproduce: - Install pos_restaurant - In restaurant's configs, set 'Customer Display' to 'Another device' - Open the customer display in another tab, and start adding products from the main display -> The list of products on the customer display doesn't auto scroll when the products overlow the view. Explanation: The last `OrderLine` is supposed to be pass a `selected` prop, so it can be targeted from JavaScript and scrolled into the view [1]. However, this prop was removed in 1b
Original PR description
Steps to reproduce: - Install pos_restaurant - In restaurant's configs, set 'Customer Display' to 'Another device' - Open the customer display in another tab, and start adding products from the main display -> The list of products on the customer display doesn't auto scroll when the products overlow the view. Explanation: The last `OrderLine` is supposed to be pass a `selected` prop, so it can be targeted from JavaScript and scrolled into the view [1]. However, this prop was removed in 1bc90a18807c43206c4620d7faad2579a3a61fc9. Now we add it back. [1]: https://github.com/odoo/odoo/blob/18.0/addons/point_of_sale/static/src/app/generic_components/order_widget/order_widget.js#L28-L30 opw-4458215 Forward-Port-Of: odoo/odoo#198223 Forward-Port-Of: odoo/odoo#195712
**Current behavior:** For `real_time`, `avco` prod: When posting the bill of a reception which originated from a PO with a foreign currency, if a return for the receipt was generated as well as a return for that return, there will be an extraneous SVL created which illogically affects the product's `standard_price` (product value has increased from nowhere). **Expected behavior:** The product cost prior to posting the bill and after posting the bill is equal. **Steps to reproduce:** 1.
Original PR description
**Current behavior:** For `real_time`, `avco` prod: When posting the bill of a reception which originated from a PO with a foreign currency, if a return for the receipt was generated as well as a…
**Current behavior:** For `real_time`, `avco` prod: When posting the bill of a reception which originated from a PO with a foreign currency, if a return for the receipt was generated as well as a return for that return, there will be an extraneous SVL created which illogically affects the product's `standard_price` (product value has increased from nowhere). **Expected behavior:** The product cost prior to posting the bill and after posting the bill is equal. **Steps to reproduce:** 1. Create an `avco` + `real_time` costing/valuated productA 2. Activate 2 additional currencies + give them unique exchange rates 3. Create a purchase order in the first of the two additional currencies, for `N` units of productA at $`price_unit` 4. Confirm the PO -> receive the product 5. Create another purchase order in the second of the two currencies, again `N` units @ $`price_unit` 6. Confirm + receive, then generate a return for this reception 7. Generate a return for the return of step 6 8. Note the current `standar_price` of ProductA 9. For the second purchase order (the one with the returns) create the vendor bill 10. Observe that the `standard_price` of ProductA has increased without any legitimate basis **Cause of the issue:** In `_generate_price_difference_vals`: https://github.com/odoo/odoo/blob/55658e7f43375d7e1af07293e2cd9d1cc4b33883/addons/purchase_stock/models/account_move_line.py#L307-L314 We operate with the assumption that, because we are in a return of a return, any existing pdiff will have already been compensated for- so we take the POL price unit at face value to compare with the AML price unit. But, in case the POL and AML are in different currencies, this will fail to prevent a pdiff SVL from being created. **Fix:** Convert the purchase line's returned price unit to the currency used by the layer for which we are finding the pdiff. opw-4334372 Forward-Port-Of: odoo/odoo#198129 Forward-Port-Of: odoo/odoo#196222
**Problem**: When applying formatting (e.g., Bold) to a selection that includes a link, isZwnbsp characters inside the DOM cause incorrect formatting state detection. isZwnbsp nodes are not formatted, but they are still considered when checking the selection state. **Solution**: Modify `isSelectionFormat` to check only visible text nodes. isZwnbsp characters should be ignored as they do not get formatted. Also when split we remove `FEFF` chars from text node which in case the node has
Original PR description
**Problem**: When applying formatting (e.g., Bold) to a selection that includes a link, isZwnbsp characters inside the DOM cause incorrect formatting state detection. isZwnbsp nodes are not formatted, but they are still considered when checking the selection state. **Solution**: Modify `isSelectionFormat` to check only visible text nodes. isZwnbsp characters should be ignored as they do not get formatted. Also when split we remove `FEFF` chars from text node which in case the node has only one `FEFF` will become an empty node We should exludes those nodes from the check too. **Steps to Reproduce**: 1. Type a link followed by a space. 2. Select all the text. 3. Apply "Bold." 4. The "Bold" button in the toolbar remains inactive incorrectly. opw-4555595 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196828
Issue: The grid elements on the import Lots dialog are placed in one column instead of two, which misses up the layout. Reproduction steps: 1. install "purchase_stock" 2. create a product tracked by lots 3. make an RFQ for that product and confirm it 4. click on the generated receipt smart button 5. in "Operations" tab, click fa-list icon to open the dialog 6. in the dialog, click "Import Serials/Lots Reason: The bug was introduced in [239e75b1385fa023e97396baa0c8d46c50997dda](http
Original PR description
Issue: The grid elements on the import Lots dialog are placed in one column instead of two, which misses up the layout. Reproduction steps: 1. install "purchase_stock" 2. create a product tracked by…
Issue:
The grid elements on the import Lots dialog are placed in one column instead of two, which misses up the layout.
Reproduction steps:
1. install "purchase_stock"
2. create a product tracked by lots
3. make an RFQ for that product and confirm it
4. click on the generated receipt smart button
5. in "Operations" tab, click fa-list icon to open the dialog
6. in the dialog, click "Import Serials/Lots
Reason:
The bug was introduced in [239e75b1385fa023e97396baa0c8d46c50997dda](https://github.com/odoo/odoo/commit/239e75b1385fa023e97396baa0c8d46c50997dda#diff-1377579fdb76de80cd31ca67d798b752a90600ab4c82a3c8799786a130b7a46fR431-R433), where the following style was added
```css
.o_cell:first-child:last-child {
grid-column: span 2;
}
```
which applies for the children of the first and the third grid elements; However, since the first and the third grid elements have `display: contents`, the `grid-column: span 2` of their children messes up the grid layout, and makes it 4x1 instead of 2x2.
The fix:
Remove `display: contents` on the first and third grid elements, as it seems to not be useful. Have tested on web and mobile layouts.
opw-4505725
Forward-Port-Of: odoo/odoo#198050
Forward-Port-Of: odoo/odoo#195396Currently, a traceback is occurring when the user tries to click the `plans` smart button in the hr department record. To reproduce this issue: 1) Install hr 2) Open any hr department record 3) Click the `Plans` smart button Error:- ``` ValueError: malformed node or string on line 1: <ast.Name object at 0x7333bacc> ``` This error was occurring because of the latest changes from the below commit, https://github.com/odoo/odoo/pull/196430/commits/ec4991330224784571d850fb87ee7940a07
Original PR description
Currently, a traceback is occurring when the user tries to click the `plans` smart button in the hr department record. To reproduce this issue: 1) Install hr 2) Open any hr department record 3) Click…
Currently, a traceback is occurring when the user tries to click the `plans` smart button in the hr department record. To reproduce this issue: 1) Install hr 2) Open any hr department record 3) Click the `Plans` smart button Error:- ``` ValueError: malformed node or string on line 1: <ast.Name object at 0x7333bacc> ``` This error was occurring because of the latest changes from the below commit, https://github.com/odoo/odoo/pull/196430/commits/ec4991330224784571d850fb87ee7940a071080a We used `literal_eval()` from the below line to evaluate the domain in action. Which contains `allowed_company_ids`. This leads to the above error while evaluating in `literal_eval()`. https://github.com/odoo/odoo/blob/b070f9a4aa179799e3412d18b8faba07349bbf7b/addons/hr/models/hr_department.py#L147-L153 The domain in the action was modified from the below commit recently, https://github.com/odoo/odoo/pull/193572/commits/c2243abca397ab6622ec85e6fe6adbfef0d7c47b We can resolve this issue by replacing the `allowed_company_ids` by accessing the value of `allowed_company_ids` from context. sentry-6285774985 Forward-Port-Of: odoo/odoo#197308
taskid : 4471762 Forward-Port-Of: odoo/enterprise#77483
Original PR description
taskid : 4471762 Forward-Port-Of: odoo/enterprise#77483
This commit fixes a cohort test failing randomly by ensuring that we wait for the download to be completed before ending the test or asserting the steps. Runbot error-134572 Forward-Port-Of: odoo/enterprise#79738 Forward-Port-Of: odoo/enterprise#79555
Original PR description
This commit fixes a cohort test failing randomly by ensuring that we wait for the download to be completed before ending the test or asserting the steps. Runbot error-134572 Forward-Port-Of: odoo/enterprise#79738 Forward-Port-Of: odoo/enterprise#79555
With this commit ================ - Renamed the return value of the getName method to `Inventory Count` for consistency with the Inventory Count button on the main page. - Rephrased toaster message for Inventory Adjustment Validation. - Updated the domain in the product form of Inventory Count to include `storable/inventory tracked` products. Task: [4458119](https://www.odoo.com/odoo/my-tasks/4458119) Forward-Port-Of: odoo/enterprise#79715 Forward-Port-Of: odoo/enterprise#79154
Original PR description
With this commit ================ - Renamed the return value of the getName method to `Inventory Count` for consistency with the Inventory Count button on the main page. - Rephrased toaster message for Inventory Adjustment Validation. - Updated the domain in the product form of Inventory Count to include `storable/inventory tracked` products. Task: [4458119](https://www.odoo.com/odoo/my-tasks/4458119) Forward-Port-Of: odoo/enterprise#79715 Forward-Port-Of: odoo/enterprise#79154
before this commit: Shipping methods are missing default vlaue of shipping functionalities, which leads to some methods getting filtered out incorrectly. After this commit: Default value of the shipping functionalities are fetched and checked to select the correct shipping method based on user filters. opw-4167675 Forward-Port-Of: odoo/enterprise#79518
Original PR description
before this commit: Shipping methods are missing default vlaue of shipping functionalities, which leads to some methods getting filtered out incorrectly. After this commit: Default value of the shipping functionalities are fetched and checked to select the correct shipping method based on user filters. opw-4167675 Forward-Port-Of: odoo/enterprise#79518
Different countries have different attendance rules and therefore customizing the attendance entries might be relevant. In order to be able to properly filter we introduce a domain retrieval method which can be properly inherited. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#78402 Forward-Port-Of: odoo/enterprise#78195
Original PR description
Different countries have different attendance rules and therefore customizing the attendance entries might be relevant. In order to be able to properly filter we introduce a domain retrieval method which can be properly inherited. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#78402 Forward-Port-Of: odoo/enterprise#78195
Since the employees see in their 'My Profile' tab the documents on which they are 'Contact'. We need to set them as contact when generating declaration and not only 'read' access. Forward-Port-Of: odoo/enterprise#79689
Original PR description
Since the employees see in their 'My Profile' tab the documents on which they are 'Contact'. We need to set them as contact when generating declaration and not only 'read' access. Forward-Port-Of: odoo/enterprise#79689
Currently a `ParseError` is arising when the user installs the `industry_fsm_sale_report` module after deleting `Field Service` product from the products. Steps to reproduce: --- - Install the `industry_fsm_sale` module - Delete `Field Service` from products - Now install `industry_fsm_sale_report` module Traceback: --- ``` Exception: Cannot update missing record 'industry_fsm_sale.field_service_product' ParseError: while parsing /home/odoo/src/enterprise/saas-18.1/industry_fsm_s
Original PR description
Currently a `ParseError` is arising when the user installs the `industry_fsm_sale_report` module after deleting `Field Service` product from the products.
Steps to reproduce:
---
- Install the `industry_fsm_sale` module
- Delete `Field Service` from products
- Now install `industry_fsm_sale_report` module
Traceback:
---
```
Exception: Cannot update missing record 'industry_fsm_sale.field_service_product'
ParseError: while parsing /home/odoo/src/enterprise/saas-18.1/industry_fsm_sale_report/data/product_product_data.xml:4, somewhere inside <record id="industry_fsm_sale.field_service_product" model="product.product">
<field name="worksheet_template_id" ref="industry_fsm_report.fsm_worksheet_template"/>
</record>
```
This commit solves the above issue by using `forcecreate="False"` to bypass record creation if it violates checks.
sentry-5731062091
Forward-Port-Of: odoo/enterprise#79759
Forward-Port-Of: odoo/enterprise#78988Test that when creating a receipt or internal transfer using the barcode app, the description_picking field of the move_line is not empty. Steps to reproduce the issue: - Create a product with a description for receipts (e.g., 'receipt'). - In the barcode app, create a new receipt and add the product (leave it in draft). - In the inventory app, check the corresponding receipt. - The move_line has no description_picking, even though the product has one. community: https://github.com/o
Original PR description
Test that when creating a receipt or internal transfer using the barcode app, the description_picking field of the move_line is not empty. Steps to reproduce the issue: - Create a product with a description for receipts (e.g., 'receipt'). - In the barcode app, create a new receipt and add the product (leave it in draft). - In the inventory app, check the corresponding receipt. - The move_line has no description_picking, even though the product has one. community: https://github.com/odoo/odoo/pull/193996/files opw-4406582 Forward-Port-Of: odoo/enterprise#79415 Forward-Port-Of: odoo/enterprise#79349
We use a couple manual SELECT queries in marketing_automation. However these do not flush before querying, meaning the result is potentially wrong if there was a change to the queried tables since the last flush. This is not too noticeable under regular use as only non-store computed fields hold statistics. However it does make the method innacurate in some cases. Notably tests need to flush manually. We now flush properly, as should have been done. As is done for the whatsapp ove
Original PR description
We use a couple manual SELECT queries in marketing_automation. However these do not flush before querying, meaning the result is potentially wrong if there was a change to the queried tables since the last flush. This is not too noticeable under regular use as only non-store computed fields hold statistics. However it does make the method innacurate in some cases. Notably tests need to flush manually. We now flush properly, as should have been done. As is done for the whatsapp override from 18.0 onwards. task-4589525 Forward-Port-Of: odoo/enterprise#79673
Related to https://github.com/odoo/odoo/pull/196447 Forward-Port-Of: odoo/enterprise#78568 Forward-Port-Of: odoo/enterprise#78533
Original PR description
Related to https://github.com/odoo/odoo/pull/196447 Forward-Port-Of: odoo/enterprise#78568 Forward-Port-Of: odoo/enterprise#78533
An issue may occur where moves are unbalanced when FEC file lines contain a device with an imprecise rounding factor. Steps to reproduce: - Create or use a currency with rounding = 1. - Add rounding to debit or credit in a FEC file, ensuring the rounded unit amount is not equal; for example, two debit lines at 100.5 and one credit line at 201 (see example in test). - In the Idevise column of the file, use the name of the created device. - Attempt to import the file. An error will occur
Original PR description
An issue may occur where moves are unbalanced when FEC file lines contain a device with an imprecise rounding factor. Steps to reproduce: - Create or use a currency with rounding = 1. - Add rounding to debit or credit in a FEC file, ensuring the rounded unit amount is not equal; for example, two debit lines at 100.5 and one credit line at 201 (see example in test). - In the Idevise column of the file, use the name of the created device. - Attempt to import the file. An error will occur: Moves report incorrect balances: Move with name '<name>' has a balance of 1.00. The issue arises because the created device is used to round the amount instead of the company's device, resulting in 100.5 being rounded to 100, hence the two line of 100 no longer balances with 201. opw-4397836 Forward-Port-Of: odoo/enterprise#79698 Forward-Port-Of: odoo/enterprise#76932
Steps to reproduce: - Create a new blank spreadsheet in Documens - Hit the Share button - Open the sharing link in a incognito window => it says "Frozen and copied on ..." even though it's not frozen at all See Community PR Task-4583953 Forward-Port-Of: odoo/enterprise#79520
Original PR description
Steps to reproduce: - Create a new blank spreadsheet in Documens - Hit the Share button - Open the sharing link in a incognito window => it says "Frozen and copied on ..." even though it's not frozen at all See Community PR Task-4583953 Forward-Port-Of: odoo/enterprise#79520
Users managing loans can set the flag Skip Until Date to skip the first entries. However skipped loan lines won't create any move and this create issues with assignment of the correct state when load should be closed Steps to reproduce - Create a loans as follows: - Name: any - Amount Borrowed: 20,000.00 - Interests: 107.87 - 01/01/2024 - Duration: 12 months - [Loan Settings] Skip Until: 10/31/2024 - Save, compute sheet and confirm Issues: - Once confirmed it doesn'
Original PR description
Users managing loans can set the flag Skip Until Date to skip the first entries. However skipped loan lines won't create any move and this create issues with assignment of the correct state when load should be closed Steps to reproduce - Create a loans as follows: - Name: any - Amount Borrowed: 20,000.00 - Interests: 107.87 - 01/01/2024 - Duration: 12 months - [Loan Settings] Skip Until: 10/31/2024 - Save, compute sheet and confirm Issues: - Once confirmed it doesn't change state from "draft" - If we click once again "Confirm" we will get a traceback error opw-4476981 Forward-Port-Of: odoo/enterprise#79285
before this PR: - The income account was solely derived from the product's configuration. After this PR: - If the product’s income account is not set, we fall back to the default account defined on the POS journal. This ensures the Sales Account used in GSTR-1 computations is properly set. See: https://github.com/odoo/odoo/pull/149816 Forward-Port-Of: odoo/enterprise#79661
Original PR description
before this PR: - The income account was solely derived from the product's configuration. After this PR: - If the product’s income account is not set, we fall back to the default account defined on the POS journal. This ensures the Sales Account used in GSTR-1 computations is properly set. See: https://github.com/odoo/odoo/pull/149816 Forward-Port-Of: odoo/enterprise#79661
Forward-Port-Of: odoo/enterprise#79561
Original PR description
Forward-Port-Of: odoo/enterprise#79561