Daily updates from Odoo
Monday, March 17, 2025
14 changes
Resolved issues and error corrections
The website editor no longer treats harmless extra spaces in a page element's class information as a real change. This prevents users from seeing an unnecessary warning about losing changes when they simply open and discard the editor without editing content.
Original PR description
Before this commit, there was a bug that could be reproduced this way: - Add a whitespace at the end of the class attribute of the footer main snippet (e.g. by using the HTML editor) - Enter edit mode - Click on the footer - Discard the editor => Bug: a popup shows up saying you are about to lose changes... while you did not make any. This commit fixes that specific issue, also extending the test that was introduced at [1], although as advertised many "no changes" flow are still marking the page as dirty (e.g. just hovering any editor panel option). Note that there seems to be a deeper issue (although with no real breaking consequences) with the code surrounding this (see inline code comments), hopefully we won't have to care about this once the new HTML editor lands in master. [1]: https://github.com/odoo/odoo/commit/8e1bce010be2df8bd7144364fcbbe509d0441695
The Traceability Report PDF header now has more space between the reference and company name. This prevents the text from overlapping, making the report easier to read and more professional for users and customers.
Original PR description
Task: [4591489](https://www.odoo.com/odoo/49/tasks/4591489) Description of the issue/feature this PR addresses: The reference and company name in the header of Traceability Report are currently overlapping a bit. This PR increases the spacing of elements, to resolve the issue. Current behavior before PR: The formatting of the Traceability Report's header is incorrect, reference and company name are overlapping:  Desired behavior after PR is merged: The Traceability Report's header is displayed properly:  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue on website portal pages where reactions to a message were shown under the publisher's comment instead of the original message. Reactions now appear where users expect them, making conversations clearer and easier to follow.
Original PR description
Before this commit, message reactions appeared at the bottom of the publisher's comment instead of the original linked message. This commit ensures they are correctly positioned under the original message. Before  After  task-4619148
Google Calendar synchronization now relies on the Google Account module to manage access tokens, keeping authentication responsibilities in the right place. This also ensures the correct client secret helper is used, improving compatibility with customizations that override Google credentials.
Original PR description
Before this commit, the `refresh_token` handling was done in the `calendar`
module, even though it relates to token management and should therefore be
handled by `google_account`, which manages tokens and requests to Google.
This also fixes the call to `get_param('google_calendar_client_secret')`, which should use the correct helper `_get_client_secret`, as it may be monkey-patched by another module.This fixes a typo in an automated website shop test so it looks for the correct sales order reference format. The change helps keep the online store testing process reliable and prevents false build failures.
Original PR description
the Subject input value is supposed to start with S0 instead of S00 Screenshot of where the tour fails:  build_error-116092
This fixes an issue that caused the Indian E-way Bill stock page checks to fail because of hidden fields in the page setup. The change helps keep the E-way Bill workflow stable and prevents related automated validation errors.
Original PR description
In this commit- We fix the invisible fields failing test for `l10n_in_ewaybill_stock` runbot error-https://runbot.odoo.com/runbot/build/76485337 opw-4628736 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents vendor bill forms from crashing when a user clears the Accounting Date field. If the field is empty, the system now uses the invoice date or today's date instead, allowing users to continue editing bills without interruption.
Original PR description
Currently, An error occurs when removing an `Accounting Date` from the invoice bill form view. Steps to produce: - Install the `account` module (with demo data). - Go to Invoicing / Vendors / Bills. - Create a bill, remove value from the Accounting Date, and click anywhere in form view. `AttributeError: 'bool' object has no attribute 'year'` An error occurs when the system tries to get a year part from the accounting date [1], but the value of accounting date is missing. Link 1: https://github.com/odoo/odoo/blob/a0205ffa3d4a42321a41503b8056a9f1c89328bb/addons/account/models/account_move.py#L3522 If the accounting date is not available, then provide a default value as an invoice date or today's date to resolve an issue. Sentry-6188666136 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Invoice previews for Argentina and Chile now include proper spacing below custom document headers. This prevents invoice content from appearing stuck to the header and makes the on-screen preview better match the PDF output.
Original PR description
latam document layouts with custom headers don't have any bottom margin. All default layouts use `<ul>` for the header, which by default has 1em bottom margin. When we replace these headers with our…
latam document layouts with custom headers don't have any bottom margin. All default layouts use `<ul>` for the header, which by default has 1em bottom margin. When we replace these headers with our custom ones with just a plain `<div>` which has no bottom margin by deafult, we end up in a situation where in HTML preview, the body is glued to the header in `l10n_ar`, which also looks off comapred to PDF preview. How to reproduce: - Create a DB - Install Accounting - Install AR localization - Move to "(AR) Responsable Inscripto" company - Switch Document Layout to "Bubble" format - Create an invoice with B2B customer. It will make sure the Document Type switches to "(1) INVOICES A". - Make sure the Journal is "Electronic Invoice" - Validate the invoice - Click on Preview button - In parallel generate a PDF report of the invoice too You will see that on the PDF report the header looks nice because of the existing spacing, but on preview it looks glued to the header opw-4411237
Customer invoices now format correctly even when a product description is very long. This prevents invoice layouts from breaking, helping businesses send clearer and more professional invoices to customers.
Original PR description
before this commit: the invoice is incorectly formated when the description for a product is very long after this commit: the invoice is corectly formated task-4640747 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 fixes automated website tour steps so helper-based actions correctly respect page unload checks. It helps make guided tests and onboarding flows more reliable when a step triggers navigation or page changes.
Original PR description
If an action is defined in a step with a string (and therefore is an action that comes from tour_helpers) there is no check on the µbeforeUnload event that is done. In this commit, we fix this. 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 fixes an automated test for expired promo codes so it no longer fails intermittently around midnight. The customer-facing behavior is unchanged: expired promo codes should still be rejected correctly.
Original PR description
The Issue: Before this commit, if a promo code was set to expire today and a user attempted to apply it tomorrow, an error was correctly thrown. Which is the correct behavior, However, due to what seems to be a delay caused by Runbot running all tests, the promo code sometimes gets applied the next day. This issue consistently occurs between 12 AM and 1 AM, as seen in the build error. The Fix: Since the original test checks a promo code one day after its expiration to see if its still applicable or not, we can adjust the expiration date to today +1 and run the test on day +2. runbot-112678
Invoice follow-up SMS reminders are now prepared in the customer’s preferred language instead of the sender’s language. This helps businesses communicate payment reminders more clearly and consistently with customers in multilingual environments.
Original PR description
Steps to reproduce: * Customer record has language different than user's language. * Customer form view -> Accounting Tab -> Invoice follow-ups -> Send * Check sms checkbox * sms template in user's language, it should be in customer's languange. opw-4599660
This fix adds a short wait so the Gantt schedule view finishes loading during the restaurant appointment test. It prevents random test failures, helping keep release validation more stable without changing user-facing behavior.
Original PR description
In this commit, we add a delay to ensure Gantt view will correclty be loaded after clicking on Gantt view button. This allow to fix an indeterministic behavior that can occurs in restaurant_appointment_tour tour.
The expected test data for Ecuador delivery guide documents was updated to match a recent XML change. This helps keep automated checks reliable and reduces false failures during release validation.
Original PR description
Commit 147c9ba6942 added a new node to the Ecuador delivery guide XML. However the node was not added to the TestECDeliveryGuide.test_send_delivery_guide_flow test (which had an active runbot exception at the time). We now add the node to the test's expected XML. runbot-160903