Saturday, March 7, 2026
4 changes · saas-19.2
Enhancements to existing features
This update enhances the demo data loading process within Odoo by ensuring the system accurately reflects demo module states and automatically installs demo modules. This results in a more realistic and functional demo environment for users, streamlining the onboarding and training experience.
Original PR description
[IMP] core: improve force demo Improve the force demo function 1. update registry when demo data triggered module state changes 2. add ``install_demo`` to the context when loading demo data enterprise https://github.com/odoo/enterprise/pull/109792 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#250868
Resolved issues and error corrections
This update corrects an issue where generating PIX payment QR codes would fail if company names included special characters like emojis. The fix ensures company names only contain valid characters, guaranteeing QR code validity and successful payment processing. This improves the reliability of PIX payments for Brazilian customers.
Original PR description
When generating the QR code for PIX payment, if the company name contained incorrect characters (like emojis), the generated code was invalid and the payment could not be processed. Steps to reproduce: ------------------- * Install l10n_br and PoS * Create a PIX payment method and set it on the PoS session * Change the company name to contain an emoji (e.g. "Company emoji 😇") * Open the PoS session and try to pay with PIX > Observation: If you try to verify the generated QR code, it will be invalid Why the fix: ------------ We apply the same regex as defined here: https://github.com/odoo/odoo/blob/72654c3596660e3ec4b6885c5b957739465de097/addons/l10n_br/models/res_partner_bank.py#L81 To make sure the company name only contains valid characters, and the generated QR code is correct. This also modify the other tests because it removes the `_` that is not an allowed character. opw-5907530 Forward-Port-Of: odoo/odoo#250917
This update resolves an issue where invoice content overlapped with the header on subsequent pages when generating PDFs. The fix addresses a technical problem related to how wkhtmltopdf handles tables across pages, ensuring the header and invoice content are properly separated.
Original PR description
**Steps to reproduce:** * Install `Accounting` module. * Create an invoice with enough lines to span multiple pages. * Print the invoice to PDF (or use the 'Print' action). **Observed behavior:** *…
**Steps to reproduce:** * Install `Accounting` module. * Create an invoice with enough lines to span multiple pages. * Print the invoice to PDF (or use the 'Print' action). **Observed behavior:** * On the second page (and subsequent pages), the invoice table rows overlap with the company header (logo, address). * This regression was introduced in saas-19.1 after the flexible document layout refactoring (commit). **Cause:** * The invoice's main table (`o_main_table`) is wrapped in a `<div class='table-responsive-sm'>`. * `table-responsive-sm` applies `overflow-x: auto` at narrow viewports, which creates a Block Formatting Context (BFC). * In wkhtmltopdf's WebKit engine, a BFC container does not participate in normal page fragmentation. When the table spans multiple pages, the content bleeds into the next page without respecting the header spacing defined by `--margin-top` and `--header-spacing`. * This causes the continued table rows (and any repeated `<thead>`) to render at the very top of the content area, overlapping with the page header. **ref:** https://github.com/odoo/odoo/commit/15697add5751181544fb61302ddb745a354a2935#diff-c85e75bc27fc841662ca0598c09a22670e0a0b4e5120815934c0a50999ff02bfR172 with this commit `table-responsive-sm` added to invoice pdf layout. **Fix:** * Add `overflow: visible` on the `table-responsive-sm` wrapper div to prevent the creation of a scroll container / BFC. * This ensures wkhtmltopdf can properly fragment the table across pages and respect the header spacing on all pages. **Before:** <img width="874" height="250" alt="image" src="https://github.com/user-attachments/assets/2da0a82a-abc9-49d6-9788-c8e89283e4b2" /> **After:** <img width="872" height="256" alt="image" src="https://github.com/user-attachments/assets/cd38b7e3-b2b6-4c03-a1d8-5ac31cad0925" /> opw-5949713 Forward-Port-Of: odoo/odoo#249998
This update fixes an issue where the system incorrectly rejected valid Non-Resident (NRI) GSTINs. The change adjusts the validation process to accept a wider range of valid NRI GSTIN formats, ensuring accurate tax ID processing for international customers. This improves data integrity and prevents errors when entering tax information.
Original PR description
Currently, valid GSTINs for certain Non-Resident taxpayers are rejected. **Steps to reproduce:** - Install the `l10n_in` module. - Navigate to Settings > Users & Companies > Companies. - Open `IN…
Currently, valid GSTINs for certain Non-Resident taxpayers are rejected. **Steps to reproduce:** - Install the `l10n_in` module. - Navigate to Settings > Users & Companies > Companies. - Open `IN Company` and set `Tax ID` to `9922JPN29001OSU` and try to `save`. **Error:** `The VAT number [9922JPN29001OSU] for partner [IN Company] does not seem to be valid.` `Note: the expected format is 12AAAAA1234AAZA` The system rejects the GSTIN, although it is valid and verifiable on the official GST portal: https://services.gst.gov.in/services/searchtp **Root cause:** At [2], the GSTIN validation regex for NRI taxpayers only supports formats ending with `NRX` (X = any alphanumeric character). However, certain valid GSTINs follow a different structure and are not matched by the existing regex. **Fix:** This commit ensures that valid NRI GSTIN formats are accepted during validation. Confirm with IN PO. [1]: https://services.gst.gov.in/services/searchtp [2]: https://github.com/odoo/odoo/blob/5e59f4b3def44aa84c06ba4c2ed34bf2e8da928f/addons/base_vat/models/res_partner.py#L712-L723 opw-5956299 Forward-Port-Of: odoo/odoo#252647 Forward-Port-Of: odoo/odoo#251760