Friday, July 4, 2025
39 changes · saas-18.4
Enhancements to existing features
This update makes the website shop add-to-cart testing flow more reliable by handling more menu layouts and waiting properly for quantity changes. It helps reduce false test failures and supports smoother validation of online store editing features.
Original PR description
Before this commit: changeOptionInPopover was failed in some cases where dropdown-item element is not div, current selector in changeOptionInPopover was not able to select element. resetDefaultAction in AddToCartOptionPlugin plugin was not shared and we were calling this method from other plugins. addToCart builder actions was not fetched with right name, builder actions are using id of the action class to fetch that specific action. This commit solves all above issues. 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
This update adds a shared foundation for automated startup and data model tests across Point of Sale and related payment, restaurant, loyalty, HR, event, sales, and self-ordering components. It helps validate that PoS data structures and services load correctly, reducing the risk of future changes causing regressions.
Original PR description
*: point_of_sale, pos_account_tax_python, pos_adyen, pos_event, pos_hr, pos_loyalty, pos_pine_labs, pos_razorpay, pos_restaurant, pos_restaurant_adyen, pos_sale, pos_self_order, pos_stripe, pos_viva_com Add a base for running boot tests in PoS. All models available in the PoS have been added via the `models.ServerModel` tool so that they are available in the `MockServer` In this way, we can simulate the generation of the model definitions required for the related model, JS classes and data service. We can now instantiate the related models and call all the methods specific to each model. Forward-Port-Of: odoo/odoo#216514
This update makes automated user journey tests more explicit when an action navigates away from the current page. It helps reduce false failures in testing across checkout, events, live chat, courses, portal security, and point of sale flows, improving release confidence without changing customer-facing behavior.
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#217204 Forward-Port-Of: odoo/odoo#216007
This update adds automated test foundations for several Point of Sale add-ons, making it easier to verify that their screens and data models start correctly. It helps reduce regression risk in appointment, restaurant, IoT, payment, and delivery integrations without changing day-to-day user workflows.
Original PR description
*: pos_appointment, pos_iot, pos_restaurant_appointment, pos_tyro, pos_urban_piper, pos_urban_piper_enhancements Add a base for running boot tests in PoS. All models available in the PoS have been added via the `models.ServerModel` tool so that they are available in the `MockServer` In this way, we can simulate the generation of the model definitions required for the related model, JS classes and data service. We can now instantiate the related models and call all the methods specific to each model. Forward-Port-Of: odoo/enterprise#88898
This update makes automated website sales and rental test journeys clearer about when a page reload is expected. It helps reduce false test failures and improves confidence in future releases without changing the customer-facing experience.
Original PR description
In this commit, we add expectUnloadPage to steps that require it to explicitly declare that the step will cause the page to be unloaded. Forward-Port-Of: odoo/enterprise#89322 Forward-Port-Of: odoo/enterprise#88602
Resolved issues and error corrections
The website builder now shows a more accurate preview of the Color Blocks snippet before it is placed on a page. This helps users make layout choices with confidence because the preview better matches the final page result.
Original PR description
The `s_color_blocks_2` block uses paddings expressed using the `vw` unit. Inside the snippets modal, this makes them evaluated to a value that does not reflect the aspect ratio of the actual block. This commit forces the padding of the block during preview to fixed values so that it better matches the dropped version inside the page. At the time of writing, there is no other block that uses that unit. task-4367641
Features or functions removed from Odoo
An unused scheduled task in the Mail module was removed because it referred to functionality that no longer exists. This avoids unnecessary background processing and prevents potential errors from an outdated configuration.
Original PR description
This commit removes a cron job that called a method removed in odoo/odoo/pull/215866.
Miscellaneous changes
The website builder no longer shows the “Round Corners” setting when editing Font Awesome icons. This removes an unintended option, making the icon settings clearer and reducing confusion for website editors.
Original PR description
The `BorderConfigurator` used in `FontAwesomeOption` did include the field to specify "Round Corners". This was unintended. This commit removes the "Round Corners" field from the "Icon"'s options. task-4367641
Website editors now see image gallery, image wall, and carousel card settings in the expected order again. This makes page editing more predictable and also restores missing border and shadow controls for carousel cards.
Original PR description
Since the conversion to `html_builder`, the image gallery and image wall options order was shuffled. This commit restores the initial order by splitting the options in two templates and specifying sequences on each part. task-4367641
This fixes an issue where newly added image blocks could inherit placeholder styling, making the final image appear faded or incorrectly rounded. Website editors now get the expected image appearance immediately after drag and drop, reducing manual cleanup.
Original PR description
> [BVR] Drag and drop an "Image" Inner Content block. The image has the opacity-50 class (and also the rounded class — unclear why). The opacity-50 class is probably for the placeholder, but it should be removed for the image The commit b401f887a2d844720a34d73ba4dcadb78bf7ee29 adds the argument `node` to `openMediaDialog` in `ImageSnippetOptionPlugin.onSnippetDropped`. This caused the style of the placeholder to be used for the dropped image (including the `opacity-50`) task-4367641
This fix prevents a hidden backup preview frame from interfering with mouse actions in the website builder. Users can resize website elements more reliably, reducing frustration while editing pages.
Original PR description
Since [1] when the fallback iframe was reintroduced in `html_builder`-based website builder, the resize operations do not behave properly anymore - some mouse events seem to be caught by the wrong iframe. This commit avoids this by sending the fallback iframe a bit below the main one. [1]: https://github.com/odoo/odoo/commit/e167c3b4bfeda7b4482a755563dbd0fb90d70cbe task-4367641
Product unit labels are now hidden across sales, purchasing, inventory, manufacturing, and point of sale screens when the Units of Measure feature is not enabled. This reduces unnecessary information and avoids confusion for users who do not use multiple units of measure.
Original PR description
**Description of the issue/feature this PR addresses:** Should not show product uom when the feature "Units of Measure" is not activated  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216905 Forward-Port-Of: odoo/odoo#190006
This fix prevents visitors or editors from posting comments or uploading files from the blog comment area while the website builder is open. It keeps editing mode focused on page design and avoids accidental public interactions during content changes.
Original PR description
> [MOU, chrome]: Enable comments on a blog post page > You can send comments from the "Edit" mode (already spotted on master, but with the new code, a user can also upload documents...) Steps to reproduce: - Go to `/blog` - Open website builder - Enable "Comments" at the "Bottom" - Bug: you can write messages, send them, ... while still in editor mode This commit blocks with `pointer-event: none` on `#discussion` because this is the id of the top div of `portal.message_thread` task-4367641
This update fixes how employee version status is calculated by separating the logic into clearer parts. It helps make HR records more reliable and easier to maintain without changing the day-to-day user experience.
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
This fix prevents purchase stock tests from failing when an optional product matrix feature is not installed. It only uses extra product attribute information when that attribute is actually available, improving reliability in single-app test environments.
Original PR description
### Description of the issue/feature this PR addresses: [build_error-227711](https://runbot.odoo.com/odoo/error/227711) ### Current behavior before PR: When testing for proper move descriptions, we…
### Description of the issue/feature this PR addresses:
[build_error-227711](https://runbot.odoo.com/odoo/error/227711)
### Current behavior before PR:
When testing for proper move descriptions, we add a second (no variant) attribute to the product only if the module `purchase_product_matrix` is installed.
In its absence (such as in a single-app test), we only have a single attribute_line, and referring to a second line throws an IndexError:
```
Traceback (most recent call last):
File "/data/build/odoo/addons/purchase_stock/tests/test_create_picking.py", line 886, in test_move_description
'product_no_variant_attribute_value_ids': [Command.set(product_with_description.attribute_line_ids[1].product_template_value_ids[0].ids)],
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^
File "/data/build/odoo/odoo/orm/models.py", line 6375, in __getitem__
return self.browse((self._ids[key],))
~~~~~~~~~^^^^^
IndexError: tuple index out of range
```
### Desired behavior after PR is merged:
Instead, we should only populate the `product_no_variant_attribute_value_ids` of the order line when the no_variant attribute is present in the product, i.e. only when the optional module is installed.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes a visual issue where the first row of color choices in the editor color picker did not line up with the rows below. It also improves usability by keeping the selection shape correct on touch devices and making keyboard navigation between rows more consistent.
Original PR description
Steps to reproduce: - Go to the html_editor (via Project for example) - Select a text and open the colorpicker | Current | Expected | |--------|--------| |  |  |
Odoo now correctly translates invoice email buttons when multiple invoices for customers using different languages are sent and printed together. This prevents customers from receiving emails with a button label in the wrong language, improving communication quality and professionalism.
Original PR description
**Issue**: When multiple invoices with different customer languages are sent and printed together, the invoice email button may appear with an incorrect translation for some of them. **Steps to…
**Issue**: When multiple invoices with different customer languages are sent and printed together, the invoice email button may appear with an incorrect translation for some of them. **Steps to reproduce**: - Open the Accounting app - Go to Customers > invoices - Create a new invoice with a customer with its language set to German - Create a new invoice with a customer with its language set to English - Go back to Customers > invoices - Select the two invoices just created and click on action > Sent & Print and then click on the Sent & Print button - Go to Settings > Technical > Email > Emails and check the two last emails. One of them should have the invoice email button wrongly translated **Cause**: Before sending an email, it retrieve the `type_name` using the lang of the customer https://github.com/odoo/odoo/blob/28c3b9cf10488536dce5a4927fdbe8fcd6e5a839/addons/account/wizard/account_move_send.py#L596C1-L605C14 This will trigger that compute method https://github.com/odoo/odoo/blob/a6368e8a5787f3067d09d79516a2924b3f1207f0/addons/account/models/account_move.py#L841C1-L850C67 which set the `type_name` of all the records. Since the compute method only depends on move_type, it does not recompute type_name per record. As a result, all records may share the same type_name, regardless of language context. Please notice that `type_name` is used to display the invoice email button in the right language. **Solution**: Make the compute method `_compute_type_name` depending to the lang parameter, thus it will use the right `type_name` for each email to send. opw-4748741 Forward-Port-Of: odoo/odoo#216811
This fixes a problem in Odoo's web testing tools where drag-and-drop data could miss updates added during a test. The change makes these simulated interactions behave more like real browser behavior, helping prevent false test results and improving confidence in web interface quality.
Original PR description
Before this commit, the 'types' property of datatransfers used in Hoot interactions was mocked to insert the initial types of the given 'items' and 'files'. However, this didn't account for the items added dynamically on the datatransfer object. The good thing is that it doesn't actually need to be mocked, since it already works with the given 'files' and 'items' types without having to override the 'types' descriptor. So the mock has been removed. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217313
This update makes an automated website popup test more reliable by allowing extra time for the popup to appear before checking it. This reduces occasional false failures in the test system without changing the customer-facing website behavior.
Original PR description
Before to this commit, the ‘closing s_popup with the X button updates the invisible elements panel’ test failed from sometimes on runbot. We think boostrap.js takes longer than normal to display the popup. Solution: We're going to increase the waiting timeout so that the crash doesn't recur. We've taken this decision because the problem is very specific and probably link to bootstrap.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
This update makes an automated website builder color picker test more stable by ensuring actions are fully processed before checks continue. It reduces false test failures, helping development and release validation run more smoothly without changing customer-facing behavior.
Original PR description
Since [1] introduced the test, it may fail due to race conditions. By waiting for an animation frame after clicks, we make sure the call had the time to be processed. [1]: https://github.com/odoo/odoo/commit/b3512d76af44d3f48d8b0027495c220df550b602 runbot-229604
This fix makes the sales signature test wait until the signature area is ready before accepting and signing. It prevents false error messages during automated checks, helping keep the sales signing flow stable for users.
Original PR description
In commit, we make sure that the signature is present in the modal before reaching the step where we click on "accept & sign". If the canvas is not yet loaded at this step, then there is an error message "Signature is missing". 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#217202 Forward-Port-Of: odoo/odoo#217099
The website shop test for comparing list prices now enables pricelist selection before running. This ensures the test can show all configured pricelists and helps prevent false failures in release validation.
Original PR description
Before this commit, the `compare_list_price_price_list_display` tour failed due to a missing feature flag. The user was unable to select a pricelist as only one was available. This commit enables the pricelist feature before the tour, ensuring that the drop-down selector displays all the configured pricelists. runbot-162702 Forward-Port-Of: odoo/odoo#217069
Follower invitation emails no longer show an extra divider between the header and message body. This small visual fix makes notification emails look cleaner and less confusing for users receiving updates on leads, tasks, and similar records.
Original PR description
When adding an Odoo user as a follower to a lead/task/..., there are two separators between the message header and its body. This commit removes the extraneous separator. Steps to reproduce: - Open a lead/task/... - Add Marc Demo as a Follower - Toggle the option to have them notified task-4889715 Forward-Port-Of: odoo/odoo#217291
The chat hub menu now handles the “Reset initial position” action correctly. This prevents an error for users who want to restore the chat window to its default placement, making the messaging experience smoother.
Original PR description
**Purpose of this PR:** Fix an error that occurred when clicking 'Reset initial position' in the chathub menu. Forward-Port-Of: odoo/odoo#214203
Odoo now ignores accidental trailing spaces in customer names during checkout, preventing false warnings when users submit their address details. Imported text fields that should be trimmed are also cleaned consistently, reducing data quality issues from imports.
Original PR description
**Steps to reproduce:** 1. Install the website_sale app. 2. Import a user with trailing spaces in the Name field. 3. Make this user Admin in settings 4. Log in with that user and go to Website >…
**Steps to reproduce:** 1. Install the website_sale app. 2. Import a user with trailing spaces in the Name field. 3. Make this user Admin in settings 4. Log in with that user and go to Website > Shop. 5. Click on new and create a new product 6. Add this product to the cart and proceed to checkout. 7. The checkout form pre-fills the name (with trailing spaces). 8. fill other fields 9. Submitting the form triggers a warning due to changed name. **Expected behaviour:** - Name is not changed by us so it should let us checkout - There should not be trailing spaces in imported char fields if trim attribute is true **Issue:** - The name field from the form is trimmed in post request, but the value from the database (with trailing spaces) is used during comparison This results in a false positive change detection. - User's name with trailing spaces is because of Imported records does not check for trim attribute in backend but this is handled in ui. **Solution:** - Trim the database value before comparing it to the form input - Trim the values of char field before importing if trim attribute is true opw-4794220 Forward-Port-Of: odoo/odoo#215467 Forward-Port-Of: odoo/odoo#212040
This fix makes shared website editing resources stay available across embedded editing views, so the same data is not downloaded repeatedly. It reduces unnecessary network requests when reopening snippet dialogs, making the editor feel faster and more efficient.
Original PR description
Before this commit, bundle cache wasn't global but limited to one document only, so iframes would end up in refetching bundles again. To reproduce the issue: - Open website, start editing and open the network tab in devtools to monitor requests; - click on any snippet group, close the dialog and click on the group again => Bundles are fetched again.
This fix prevents the website editor from crashing when duplicate website views share the same identifier. Users can continue editing pages normally even if duplicated view records exist in the system.
Original PR description
When multiple `ir.ui.view` records exist with the same key (e.g., due to duplication), it can lead to a singleton error. **Steps to reproduce:** 1. Install the website module 2. Go to `Settings >…
When multiple `ir.ui.view` records exist with the same key (e.g., due to duplication), it can lead to a singleton error. **Steps to reproduce:** 1. Install the website module 2. Go to `Settings > Technical > User Interface > Views`. 3. Find and duplicate the **Home** view for **My Website** (same key). 4. Open the website home page in Editor mode. **Error:** `ValueError - Expected singleton: ir.ui.view(2776, 2774)` **Cause:** In `viewref()`, it uses `filter_duplicate()` to filter for the most suitable view, but it may return multiple views if more than one match the criteria. - [1] **Ref:** At [2], system uses `limit=1` in `_view_obj()` to ensure only one view is returned, even if duplicates exist for the same key. [1]: https://github.com/odoo/odoo/blob/edfa37271a0015a0d4acb17e6985a87e707e5f33/addons/website/models/website.py#L1228-L1230 [2]: https://github.com/odoo/odoo/blob/51fcbd211d2b1abf4b93becedbcbb9e03002cdd6/addons/web_editor/models/ir_ui_view.py#L326 **Fix:** This commit ensures that the result is a record set with at most one view and preventing singleton-related errors. sentry-6223988092 Forward-Port-Of: odoo/odoo#213113
This fix restores the helpful hint that appears when users click an editable image in the website editor. It makes image editing easier to discover by reminding users they can double-click to edit.
Original PR description
problem: The "Double-click to edit" popover tooltip when clicking once on an image was not displayed anymore. to reproduce: - In the website app, open the editor - Click on any editable image - The "Double-click to edit" popover is not displayed why: It has not been transferred in the new builder desired behavior: When clicking once on an editable image, a popover tooltip should be displayed below the image with "Double-click to edit" message.
Fixed an issue where bank reconciliation reports could show an amount calculated in the company currency while displaying the journal currency symbol. This prevents misleading balances when journal entries are posted through journals using a different currency.
Original PR description
…eport Currently in bank reconciliation report we expect all the entries to have the balance encoded in journal currency However it may not be the case if an entry is posted in a misc journal set in another currency Steps to reproduce: - Create a new journal in another currency (€) than the company's ($) - Create a new journal entry using the journal main account - Go to the account dashboard > click on the 3 dots of the journal - Open the Reconciliation report Issue: The journal entry amount is in company curreny (balance), but with the journal currency symbol (€) opw-4701349 Forward-Port-Of: odoo/enterprise#89321 Forward-Port-Of: odoo/enterprise#87313
Belgian payroll now creates follow-up activities when an employee contract starts running, rather than every time the contract is edited. This prevents duplicate or mistimed reminders and also avoids including contract templates in pay run generation.
Original PR description
Once the contract got running, not at each write on it.
The planning calendar now blocks creation of shifts that are not assigned to any resource. This avoids confusing open shifts caused by leftover calendar multi-create behavior and keeps schedules cleaner for planners.
Original PR description
This commit's purpose is to prevent the creation of open shifts in the calendar view of the planning. Recently, the multi-create feature was added to the calendar view, but some code of the early iteration of the task was left. This fix aim to remove the unneeded code. target saas-18.4
The Knowledge article comment composer now shows only the intended Log button instead of displaying both a paper-plane send icon and Log button. This avoids confusion for users when adding comments to article text and keeps the commenting flow clearer.
Original PR description
Steps to reproduce =============== 1. Go to knowledge. 2. Open any article with write access. 2. Open the comment composer for any text of article. --> Two buttons are shown to post a comment. (Paper-plane and `Log` button) From [Commit], the condition to show the paper plane was modified, which will be always evaluated to `true` for the knowledge comment composer. After this commit, we will explicitly make that condition false for knowledge comment composer. Task-4866473 [Commit]: https://github.com/odoo/odoo/commit/9ba04f2a28f4d2b1adeb04628383d4730b5e72b6 Forward-Port-Of: odoo/enterprise#88225
The Partner Ledger XLSX export now correctly includes entries without an assigned partner when users search for “Unknown Partner.” This ensures downloaded reports match the on-screen results and prevents missing accounting lines in exported files.
Original PR description
### Issue: When searching for "Unknown Partner" in the Partner Ledger to get the lines with no partner, nothing shows on the downloaded XLSX. ### Steps to reproduce: - Have a partner Ledger with -…
### Issue:
When searching for "Unknown Partner" in the Partner Ledger to get the lines with no partner, nothing shows on the downloaded XLSX.
### Steps to reproduce:
- Have a partner Ledger with
- Search for "unknown Partner" in the search bar, only the lines grouped under "Unknown Partner" are shown.
- Click on the button "XLSX"
- The downloaded document does not include "Unknown Partner"
### Cause:
When `filter_search_bar` has a value, the domain used to query the partners/lines will check if the names of the partner match the search text. The resulting SQL query excludes the lines where `partner_id` is `NULL`.
### Solution:
Add a new condition in the domain: `('partner_id', '=', False)` This way the lines with no partner are returned by the query
When searching another existing partner these lines are excluded by an [already existing filter](https://github.com/odoo/enterprise/blob/8eff9194618a1d181c57820829e53aa23c7759d5/account_reports/models/account_partner_ledger.py#L55-L58). It excludes the lines if the search test does not match "Unknown Partner".
opw-4772529
Forward-Port-Of: odoo/enterprise#88139Cancelled drag-and-drop actions in Documents now remove the temporary preview card instead of leaving it visible. This prevents clutter in the interface and avoids test screens filling with duplicate placeholder cards.
Original PR description
Before this commit, when aborting a drag & drop sequence in documents views, the temporary card "ghost" was not removed from the DOM, and stayed in place. This was most noticable in tests, where multiple cards would pile up on the screen. This commit, adds a cleanup for each added card, to ensure that they are properly disposed of. Forward-Port-Of: odoo/enterprise#89418
Enterprise: https://github.com/odoo/enterprise/pull/89126 Design Themes: https://github.com/odoo/design-themes/pull/1107
Original PR description
Enterprise: https://github.com/odoo/enterprise/pull/89126 Design Themes: https://github.com/odoo/design-themes/pull/1107
Problems: The error message for unbalanced journal entries in the "Miscellaneous Operations" journal was unnecessarily complex and misleading. It suggested setting a default account on the journal to automatically balance entries, but this auto-balancing was intended only for lines with taxes. Furthermore, the method _get_automatic_balancing_account in account.move was ignoring any default account set on the journal itself when auto-balancing because of taxes. It was instead always taking th
Original PR description
Problems: The error message for unbalanced journal entries in the "Miscellaneous Operations" journal was unnecessarily complex and misleading. It suggested setting a default account on the journal to…
Problems: The error message for unbalanced journal entries in the "Miscellaneous Operations" journal was unnecessarily complex and misleading. It suggested setting a default account on the journal to automatically balance entries, but this auto-balancing was intended only for lines with taxes. Furthermore, the method _get_automatic_balancing_account in account.move was ignoring any default account set on the journal itself when auto-balancing because of taxes. It was instead always taking the company suspense account. How to reproduce the issue: - Add a default account to the miscellaneous journal. - Create a journal entry manually, and add a line with any account of 100 debit. - Attempt to save. Finally, this commit also set the account_id of new account move lines to the default account id of the journal if it exists when creating a journal entry. enterprise pr: https://github.com/odoo/enterprise/pull/86987 opw-4751270 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215393 Forward-Port-Of: odoo/odoo#211443
Community: https://github.com/odoo/odoo/pull/216865 Design Themes: https://github.com/odoo/design-themes/pull/1107
Original PR description
Community: https://github.com/odoo/odoo/pull/216865 Design Themes: https://github.com/odoo/design-themes/pull/1107
This commit removes the default account set in the setup of test_payroll_expense. Because of 67b5fc47ca4aa1abb60f198a87d7784ef400f796 the filter in get_all_amls_to_be_reconciled would get multiples amls instead of only one. community pr: https://github.com/odoo/odoo/pull/211443 opw-4751270 Forward-Port-Of: odoo/enterprise#88435 Forward-Port-Of: odoo/enterprise#86987
Original PR description
This commit removes the default account set in the setup of test_payroll_expense. Because of 67b5fc47ca4aa1abb60f198a87d7784ef400f796 the filter in get_all_amls_to_be_reconciled would get multiples amls instead of only one. community pr: https://github.com/odoo/odoo/pull/211443 opw-4751270 Forward-Port-Of: odoo/enterprise#88435 Forward-Port-Of: odoo/enterprise#86987
Before this PR: - Fields `l10n_in_exception`, `l10n_in_gst_return_period_id`, and `l10n_in_gstr2b_reconciliation_status` were copied when duplicating records. - The field label for GSTR-2B status was shown as just "Status", which could be ambiguous. After this PR: - Added `copy=False` to all three fields to prevent unintended data duplication. - Updated the label "Status" to "GSTR-2B Status" in `l10n_in.gst.return.period` to make the purpose clear. OPW: 4882698 Forward-Port-Of: odoo/e
Original PR description
Before this PR: - Fields `l10n_in_exception`, `l10n_in_gst_return_period_id`, and `l10n_in_gstr2b_reconciliation_status` were copied when duplicating records. - The field label for GSTR-2B status was shown as just "Status", which could be ambiguous. After this PR: - Added `copy=False` to all three fields to prevent unintended data duplication. - Updated the label "Status" to "GSTR-2B Status" in `l10n_in.gst.return.period` to make the purpose clear. OPW: 4882698 Forward-Port-Of: odoo/enterprise#88420 Forward-Port-Of: odoo/enterprise#88110