Wednesday, December 10, 2025
34 changes · 19.0
Resolved issues and error corrections
This update corrects a display issue on the Odoo portal where users were seeing outdated document counts. Now, the portal only shows users documents that are currently in their signing sequence, improving the user experience and ensuring accurate document tracking. This prevents confusion and streamlines the signing process.
Original PR description
Version: - 18.0 Steps to reproduce: - Install sign - Upload document. - Add multiple signers - Set a sequential signing order Issue: - When documents require sequential signing, portal users see a banner saying there’s a new document to sign, even if it’s not yet their turn. Solution: - Update the counter to show only the documents that the user can currently sign. Impact: - Portal users now only see documents when it’s their turn to sign. Task-5226240 Forward-Port-Of: odoo/enterprise#98671
This update prevents a confusing traceback error when using Studio to create a menu item for the account.code.mapping model. The fix replaces a technical error with a user-friendly message, ensuring a smoother experience for users creating and accessing this feature.
Original PR description
**Steps to reproduce:** * Install **Accounting** and ensure Studio is available. * Using **Studio**, create a new menu item pointing to the model *account.code.mapping*. * Save the menu and click it to open the corresponding view. **Observed behavior:** * Opening the Studio-created menu triggers a full traceback. **Cause:** * The model *account.code.mapping* overrides `_search()` and raises `NotImplementedError` when no `account_ids` can be extracted from the domain, which is the case when opening the view without filters. * The missing `_search` logic for empty domains was never implemented, and the resulting exception propagates to the UI as a traceback. **Fix:** * Replace the `NotImplementedError` with a user-friendly `UserError` explaining that the view cannot be opened without specifying relevant filters, preventing the traceback and improving clarity. opw-5183909 Forward-Port-Of: odoo/odoo#239076 Forward-Port-Of: odoo/odoo#236665
This update ensures that older IoT boxes running Odoo 19.1 or later will always be upgraded to Odoo 19.0. This prevents issues caused by a change in Python version requirements, safeguarding the IoT boxes from potential malfunctions.
Original PR description
The IoT boxes using image 25.07 or less are running Python 3.11. In Odoo 19.1 the minimum Python version will change to 3.12. In order to prevent IoT boxes from being bricked after checking out, we add a check to make sure that 19.0 will be checked out if the database is using a version of 19.1 or higher. task-5380815 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a potential issue where the system was incorrectly removing outdated sub-channels. The change adds a crucial check to ensure the cleanup process only affects actual sub-channels, preventing unintended consequences and maintaining data integrity. This ensures our email system operates more reliably.
Original PR description
In [1], the `_gc_unpin_outdated_sub_channels` method was updated to avoid unpinning sub-channels multiple times. However, a condition is missing on `parent_channel_id` to restrict this gc to actual sub- channels. [1]: https://github.com/odoo/odoo/pull/238493 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#239248
This update resolves an issue where freezing a spreadsheet containing empty data rows incorrectly reported the data as text. The fix ensures that empty strings are handled correctly when freezing, preventing false positive results in data analysis. This improves the reliability of spreadsheet reports.
Original PR description
Steps to reproduce: - insert a list - expand the list beyond the number of records in order to have ODOO.LIST with no result - add =ISTEXT( <a reference to an empty ODOO.LIST> ) -> the result is TRUE - Freeze and share the spreadsheet => the result of ISTEXT is FALSE in the frozen version task-5360561 opw-5359100 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#239107 Forward-Port-Of: odoo/odoo#237511
This update adds a new account for 'Salaries & Wages Payable' within the Odoo Hong Kong localization. This change is necessary to correctly account for payroll liabilities under Hong Kong's NET rules and resolves an existing issue with default data configuration. It ensures accurate financial reporting related to employee compensation.
Original PR description
Adds a new Salaries & Wages Payable account of type current liabilities in order to use it in payroll for the NET rules and solve a misconfiguration in the default data. task-5042786 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237884
This update addresses a requirement from the Belgian Peppol Authority. The system now provides a warning to users attempting to register with the 9925 (BE VAT) method, as this is no longer the standard approach. This ensures users are guided toward the correct 0208 (BCE/KBO) registration for optimal compliance.
Original PR description
The Belgian Peppol Authority wants us to register belgian users with 0208 (BCE/KBO) and not 9925 (BE VAT). It should still be possible to register with 9925 for some edge case, but let's make it clear to our users that this is not the regular path. task-none (feedback from support + TSB) Forward-Port-Of: odoo/odoo#239208 Forward-Port-Of: odoo/odoo#238737
This update fixes an issue where repair order moves weren't properly linked in the inventory reporting system. The change was necessary due to a previous update that removed a key field. The fix ensures that repair order moves are accurately reflected in move history reports, improving data accuracy.
Original PR description
### Steps to reproduce: - Create and confirm a repair order for a storable product - Go to Inventory > Reporting > Moves History #### > The related move line appears without reference ### Issue: The…
### Steps to reproduce: - Create and confirm a repair order for a storable product - Go to Inventory > Reporting > Moves History #### > The related move line appears without reference ### Issue: The issue has been introduced with facf4eba6cd0504aae949c23454c6ffa9eaa9c3f which purpose is was to remove the `name` field of the `stock.move` model. However, prior to saas-18.4, the reference of the move relied on its name: https://github.com/odoo/odoo/blob/404cb10283cbc706eae67dd793ced363273f3602/addons/stock/models/stock_move.py#L325-L328 To not lose this reference an override of the `_compute_reference` compute method was introduced for repair orders. But it is currently ineffective since `moves_with_reference` is a set of records and not a set of ides which makes it the method call its super method on every records including the repair orders. opw-5385004 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239215
This update fixes a flaw in a stock test that caused inconsistent results due to timing differences. The test now freezes time to ensure consistent execution, guaranteeing the test accurately reflects the intended functionality. This improves the reliability of our stock management testing.
Original PR description
In a previous fix in #174442, we ensured that the order of moves when freeing reservation would remain deterministic, even if move dates were the same. In the test however, we didn't make sure that both moves were created at the exact same time, meaning that in some case, a millisecond could pass between the two moves creation, making the later assert checking if both dates are the same wrong, and making the test irrelevant. Now freeze the time at an irrelevant date just to make sure the test always does what it was intended to do. runbot-233470 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239229
This update resolves an issue where duplicate contacts were incorrectly flagged as linked to employees, preventing their deletion. The change ensures that contacts are properly linked to employee records, allowing for accurate contact management and deletion functionality. This was caused by a previous update and has been corrected to use the `employee_ids` field for validation.
Original PR description
Steps to reproduce: 1. Take or create a contact linked to an employee. 2. Duplicate that contact. (The duplication won't be linked to any employee) 3. Try to delete the duplicated contact. This behavior was introduced in the commit 834ec2d. Replace the computed boolean `employee` field with direct `employee_ids` check to ensure we're validating against actual linked employee records. opw-5209516 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A recent update caused an error when using the AI feature within certain reports (like forecast reports). This fix prevents the error by ensuring the AI functionality doesn't attempt to access a field that isn't available in the 'ir.actions.client' action type. This ensures the AI feature is consistently reliable.
Original PR description
Asking the AI while the user is in the ``ir.actions.client`` action (e.g., forecast report) triggers a traceback. Steps to reproduce the error: - Install ``Inventory`` module - Open any product > Click the forecast report smart button - Click the AI icon from the systray - Ask anything in AI Traceback: ```py AttributeError: 'ir.actions.client' object has no attribute 'search_view_id' ``` https://github.com/odoo/enterprise/blob/ba78913e01f215b44389a5bf0bca0e6886deab1e/ai/models/ai_agent.py#L770-L778 Here, only ``ir.actions.act_window`` actions have the ``search_view_id`` field, while ``ir.actions.client`` does not. So when the ``current_action`` is an ``ir.actions.client``, accessing ``search_view_id`` results in the above error. sentry-6942041136
A test within the hr_payroll_account module failed when run without the standard demo data. This was due to a missing default account configuration. The update adds a default account to the test environment and corrects the accounting balance, ensuring the test now passes reliably.
Original PR description
Steps to reproduce: Install hr_payroll_account on a fresh db without demo data. Run the test test_payment_hr_payslip. The test fails. Cause: With demo data, the us payroll was installed and with it, the payroll accounts were configured. Without demo data, default account is missing. Fix: Add a default account in the test and fix the amount balance with a new debit rule to balance the credit one. Task: 5386528 Runbot Error: 161615 Forward-Port-Of: odoo/enterprise#101299
This update resolves a technical issue causing errors in the generation of WPS payroll reports for Saudi Arabia. The fix corrects an incorrect use of a function within the payroll module, ensuring reports are now created without errors. This improves the reliability of payroll reporting.
Original PR description
this commit addresses traceback errors occured due to incorrect usage of `_` function. task-5310946 Forward-Port-Of: odoo/enterprise#99789
This update fixes a technical issue where sub-channels were incorrectly being unpinned, leading to unnecessary notifications. The change also prevents unpinning sub-channels if members still have unread messages, ensuring the pin feature functions as intended for accessing important threads. This improves the reliability of notifications and the overall user experience.
Original PR description
Before this commit, outdated sub-channels were unpinned each time the vacuum ran. It occurs because a condition on sub-channel being pinned is missing. In practice, it's not a big deal funtionnaly but leads to useless notifications being sent. While at it, this PR prevents unpins when there are still unread messages in the sub-channel: the pin feature is used to see unread messages on otherwise hidden threads. Forward-Port-Of: odoo/odoo#239242 Forward-Port-Of: odoo/odoo#238493
This update resolves a visual bug where the shape selector would cause unwanted scrolling on the browser window when viewing limited shape categories. The fix adjusts the scrolling behavior to prevent viewport disruption, ensuring a cleaner user experience when the window is small.
Original PR description
**Description of the problem** If the browser window has a limited height, clicking on a shape category in the shape selector scrolls both the shape selector pager (wanted) and the full viewport (not…
**Description of the problem** If the browser window has a limited height, clicking on a shape category in the shape selector scrolls both the shape selector pager (wanted) and the full viewport (not wanted), leading to white bands appearing at the bottom of the viewport. **How to reproduce** 1. Drop `s_picture` snippet 2. Open the background shape selector 3. Reduce the window height until only ~4 rows of shapes are visible 4. Click on "Linear" or "Creative" category 5. BUG: the viewport scrolled **Why the problem happens** When a shape category in the shape selector is clicked, the function `scrollIntoView` is used to bring the first shape of that category into view. By default, `scrollIntoView` scrolls all ancestor scroll-containers (and possibly the viewport) until the desired element is visible. This means that in specific situations the viewport could scroll too. **Fix** The function `scrollIntoView` should support the option `container: "nearest"`, which would force only the first scroll-container to scroll, avoiding scrolling the viewport. However, at the moment this option is not widely supported across browsers [1]. Thus `scrollIntoView` has been removed and its behaviour has been replicated by changing the `scrollTop` property of the `ShapeSelector` scroll-container. [1]: https://caniuse.com/mdn-api_element_scrollintoview_options_parameter_container_option task-5262945 Forward-Port-Of: odoo/odoo#237767
This update resolves a problem in the pos_settle_due tests that were failing due to a hardcoded year. The fix ensures the tests work correctly regardless of the current year, improving the reliability of the testing process. This prevents potential disruptions to the POS settlement functionality.
Original PR description
When running the pos_settle_due tests with faketime, the tour pos_settle_account_due was failing cause of a hardcoded year which would not work on another year. This is now fixed. runbot-error: 234052 Forward-Port-Of: odoo/enterprise#101217
This update ensures that when new partner records are imported into Odoo, they are automatically designated as 'companies.' This correction improves data accuracy and streamlines processes related to account management and EDI billing. It addresses a previous issue where imported partners weren't correctly categorized.
Original PR description
Ensure imported partner records are marked as companies when creating new partners. Task-5353923 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239116 Forward-Port-Of: odoo/odoo#238793
This update fixes an issue where the LWF report incorrectly included data from previous runs when a department was selected. The fix clears existing report data before generating a new report, ensuring accurate reporting for employees across departments. This improves the reliability of payroll reporting.
Original PR description
Step to reproduce: - Install l10n_in_hr_payroll. - Create 3-4 employee with labour welfare fund, all in different departments. - Open the LWF report wizard and do not select any department. -…
Step to reproduce: - Install l10n_in_hr_payroll. - Create 3-4 employee with labour welfare fund, all in different departments. - Open the LWF report wizard and do not select any department. - Download report , all employee will come in report. - Now select any department and download report again. - All employee(It is fetching previous data) + employee from selected department will come in report. Cause: - In '_compute_line_ids()' wizard computed field 'line_ids' doesn't properly reset previous lines as a result previous data remains in lines. - When the department is changed, the wizard id remain same, so previously lines added to wizard are coming with new lines. - Using `Command.link()` for new lines is invalid because it requires an existing database record ID, but wizard lines are creating inside a compute method so their IDs are only saved after the flush. Fix: - Since this is a stable version, clear the previously existing lines using 'Command.clear()' before creating new ones. Task - 5366498 Forward-Port-Of: odoo/enterprise#101190
This update resolves a potential issue where upgrading to a newer Odoo version (19.1) could cause compatibility problems with older IoT box hardware. The change prevents automatic checkout of versions above 19.0, ensuring stability and preventing the need for a database re-flash. It also confirms compatibility between the 19.0 IoT Box and the 19.1 database.
Original PR description
To avoid reflashing after a db update to 19.1, which would lead to python version incompatibility (3.12 min but iot box v25_07 and under have 3.10), we now prevent checkout above v19.0. We also ensure that 19.0 IoT Box is compatible with 19.1 db. Task: 5380815
This update enhances the website builder by adding URL autocomplete suggestions when replacing images. Previously, users couldn't easily enter URLs for image replacements, leading to a less efficient workflow. Now, users will receive helpful suggestions as they type, streamlining the image replacement process.
Original PR description
This commit extends the default BuilderUrlPicker by WebsiteUrlPicker for ReplaceMediaOption to enable URL suggestions/autocomplete. Steps to reproduce: - Drop a snippet with an image - Click on the image - Click on the chain icon next to "Replace" button - Type in "Your URL" field - No url suggestion or autocomplete task-5090136
This update fixes a problem where blog posts weren't consistently appearing as published during performance tests due to timing variations. By freezing time during specific test calls, the tests now produce reliable and repeatable results, ensuring accurate performance measurements. This improves the stability and accuracy of our blog performance monitoring.
Original PR description
Some blog post are published with a post_date matching the time the test is run meaning that they are not considered published. We have multiple possibilities when _get_url_hot_query is called: - all call to /blog are executed before the publication date: 9 - some call to /blog are executed after the publication date: 11 - only the last call is executed after the publication date: ~40-50 Using freezetime after the publication date ensures a consistent result This can be easily reproduced by freezing the time on the first calls in _get_url_hot_query and not on the last one. Runbot error [55754](https://runbot.odoo.com/odoo/error/55754) Forward-Port-Of: odoo/odoo#239236
This update resolves an issue where data records related to deleted models remained in the system, potentially causing errors. The fix ensures that these records are properly removed when a model is no longer needed, improving data integrity and stability. This prevents potential problems and ensures a cleaner system.
Original PR description
When a model is unlinked, the `ir.model.data` related to that model wasn't cleaned up. This leaves dangling records that can generate issues. sentry-6938852090 Forward-Port-Of: odoo/odoo#236615
This update resolves an issue where the demo stock data installation incorrectly used US currency, causing problems when users have databases with different currencies (like EUR). The fix ensures the demo data installation works correctly regardless of the company's currency setting, improving data consistency.
Original PR description
Currently in the `_merge_move_itemgetter` the system call `self.company_id.currency_id.decimal_places`. However the demo data of stock create a database with US currency and some `stock.move` in it. If we have an existing database with EUR for example. The upper call will return a `currency_id.decimal_places` since we have multiple currency. The best solution, would be to split `_action_confirm` to do a loop by company. But it would need a small refactoring and we will do a minimal diff to fix this issue. Using the smallest currency among all the company is not always correct but it's a super edge case and we should probably remove this code since it went to far. Close #230965, #234078 Forward-Port-Of: odoo/odoo#239273
This update fixes a bug that prevented users from deleting subthreads in group chats without encountering an error. The change ensures the system correctly handles the deletion process by clearing the recordlist, preventing errors related to missing data. This improves the stability and reliability of the chat functionality.
Original PR description
Before this commit, in some cases deleting the subthread would result in an error. The `correspondent` field on the thread model would be set to undefined. The deletion would react due to owl and request the `correspondent` value which fails since undefined at that time. Steps to reproduce: - install mail and im_livechat modules - create a group chat (3 users minimum) - create a subthread - delete the subthread This commit aims to clear the recordlist instead of forcing undefined (if possible) therefore making calls to get the value while deleting still possible. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes a visual issue where calendar event popovers were misaligned, particularly with longer events. The fix enhances the popover's positioning flexibility, allowing for more accurate display. Additionally, the team reverted a previous change and removed an unnecessary code component for improved stability.
Original PR description
Fixes an issue where the calendar event popover was positioned incorrectly for long events displayed in the day scale. The fix introduces a new positioning parameter that allows the popover logic to test a wider range of possibilities, including center positioning, which resolves the identified bug case. Additionally, this commit: - Restores the default calendar popover position back to 'right', as the previous change (https://github.com/odoo/odoo/pull/236503) did not properly address the root issue. - Removes an unnecessary useEffect hook from the Many2ManyAttendeeExpandable component. task-5401647
This update fixes an issue where search suggestions in Odoo (Command Palette, Many2X fields, Settings) displayed escaped HTML entities. The change refines the search logic to now show unescaped HTML entities, improving the user experience and allowing for proper rendering of special characters in search results. This ensures search suggestions accurately reflect the underlying data.
Original PR description
**Before this commit:** Search suggestions **(Command Palette, Many2X fields, Settings)** displayed escaped HTML entities because both the user input and the source data were being escaped before regex matching. For eg: **(e.g. & -> &)**. **After this commit:** Search suggestions now displays unescaped HTML entities. This is achieved by refining the regex to avoid matching characters inside **&...;** sequences. The regex is tailored around the characters escaped by `htmlEscape` in **OWL: ["&", "<", ">", "'", "\"", ""]`**. task-5124883 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update optimizes the automated testing of Odoo's email functionality. Initially, a frequent check was implemented to ensure accurate test results, but this caused significant CPU load. This change reduces the check frequency and focuses it only on specific elements, improving overall test execution times without negatively impacting system performance.
Original PR description
Follow-up of https://github.com/odoo/odoo/pull/238747
PR above improves execution time of the `@mail` suite by checking selector every 100ms tick, as sometimes the mutation observer fails to see changes and the contains pass after the 3 seconds timeout, thus wasting time. The affected selectors are the ones targeting the `:value` or with param `{ value }`.
However 100ms tick adds significant CPU load, which is a problem as runbot execution time is quite heavily reliant on CPU load. So while this makes `@mail` test suite faster in ideal condition, this worsen execution time in some cases [1].
This commit minimizes the problem by increasing the tick from 100ms to 500ms, and also limit the tick behavior to selectors targeting `:value` or `{ value }`. That way the majority of the time it relies on mutation observer so doesn't worsen CPU load, and only with value that this uses tick system.
[1]: https://runbot.odoo.com/runbot/build/95207707This update allows regular users to find contacts during VoIP call creation by enabling the search for contact extensions. Previously, this feature was limited to users with elevated permissions due to access restrictions on user extension data. This change improves the usability of the VoIP module for all users.
Original PR description
When a call is created, VoIP tries to associate it with a contact based, among other things, one the contact's extension. However, the extension is stored on the res.users.settings record of other users, which regular users don't have access to. This commit updates get_contact_info to perform the search for the extension in sudo mode, so that regular users also get meaningful results. [Task-5395010](https://www.odoo.com/odoo/project/5778/tasks/5395010)
This update clarifies the ‘Refresh e-Invoices status’ button to only update status information, separating it from the automated process of fetching e-invoice documents. Previously, this button triggered a combined update of status and document synchronization, causing potential delays. Now, document retrieval continues to be handled by scheduled background tasks.
Original PR description
The “Refresh e-Invoices status” button previously also triggered the crons that fetch eArchive and eInvoice sales documents, mixing status updates with document synchronization. This change scopes the button to status updates only. Fetching eArchive/eInvoice sales documents remains handled by their scheduled crons. task-5344128
This update streamlines the process of obtaining Nilvera PDFs for invoices created within Odoo. Previously, a complex system was in place that wasn't functioning correctly. Now, a dedicated cron job automatically fetches the PDF and attaches it to the invoice, ensuring accurate Einvoice documentation.
Original PR description
Commit 2e1b0f16d8732e9450caf9ac313312e7ad42a2b2 extended _l10n_tr_nilvera_get_documents with a flow for invoices created in Odoo (fetch Nilvera PDF + set provider reference). This mixed two distinct…
Commit 2e1b0f16d8732e9450caf9ac313312e7ad42a2b2 extended _l10n_tr_nilvera_get_documents with a flow for invoices created in Odoo (fetch Nilvera PDF + set provider reference). This mixed two distinct flows. Rationale: - The reference from Nilvera is not needed. We also have this data since we are the senders. - _l10n_tr_nilvera_get_documents should only import documents (moves) originating from the provider. - The added logic was never executed because the method skips moves that already exist in Odoo. Changes: - Revert the parts of _l10n_tr_nilvera_get_documents related to Odoo-created invoices. - Add a dedicated cron to fetch Nilvera-generated PDFs for invoices created and sent from Odoo. To do this in stable without adding a new field, the cron targets moves where message_main_attachment_id points to the PDF created by Odoo. Once the PDF from Nilvera is fetched, it is set as the main attachment instead. - Add a button to the list and the form view for invoices to fetch the Nilvera PDF. - Add that PDF in the email attachments. task-5265045
This update fixes a potential issue where users could inadvertently modify parser rules after the parser was initially set up. This change ensures data integrity and stability by preventing these edits, safeguarding against unexpected behavior within Odoo.
Original PR description
The parser rules cannot be modified once the parser has been instantiated. task-5091744 Forward-Port-Of: odoo/odoo#239046
This update fixes an issue where selection placeholders weren't working correctly within Odoo's HTML editor's table cells. Now, users can reliably select and manipulate content within table cells, including non-editable elements, improving the overall editing experience. This ensures consistent functionality when working with tables in the HTML editor.
Original PR description
### Steps to reproduce: - Create a table inside the Todo. - Insert a banner into any table cell. - Place the cursor inside the banner and press Backspace. - Banner cannot be deleted and no selection placeholders are inserted. ### Description of the issue/feature this PR addresses: - Selection placeholders were not inserted inside table cells. when they contained contenteditable=false nodes. ### Desired behavior after PR is merged: - Table cells are allowed as valid selection placeholder containers. - When a non-editable element exists inside a table cell, placeholders are inserted before and after it. task-5357197 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where duplicate bills were inadvertently creating additional assignation rules within the ESG carbon emissions tracking app. The fix ensures that new rules aren't automatically generated when a bill is copied, maintaining data integrity and simplifying the ESG workflow. This prevents potential errors and inconsistencies in emissions calculations.
Original PR description
[FIX] esg: prevent rule creation on copy Steps: 1. Go to the ESG app and create a new Emissions Factor (or duplicate one for sake of ease) 2. Open the Assignation tab and create a rule for Any Account - Any Partner - Mileage 3. Create a Bill and add the Mileage product If you check here, no other assignation rule is created 4. Duplicate the bill 5. Navigate back to the Emissions Factor on the ESG app. A new assignation rule has appeared. Notice that the steps use a product Mileage as example, you can use another one You can also test the steps with different rule configuration, you only need at least one "Any" opw-5350250 https://github.com/odoo/enterprise/commit/bab99c460a93cb4eef959d8dcd2f12e4ebaa07af
This update resolves an issue where updating the available quantity of a tracked product (lot/serial) would sometimes trigger an error related to missing package records. The fix isolates a specific code change to prevent unintended side effects and ensures package records are correctly created and updated.
Original PR description
Steps to reproduce: - Enable lots & packages - Create a tracked product (either lot/serial) - Try to update its available quantity, it will open the quant view - Create a new line, add a new lot/serial number and save its form Issue: A traceback occurs, saying a package record doesn't exist In the `Many2XStockPackageAutocomplete`, we add some custom `onRecordSave` to handle creating package records without name, and still use the name given from the python-side. However, this was done by hijacking `FormViewDialog`, and injected it directly on the class itself, propagating that behavior to unrelated places. Now limits it to a specificly created Dialog class to avoid overspill. opw-5326068 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr