Friday, December 19, 2025
10 changes · saas-18.2
Resolved issues and error corrections
The accounting dashboard now shows the same number of items to reconcile as users see when they open the reconciliation list. This prevents confusion after resetting reconciliations involving draft journal entries, since draft entries can still be reconciled in Odoo.
Original PR description
Steps to reproduce: - go to daschboard > N to reconcile - validate the first entry - back to dashboard you will N-1 to reconcile - Reset to to draft the journal entry associated with the reconciliation - Reset the bank reconciliation Issue Back to the dashboard you will see N-1 to reconcile but when clicking on it you will have 8 entries to reconcile Cause: We filter out non posted entries. In Odoo, draft entrie can be reconciled. opw-5102016 Forward-Port-Of: odoo/odoo#229267
A course review test was updated so it no longer depends on demo data being installed. This helps keep website eLearning quality checks reliable across setups by ensuring the administrator account has the needed email before posting a message.
Original PR description
We fix the tour test_course_reviews_elearning_admin that was failing when running it without demo data because user admin was posting a message on a channel without an email set on its partner. The same test works in version 18.0 and not in 18.2 because since 18.1, user admin no longer have an email by default (unless the demo data are installed, see odoo/odoo#185809). To fix the test, we just set an email on the partner of user admin before posting the message. Task-5418242
This fixes an issue where hidden editor content could be misread, causing a parsing error when saving appointment invitation content after editing a list. The change makes the editor handle hidden template elements consistently, helping users save affected emails without errors.
Original PR description
Problem: When nodes have `display: none` (for example a QWeb `t-else` node with a false condition), `isBlock` incorrectly fails when checking them. Solution: If a node has `display: none`, fall back to checking its `tagName` against `blockTagNames`. This ensures consistent behavior regardless of the node visibility. Steps to reproduce: - Open “Appointment: Attendee Invitation”. - Add a list item to the list in the content. - Save. - A QWeb parsing error occurs. opw-5268806 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239482
Windows printing through the virtual IoT box now handles failures more gracefully. This helps avoid disruptions when a print job encounters an error, making printer-related issues easier to recover from or diagnose.
Original PR description
This commit adds the try/except block around print_raw method of the virtual iot box to allow catching exceptions when printing on Windows Forward-Port-Of: odoo/odoo#238633
Guest users will no longer see the option to unpin messages in the mail pinned messages panel, avoiding confusion from actions they are not allowed to complete. Internal users keep the same pin and unpin capabilities, so the interface now better matches each user's permissions.
Original PR description
**Description of the issue/feature this PR addresses:** ---------------------------------------------- Currently, guest users in PinnedMessagesPanel can see the unpin button on pinned messages, but…
**Description of the issue/feature this PR addresses:** ---------------------------------------------- Currently, guest users in PinnedMessagesPanel can see the unpin button on pinned messages, but the server correctly rejects their unpin requests. This creates confusion and a poor user experience where external users see functionality that doesn't work for them. **Current behavior before PR:** ---------------------------------------------- - Guest users see the unpin button on pinned messages - Clicking the unpin button results in server rejection - UI shows functionality that guest users cannot actually use **Desired behavior after PR is merged:** ---------------------------------------------- - Guest users cannot see the unpin button on pinned messages - Internal users continue to have full pin/unpin functionality - UI accurately reflects user permissions and capabilities - Better user experience with appropriate access control Task-5033295 ---------------------------------------------- I confirm I have signed the CLA and read the PR guidelines at https://www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#229211
Invoice PDFs for Chilean companies now display unit prices without decimal places, matching local formatting rules. This avoids confusing rounded values such as 100.00 appearing when Chilean invoices should show whole-number unit prices.
Original PR description
**Steps to reproduce:** * Install the *l10n_cl* module with demo data. * Switch the environment to the **CL** company. * Create a customer invoice containing at least one invoice line. Enter a…
**Steps to reproduce:** * Install the *l10n_cl* module with demo data. * Switch the environment to the **CL** company. * Create a customer invoice containing at least one invoice line. Enter a **price_unit with decimals** (e.g., *99.56*). * Confirm the invoice. * Download and open the generated PDF from the invoice form. **Observed behavior:** * The **unit price** rendered in the PDF is displayed as a rounded decimal value (e.g., *100.00*), even though *Chilean* localization does **not** use decimal representation for unit prices. **Cause:** * The QWeb template uses `t-options` to format float values with **two-decimal precision**, forcing decimals to appear in the PDF. **Fix:** * Reduce the formatting precision in the PDF template so that **no decimal points** are displayed, matching Chilean localization rules. **Before Fix** <img width="783" height="319" alt="image" src="https://github.com/user-attachments/assets/e5ea5a38-a77a-4d64-9aae-672940734ea4" /> **After Fix** <img width="794" height="316" alt="image" src="https://github.com/user-attachments/assets/c47d2f0a-b4ea-428e-bf57-23584c34bf5c" /> --- opw-5234563 Forward-Port-Of: odoo/odoo#238059
This update reorganizes internal tests for the HTML editor so each scenario runs independently and is easier to maintain. It also removes confusing test helper shortcuts, reducing maintenance risk without changing customer-facing behavior.
Original PR description
Description of the issue/feature this PR addresses: I. Grouping multiple testEditor in a single test is bad practice because the timeout of it is then shared between the different testEditor calls rather than each having their own separate timers. This PR splits the calls of each testEditor to its own test. II. This PR removes helper functions used to create different types of tags. Instead of simplifying the code, these helpers introduced unnecessary complexity and confusion. task-5375867 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240345
A recent test failure has been resolved to ensure accurate accounting for employee work orders. The issue stemmed from a miscount of analytic lines created during a test setup, triggered by a specific configuration of employee calendar data. This fix corrects the underlying logic to prevent the inaccurate record count.
Original PR description
fixing runbot error https://runbot.odoo.com/odoo/runbot.build.error/234639 on test test_mrp_analytic_account_employee_from_widget introduced by this PR https://github.com/odoo/enterprise/pull/85517
**cause of the error:**
Because there is a resource.calendar.leave without calendar_id,
without resource_id and at a date after today :
during the setupclass, when the employee is created,
_create_future_public_holidays_timesheets() creates an account.analytic.line.
So at the end of the test ,
self.env["account.analytic.line"].search([('employee_id', '=', self.employee1.id)])
returns 2 records instead of 1.
runbot-234639
Forward-Port-Of: odoo/enterprise#102338
Forward-Port-Of: odoo/enterprise#102282This update corrects a technical issue in the accounting system that was leading to inaccurate deferred revenue entries. The change ensures the system correctly utilizes deferred type accounting, improving the reliability of financial reporting. This resolves a potential discrepancy in revenue recognition.
Original PR description
In c3bd8e44546df21c51914a560a28a739f55cca21, a forward-port of 0a6bc3710ee1bfdf10bfd3da7d6e24fd190432e6, the `deferred_expense_amount_computation_method` was always used instead of relying on the deferred type opw-none Forward-Port-Of: odoo/enterprise#102517
Documentation and clarification updates
This pull request updates the Adhoc corporate Contributor License Agreement records by adding new members. It keeps the project’s legal contribution documentation current and accurate without changing product functionality.
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#240304