Daily updates from Odoo
Navigate
Branch
Saturday, November 29, 2025
16 changes
1 change
Resolved issues and error corrections
This update resolves a previous issue where the course publisher editor wouldn't consistently load correctly. By ensuring the iframe is loaded first, the system now provides a more reliable and predictable experience for users accessing course content. This enhances the overall user experience and reduces potential disruptions.
Original PR description
In this commit, we fix a non deterministic behavior by ensuring the iframe is loaded before it try to open editor. runbot-232846
1 change
Resolved issues and error corrections
This update fixes an issue where the 'Warnings' filter in search views for manufacturing and inventory modules didn't accurately identify records with warnings. The fix ensures that records with warning or danger statuses are correctly displayed when filtering, preventing users from missing critical exceptions and improving operational efficiency.
Original PR description
Issue Before This Commit: ======================= Currently, when the `Warnings` filter was applied in search view of `mrp.production`, `purchase.order`, `stock.picking`, or `product.template`…
Issue Before This Commit: ======================= Currently, when the `Warnings` filter was applied in search view of `mrp.production`, `purchase.order`, `stock.picking`, or `product.template` models, records without any warning were shown instead of those with a warning or danger status. As a result, users may overlook records requiring attention, since records marked with warning or danger were not visible when filtering leading to confusion and missed follow-ups. Steps to Reproduce: ======================= - Install the `MRP` module. - Go to Manufacturing → Operations → Manufacturing Orders. - Create 1–2 demo MOs. Apply the `Warnings` filter in the search view. - Observe that records without warning or danger status are displayed. Cause of the Issue: ======================= In this [commit](https://github.com/odoo/odoo/commit/92301a5b300dec1ddfca44dc35318b83d67c56fa), the `_search_activity_exception_decoration` method was incorrectly modified to handle negative operators. When a negative operator (like `not in`) is used, the method tried to complete the search using the positive `in` operator, causing incorrect filtering and returning records without warning or danger status. With This Commit: ======================= The unnecessary condition handling negative operators has been removed. The method now correctly uses the operator provided in the search, ensuring that the warnings filter returns only records with a warning or danger status. This fix eliminates confusion caused by incorrect search results and reduces the risk of missing critical exceptions during processing. TaskID-5154877
1 change
Resolved issues and error corrections
This pull request addresses minor inconsistencies in address data processing for Odoo's e-commerce modules, specifically focusing on Brazil (l10n_br_avatax) and Colombia (l10n_co_edi). The changes ensure accurate city-to-country ID mapping, resolving potential issues with checkout processes and tax calculations within these regions. This improves the reliability of the e-commerce experience for customers in these countries.
7 changes
Enhancements to existing features
This update brings Odoo's Swissdec ELM Certification in line with version 19.0, enhancing compliance with Swiss regulations. Key improvements include support for French-crossborder worker telework, adjustments to retirement regulations, and automated calculations for child and education allowances, ensuring accurate reporting.
Original PR description
This Pull request extends the Odoo Swissdec ELM Certification to the minor version 5.3. By doing so we add the following features : - Telework Percentage declaration for French-crossborder comuters - Adapting to AVS21 regulation, where retired employees can refuse their right to retirement - Adding automatic Child and education allowance calculation - Add the calculation of LPP in % - Allowing the specification of custom employer parts for LAAC and IJM Forward-Port-Of: odoo/enterprise#95518
This update streamlines accounting test creation by introducing a standardized helper for managing XML files. It simplifies saving, updating, and ignoring specific XML elements, reducing errors and improving test organization. This change enhances the reliability and maintainability of our accounting test suite.
Original PR description
> This is a backport of the merged https://github.com/odoo/odoo/pull/235565 - with a couple of improvements & adaptations to the test files. This commit adds helpers and improves on the way we assert…
> This is a backport of the merged https://github.com/odoo/odoo/pull/235565 - with a couple of improvements & adaptations to the test files. This commit adds helpers and improves on the way we assert XML files in `AccountTestInvoicingCommon` and all accounting test that extend from it. From now on, all accounting test code that assert an XML tree/string to an XML file should call the `assert_xml` helper, and design their test file name/location/etc. around this framework. This approach has a few major benefits: Assert / Save XML When testing XML files, we often need to perform create/read/update operations on the asserted XML to make sure it corresponds to the most updated/intended data. Previously, to save something to an XML, a developer would need to write their own local helpers to save the XML in the right directory. This was cumbersome and error-prone, so we decided to design a helper that allows developer to immediately save AND/OR update the asserted XML: to save/update an XML, we can simply add `SAVE_XML` as an additional test tags. Better test naming and optional subfolder management To better organize test files, the `assert_xml` method allows us to write just the test key name (without `.xml`), and the framework will automatically get the XML to assert/save from the `test_files` directory. An optional `subfolder` parameter is also added to allow writing to specific subfolder within `test_files`. Better `___ignore___` management in assertion XMLs Sometimes, we want to ignore a few XML node that are not relevant, or have content that are not deterministic (changes on every test run). To handle this, previously, developers would need to modify the assertion XML content by hand or write their own local script to do so. With this new framework, we just need to add an `ignore_schema.xml` file somewhere in the `test_files` directory. If put inside a subfolder, it will be applied with more priority towards the XML that are put on that specific subfolder. Save "pure" XML (before applying `___ignore___`) in temporary folder When calling `SAVE_XML`, before applying the ignore patches, the XML will be saved in a temporary folder (same folder as the screenshots for tours), so that developers can use them in external tests in the future, and for any other saving reasons. In addition, this commit also: - add `extra_tags` helper to save all the common tags for EDIs, for a better way to enable `EXTERNAL_MODE` testing inspired by `l10n_mx_edi` - convert some non-assert XML test helpers into a class method - canonicalize the XML to ensure consistency of the generated test files following the C14N Version 2 standard. (Deterministic namespaces location, sorted attributes, etc.) task-4891206 Forward-Port-Of: odoo/odoo#237435 Forward-Port-Of: odoo/odoo#237285
Resolved issues and error corrections
This update resolves an issue where Italian e-invoicing rejections weren't being properly recorded in Odoo. Now, when an invoice is rejected by the Italian system, the error message is correctly stored and displayed, ensuring accurate tracking and reporting for users. This improves the reliability of the Italian e-invoicing integration.
Original PR description
If an invoice sent through the Italian EDI gets rejected, a traceback appears:
```
`errors = '\n- '.join(error.get('errors', ''))
^^^^^^^^^
AttributeError: 'str' object has no attribute 'get'`
```
`moves_data[move]['error']` shouldn't be a string, as `_hook_if_errors()` expects a dictionary from this PR odoo/odoo#224267 on.
We restore the functionality by changing the error type.
Ticket [link](https://www.odoo.com/odoo/project.task/5271525)
opw-5271525This update resolves an issue where the DIOT report export failed when journal entries lacked a linked partner. The fix ensures the report generation process continues smoothly by explicitly handling entries without a partner, preventing errors and improving data accuracy. This ensures consistent reporting for all financial data.
Original PR description
**Steps to reproduce:** 1. Install `Accounting` and `l10n_mx_reports` modules. 2. Create two journal entries using DIOT tax grid: one with partner, one without 3. Confirm the entries. 4. Go to `Accounting → Reporting → Tax Report → DIOT (MX)`. 5. Try to print the DIOT report in TXT format from the top-right dropdown. **Observed behavior:** * Export fails with a traceback if any entry has no partner. **Root cause:** The method `_get_diot_values_per_partner` does not handle entries without partners. **Solution:** raise `Usererror` if entries without partners when sorting and exporting. note: The second commit addresses a traceback caused by a missing operation_type_code. This occurs when all entries lack a partner or when a partner’s operation_type_code field is not set. opw-5060825 Forward-Port-Of: odoo/enterprise#100843 Forward-Port-Of: odoo/enterprise#96529
A test case in the Enterprise accounting module was failing due to differences in payment state handling between the community and enterprise versions. This change moves the test case to the Enterprise module to ensure it accurately reflects the expected behavior, resolving the reported error.
Original PR description
Community build was failing with: ``` test_bill_state_change_on_payment_state self.assertEqual(payment.invoice_ids.payment_state, 'not_paid') AssertionError: 'paid' != 'not_paid' - paid + not_paid ``` [Commit](https://github.com/odoo/odoo/pull/234725/commits/5dc43a2156e5b176e3236583b45b4838a987ee7d) In community there is no any `in_payment` state for account move records. As on changing payment state to draft It stayed in the `paid` only. `in_payment` state introduced in the enterprise module. So the test case is failing for the community version. To fix this I've moved the test case to the enterprise to retain the expected behaviour. runbot error: 234453 Forward-Port-Of: odoo/enterprise#100865 Forward-Port-Of: odoo/enterprise#100834
A test case in the community version of Odoo's account module was failing due to a difference in payment state handling between the community and enterprise versions. This update moved the test case to the enterprise environment to ensure it accurately reflects the expected behavior, resolving the reported error.
Original PR description
Community build was failing with: ``` test_bill_state_change_on_payment_state self.assertEqual(payment.invoice_ids.payment_state, 'not_paid') AssertionError: 'paid' != 'not_paid' - paid + not_paid ``` [Commit](https://github.com/odoo/odoo/pull/234725/commits/5dc43a2156e5b176e3236583b45b4838a987ee7d) In community there is no any `in_payment` state for account move records. As on changing payment state to draft It stayed in the `paid` only. `in_payment` state introduced in the enterprise module. So the test case is failing for the community version. To fix this I've moved the test case to the enterprise to retain the expected behaviour. runbot error: 234453 Forward-Port-Of: odoo/odoo#237933 Forward-Port-Of: odoo/odoo#237881
This update optimizes the way the Point of Sale system handles attribute exclusions. Previously, the system checked every attribute for exclusion, which was slow. Now, the exclusion process is performed only once when the POS is loaded, resulting in a noticeable performance improvement. This change enhances the speed and responsiveness of the Point of Sale experience.
Original PR description
Before this commit, the computation of the exclusion of some attributes based on other selected was going through every attribute to determine if it was excluded or not. This is now done once at the loading of the pos. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216392 Forward-Port-Of: odoo/odoo#213789
6 changes
New functionality added to Odoo
This update adds support for payroll calculations in eight additional US states: Vermont, Illinois, Virginia, Washington D.C., Arizona, Idaho, Oregon, and North Carolina. This expansion broadens Odoo's capabilities for businesses operating in these regions, ensuring accurate and compliant HR and payroll processing.
Original PR description
…, NC) With this, we add support for 8 more states in the US payroll: Vermont, Illinois, Virginia, Washington D.C., Arizona, Idaho, Oregon and North Carolina. Task: 5247501 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 expands Odoo's US payroll functionality to include support for eight additional states: Vermont, Illinois, Virginia, Washington D.C., Arizona, Idaho, Oregon, and North Carolina. This enhancement ensures accurate payroll calculations and compliance for businesses operating in these regions.
Original PR description
With this, we add support for 8 more states in the US payroll: Vermont, Illinois, Virginia, Washington D.C., Arizona, Idaho, Oregon and North Carolina. Task: 5247501
Resolved issues and error corrections
This update fixes a usability issue where replying to messages with only attachments didn't clearly show the original message. Now, users can easily see which message they're replying to, regardless of whether they include text or attachments, leading to a smoother communication experience. This enhancement ensures consistent message styling and a better overall user interface.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- Currently, when replying to a message with only attachments (no text content), the parent…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- Currently, when replying to a message with only attachments (no text content), the parent message context is not displayed. This makes it unclear which message the user is replying to when they only attach files without typing any text. **Current behavior before PR:** ---------------------------------------------- - Reply messages with only attachments do not show the parent message context - Users cannot see what message they are replying to when only attaching files - The MessageInReply component is not rendered for attachment-only replies **Desired behavior after PR is merged:** ---------------------------------------------- - Reply messages with only attachments now display the parent message context - Users can clearly see what message they are replying to, even with only attachments - The MessageInReply component renders consistently for all reply types - Visual structure maintains proper Odoo message styling - Better user experience with clear reply context Task-5109159 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr
This update removes an outdated and confusing reference to a previous module name ('finkok') within the Mexican VAT (l10n_mx_edi) integration. The change simplifies the codebase and reduces potential confusion for developers. This is a routine maintenance fix.
Original PR description
It has been some time since finkok changed its name to quadrum, and now no one remembers quadrum as finkok. Having it in the name only causes more confusion, so we decided to simply remove it. I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#100663
This update fixes a technical issue that prevented the system from merging certain PDF files, specifically Bills, due to errors in the PDF processing library. The change adds a user-friendly error message instead of a technical traceback, ensuring a smoother experience for users when encountering malformed PDFs. This resolves a potential disruption in generating reports.
Original PR description
Currently some PDFs cause error in PyPDF (Version 1 and 2) and cannot be merged. Steps to reproduce: - Create 2+ Bills with specific PDF (example found in ticket) - From Bills list view, select both and click Download > Original bills Issue: Traceback will raise `PyPDF2.errors.PdfReadError: Can't read object stream: Stream has ended unexpectedly` Thsi occurs because the version of PyPDF currently in use (2.12.1) cannot recover when working an odd PDF file having wrong length markers. This commit will add a nice error explaining to user what's going on. opw-5142961 Forward-Port-Of: odoo/odoo#234587
This update fixes a problem where users in the 'Invoicing' group couldn't initiate batch payments. The fix prevents a critical error that was blocking payment processing, ensuring invoices can be paid correctly. This resolves a disruption to financial operations.
Original PR description
With user in group 'Invoicing', it is not possible to open a batch payment.