Thursday, October 16, 2025
22 changes · 18.0
Enhancements to existing features
The salary configurator sidebar now has better spacing between field labels and their tooltip icons. This small visual improvement makes the interface cleaner and easier to read for HR users.
Original PR description
In the salary configurator sidebar some fields have a tooltip to explain how the value is calculated, the icon for that tooltip had no margin between itself and the label. This commit adds a margin between them to make it more visually pleasing. Task ID: 5138530 Forward-Port-Of: odoo/enterprise#96483
This update adds automated coverage for Indian e-invoicing when exports are made without a Letter of Undertaking and prices already include tax. It helps ensure the reported taxable base matches the invoice total, reducing the risk of incorrect compliance data.
Original PR description
Add test for export without LUT and price included tax, but base should be equal to invoice total.
This update adjusts how partner records are handled when sending accounting documents, reducing the risk of using the wrong customer or vendor context. It helps make the accounting document sending process more reliable without changing the user-facing workflow.
Original PR description
[IMP] account: Use a variable that is filled in to call a function. - The function is modified so that the “parents” variable does not call the “find_or_create” function, since a variable is being used that is filled in each pass of the ‘for’ loop with “res.partner”. Therefore, when “find_or_create” is called, self may have more than one “partner,” so the solution we have implemented is to change the ‘partner’ variable when the function is called and replace it with “self.env[‘res.partner’]”. https://github.com/odoo/odoo/blob/18.0/addons/account/models/account_move_send.py#L156
Resolved issues and error corrections
This fix prevents access errors when checking transaction dates used for loyalty reward expiration. It ensures the system can read the needed transaction dates reliably, so eligible loyalty benefits are evaluated without interrupting sales workflows.
Original PR description
Versions -------- - 17.0 - 18.0 - saas-18.2 Fixed in saas-18.3+ during forward porting. Issue ----- Checking transaction dates for loyalty expiration can lead to access errors. Cause ----- Transactions aren't checked using `sudo`. Solution -------- Use `sudo` to get the transaction dates. opw-4765873 Forward-Port-Of: odoo/odoo#231024
Documentation and clarification updates
The corporate contributor agreement record for ForgeFlow was updated. This keeps Odoo's legal contribution documentation current and supports proper tracking of contribution rights.
Miscellaneous changes
opw-5018450 Forward-Port-Of: odoo/odoo#231394
Original PR description
opw-5018450 Forward-Port-Of: odoo/odoo#231394
When users click “View More Themes” during website setup, the page now shows a fullscreen loading indicator. This prevents users from accidentally selecting an existing theme while additional themes are still loading, making the setup flow clearer and safer.
Original PR description
Steps to reproduce: 1. Create a new website and proceed to the theme configuration step. 2. Click on View More Themes. -> You’ll notice a loading effect on the button, but the existing themes remain selectable. Before this commit: Users could still select existing themes while additional themes were being loaded. After this commit: A fullscreen loader is displayed while loading more themes via the View More Themes button, preventing any unintended interactions. task-4661292 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 employee contract calendars so past weekends and bank holidays are shown again when reviewing unusual days before the current contract start date. The change keeps draft contracts excluded while allowing expired contracts to provide accurate historical working schedule information.
Original PR description
Since changes made in https://github.com/odoo/odoo/pull/212959, we don't see anymore the week-end and banck holidays before the start date of your current contract. As the goal of the initial commit was to prevent to use the contracts in state 'new', we add the contracts 'exppired' that are contracts of the past that really give information of the working hours. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Rating images in Live Chat and related rating views now use a transparent background instead of showing an unwanted white box in dark mode. This improves visual consistency and readability for users working with dark mode enabled.
Original PR description
**Current behavior before PR:** The rating images have an unintended white background in dark mode. **Steps to Reproduce:** - Turn on Dark Mode - Go to livechat - Go to Report > Sessions History **Desired behavior after PR is merged:** This PR fixes the issue by applying a transparent background to rating images through the `img_class` option in image widget. The change is applied to: - discuss.channel (kanban, list, form views) - rating.rating (form, kanban views) --- **Before:** <img width="372" height="202" alt="image" src="https://github.com/user-attachments/assets/d573ab3e-62be-4ab2-9c7f-e39bf97cb542" /> **After:** <img width="394" height="141" alt="image" src="https://github.com/user-attachments/assets/6133c231-c634-4afd-a99f-5440ecfe72be" /> task-[4689867](https://www.odoo.com/odoo/project/1519/tasks/4689867) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This corrects a small typo in an internal test for view filtering rules. It helps keep automated checks reliable and prevents avoidable test failures, with no expected impact on day-to-day users.
Original PR description
A typo was introduced in #163714
Project sharing pages now show tags using the same light styling as the rest of the interface. This fixes a visual inconsistency that could make shared project views look out of place or harder to read.
Original PR description
Before this commit, the project sharing was using the dark style for tags even though the rest of the views are in light mode. Removing the tags_list.dark.scss file from the imported file in the manifest fixes this issue. task-5130176
This change ensures accounting localization tests always install the needed demo data before running. It helps keep automated checks consistent across versions and reduces the risk of false test failures, with no direct impact on everyday users.
Original PR description
In later versions, we improve the testing suite to avoid having to install demo data in order to reduce the testing time. In order to keep the testing configuration simple across versions, we force the installation of demo data instead of only asserting that demo is installed before launching the script. Forward-Port-Of: odoo/odoo#231736 Forward-Port-Of: odoo/odoo#231660
Odoo Studio now automatically resizes app icons to a maximum of 64 by 64 pixels before saving them. This prevents unnecessarily large icon files from increasing database size, cache usage, and request payloads, helping keep the system lighter and more efficient.
Original PR description
Before this commit, the IconCreator images were sent as is in their full size. Downstream it was problematic because apps' icons were bigger than necessary, bloating the different caches, the database, and the request. After this commit, icon are resized to a max of 64x64 pixels. Forward-Port-Of: odoo/enterprise#94480
The Saudi Arabia e-invoicing module now labels the second street/address line as “District” instead of “Street 2.” This helps users enter the correct district or borough information for invoices, reducing confusion and supporting compliance with Saudi e-invoicing requirements.
Original PR description
## Before this commit The `street2` field on `res.company` and `res.partner` was mapped to `cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CitySubdivisionName`, but its placeholder displayed `Street 2…`. This caused confusion among users, as they assumed it referred to `cbc:AdditionalStreetName`, leading to incorrect data entry and potential non-compliance. ## After this commit The placeholder of the `street2` field has been changed from `Street 2…` to `District…`, clarifying that this field represents the city subdivision (district or borough) of the Seller/Customer, in line with the Saudi Arabia e-invoicing specification. > Task-4951545 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231160
This fixes an internal calculation problem in accounting reports caused by using the wrong record context. It helps ensure report values are computed reliably, reducing the chance of incorrect or failed report displays.
Original PR description
Forward-Port-Of: odoo/enterprise#97144
This fix ensures French VAT report submissions to ASPOne use the correct character limits for company name and address fields. It helps prevent rejected or invalid filings caused by values that are too long for the required format.
Original PR description
The aim of this commit is making sure that the field Designation, DesignationSuite1, DesignationSuite2, AdresseVoie and AdresseComplement are correctly filled. Indeed, the XSD implied that these fields have to be respectively 35, 35, 35, 30 and 35 characters max. [Documentation 2025](https://www.aspone.fr/files/tutoriaux/xmledi/Documentation_XML-EDI.zip) no task id Forward-Port-Of: odoo/enterprise#97199
OdooBot's preloaded canned responses are now shared with the right user group, making them visible to users as intended. This fixes demo and default data so teams can access the suggested replies without extra setup.
Original PR description
**Description of the issue this PR addresses:** Modify Canned Response master and demo data **Current behavior before PR:** Before this PR, canned responses created by OdooBot in master and demo data were not shared effectively, so they were not visible to anyone. **Desired behavior after PR is merged:** This PR ensures canned responses created by OdooBot are shared properly, by assigning a user group, ensuring that everyone can see them. task-[5069111](https://www.odoo.com/odoo/project/1519/tasks/5069111) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The accounting contact page now ignores archived bank account records when checking whether another partner uses the same bank account number. This prevents misleading duplicate-account banners from appearing after obsolete bank records have been archived.
Original PR description
If a res_partner_bank record shares an acc_number with other res_partner_bank records, even archived ones, the field duplicate_bank_partner_ids still includes partners from those archived records. As…
If a res_partner_bank record shares an acc_number with other res_partner_bank records, even archived ones, the field duplicate_bank_partner_ids still includes partners from those archived records. As a result, the contact page shows a banner indicating other partners use the same bank account, even though those res_partner_bank records have been archived. Steps to reproduce the issue: 1. Create a new bank account which has the same bank account number as another bank account already associated to a partner 2. Assign this new bank account to another partner 3. Archive this new bank account 4. Go to the contact page of the partner (from step 1) which has a bank account with the same bank account number as the new bank account just created 5. A banner will pop up at the top of the contact saying that this partner uses the same bank account as the partner you set on the bank account in step 2 Solution: Add a condition to the JOIN clause that checks “other.active = TRUE” to ensure that other res_partner_bank records to search for that have the same account number are active. Also add a condition to the WHERE clause that checks “this.active = TRUE” to ensure that the current res_partner_bank record doing the search is active itself. opw-4967083
The help text for advanced employee access settings in Point of Sale now matches how the setting actually works. This reduces confusion for administrators configuring which employees can use advanced POS features.
Original PR description
Before this commit, the help text of the advanced_employee_ids field was inconsistent with its behavior, as it was not possible to keep it empty. This commit updates the help to reflect the actual behavior. opw-5112862 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix stops certain document-related attachments from being automatically uploaded to cloud storage when they need to remain available for document business processes. It helps avoid unintended storage behavior and keeps document handling consistent within Odoo.
Original PR description
Some models' attachments will automatically become document attachments which may be used in business code of documents. This commit avoids uploading these attachments to the cloud storage. 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
The payslip export option was pointing to a page that no longer exists, causing users to see a Page Not Found error. This fix removes or bypasses the broken action so payroll users no longer encounter a dead-end button.
Original PR description
Steps to reproduce: ------------------------- 1. Install `hr_payroll` module 2. Enable debug mode and click on Become Superuser 3. Go to All Payslips and open any payslip record 4. Click on the…
Steps to reproduce: ------------------------- 1. Install `hr_payroll` module 2. Enable debug mode and click on Become Superuser 3. Go to All Payslips and open any payslip record 4. Click on the Export Payslip button Observation: ------------------------- A 404 (Page Not Found) error appears when clicking the Export Payslip button Issue: ------------------------- The button triggers the route `/debug/payslip/<id>`, which was removed in the following commit https://github.com/odoo/enterprise/commit/57969bcaf876a13c36794adeb47e0da938e297ad#diff-0105b1a6a9e742e7eeaf7cc727745ebd3932177378d46332d4ca854f931b3359 The route was never reintroduced afterward, but the Export Payslip button remained in the view. As a result, clicking it leads to a 404 error Solution: ------------------------- 1. Temporarily bypass the `action_export_payslip` function. 2. Remove the Export Payslip button from the XML in the master forward port branch, as doing so does not impact any existing customizations relying on that button opw-5115946 Forward-Port-Of: odoo/enterprise#96359
Fixed a website issue where images added inside team member descriptions were forced to use the same small size as profile avatars on mobile. This keeps avatar styling intact while allowing description images to appear at their intended size, improving page presentation for visitors.
Original PR description
Scenario:
- Add s_company_team snippet ("Meet our team" with avatar side by side
with description)
- Add an image in the description (small or big)
- See the page with mobile
Result: all images in the description get a fixed 8rem height which was
only meant for the avatar image.
Fix: be more specific with the selector to target only the avatar. The
selector .row.s_col_no_resize > .o_not_editable img.o_editable_media
should only target the intended avatar.
opw-4997932
X-original-commit: 0bba8d78d8a6d3609db605428f8704440652e018
Forward-Port-Of: odoo/odoo#225412