Thursday, March 12, 2026
5 changes · 17.0
Enhancements to existing features
This update makes it easier to customize the look and feel of invoice reports. By adding an ID to the report template, other Odoo modules can now use standard styling methods (CSS or XML) to modify the report's appearance. This enhances flexibility and allows for tailored invoice reports.
Original PR description
This commit adds an id to some html element in report_invoice. This allows other modules to easily target, style, and override the contents of this section using standard CSS selectors or XML/XPath overrides, improving the template's extensibility. task-5162891
Resolved issues and error corrections
This update fixes an issue where presence notifications were sent incorrectly for records that were being removed from the system. Now, notifications are only sent after the record is fully unlinked, ensuring accurate 'offline' status updates are broadcast. This improves the reliability of presence status information.
Original PR description
Before this commit, presence channel notifications for unlinked records were sent before the records were actually removed from the database. This caused `im_status` to be calculated using stale data, occasionally resulting in statuses other than "offline" being broadcast. This commit ensures notifications are sent only after the presences have been unlinked, guaranteeing an accurate status.
Documentation and clarification updates
This pull request updates the Therp company CLA to reflect current employee contributions. Previously, the CLA contained outdated information. After this change, the CLA will accurately represent all Therp company contributors, ensuring legal compliance.
Original PR description
Description of the issue/feature this PR addresses: It makes our company CLA up to date with the reality Current behavior before PR: Our company CLA had some old employees in it, and didn't have some new ones Desired behavior after PR is merged: Our company CLA is up to date --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update prevents unnecessary timesheet entries from being created when public holidays are edited or deleted. Previously, deleting a holiday would incorrectly generate timesheets for all related leave requests, even if they were refused. Now, timesheets are only created for valid, approved leave requests, streamlining the process and reducing potential errors.
Original PR description
…d leaves Description of the issue/feature this PR addresses: When a public holiday is edited or deleted, the timesheet re-creation is erroneously done for *all* leaves, even those which are canceled or still in draft. Steps to Reproduce: 1. Create a Time Off request for a timesheet-creating leave type (i.e. `timesheet_generate = True`) that overlaps with a public holiday. 2. Refuse the Time Off request. 3. Delete the public holiday the request overlaps with. Current behavior before PR: The deletion of the holiday causes timesheet entries to be created, even though it's a refused request. Desired behavior after PR is merged: The deletion or editing of the public holiday only re-creates the timesheets for the leaves that are actually valid and thus need timesheet entries. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where a regex used in UBL invoice processing would fail when encountering non-string values. The fix ensures the regex only operates on valid strings, preventing errors during invoice import and improving the stability of the account_edi_ubl_cii module. This resolves previous issues related to vendor bill imports.
Original PR description
The issue occurred because a test regex was applied to a non-string value. In some cases the value was False, which caused the operation to fail. Steps to reproduce: - Import a vendor bill - Remove the product and the label from one line, then post the bill - Import another bill (or the same bill)from the same supplier - An error occurs when the regex tries to match a non-string value This change ensures the regex is only applied to valid strings. It also improves the code by extracting the static part of the regex into a dedicated variable. opw-6019298 opw-6030364 opw-6033013 opw-6032608 opw-6032546