Friday, October 31, 2025
29 changes · 19.0
Enhancements to existing features
The mail call permission dialog has been resized to remove unnecessary empty space. This creates a cleaner, more focused experience when users are asked to grant call permissions.
Original PR description
**Purpose of this PR:** Reduce the size of the call permission dialog to eliminate extra empty space on the right side. **Before** <img width="1355" height="643" alt="image" src="https://github.com/user-attachments/assets/e8366841-d07e-4c05-8f88-8710631bfd57" /> **After** <img width="1901" height="932" alt="image" src="https://github.com/user-attachments/assets/9e13f665-8028-4c61-9170-9eaf9d3b00a0" /> task-[5091767](https://www.odoo.com/odoo/project.task/5091767) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Live chat transcripts now add spacing when the speaker changes, making saved conversation histories easier to read. This helps sales or support teams quickly understand the flow and context when reviewing chats in related records such as leads.
Original PR description
When converting a livechat session history into a description (e.g., for leads), messages from different authors were shown consecutively without separation, making it difficult to follow the conversation flow. This PR inserts a line break whenever the message author changes, making the transcript easier to read and providing clearer context shifts. Task-5217172 **Before:** <img width="530" height="463" alt="image" src="https://github.com/user-attachments/assets/29304bc5-d8e4-470a-adc0-bf6d1d963bcf" /> **After:** <img width="491" height="586" alt="image" src="https://github.com/user-attachments/assets/7a019672-84fa-457d-ae2f-48bb4a3506a3" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The depreciation schedule report now defaults to the previous financial year instead of the previous month. This better matches how businesses typically use the report for year-end filings such as tax returns and BNB attachments.
Original PR description
The depreciation schedule report is usually is consulted to be attached to the BNB and/or tax return of a completed financial year. For an ongoing financial year, it has very little value. Therefore default opening of the depreciation schedule report is changed from previous month(default value) to previous year. task-5167082
Resolved issues and error corrections
When importing Ecuadorian vendor bills, the system now selects the matching purchase tax instead of accidentally applying a sales tax. This helps keep supplier bills, tax reporting, and accounting entries accurate without manual correction.
Original PR description
### Issue:
When importing a bill, some sale taxes are added to the lines.
### Steps to reproduce:
- Install 'l10n_ec_edi' and switch to an Ecuadorian company
- Accounting > Vendor > Bill
- Import an XML fill with a tax of 15%
- The created lines use the tax "VAT 15% G" which is a sale tax
### Cause:
The search to get the tax takes the first one from the right tax group.
### Solution:
Added `('type_tax_use', '=', 'purchase')` in the search domain to only retrieve purchase taxes.
opw-5174139
Forward-Port-Of: odoo/enterprise#98188Documentation and clarification updates
This pull request records that contributor Vitor29Narciso has signed the Contributor License Agreement. This is an administrative legal requirement that helps Odoo accept contributions safely, with no direct change to product features or user workflows.
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
This fixes an issue where live chat operators with standard live chat permissions could not pin customer messages after a chatbot handed the conversation to them. Operators can now manage important chat messages without being blocked by unnecessary chatbot-related access checks.
Original PR description
To reproduce (on runbot): - S1: Connect as "admin", leave the "YourWebsite.com" then logout - S1: Connect as "demo" user - S2: As public user, go to /contactus and start a chat session - S2: On the chatbot interaction, choose "I have a pricing question" (this will forward to the operator) - S2: enter a message - S1: On the livechat session, try to pin the last user message Since 1ecddc3d79dd an `AccessError` is raised, as the "demo" user (which is only `LiveChat / User`) don't have access to the chatbot step anymore. As we're not in the interacting with the chatbot when pinning a message, simplify skip that part if there is no "chatbotx answner" context to prevent the `AccessError`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#233617
Removing a decorative image shape in the website editor now restores the image’s original proportions when no manual crop was applied. This prevents images from staying accidentally cropped or distorted, making page editing more reliable for content teams.
Original PR description
Steps to reproduce: - Enter website edit mode. - Drag and drop a snippet containing an image onto the page. - Click the image. - Apply a shape that enforces a 1/1 ratio with stretch disabled (e.g the first one). - Remove the shape with the close button. Before this commit, removing the shape kept data-aspect-ratio at 1/1, so the picture stayed cropped or distorted. After this commit, removing the shape clears the crop dataset when no manual crop values exist, restoring the original proportions. task-5170195 Forward-Port-Of: odoo/odoo#231865
This fix makes an automated Discuss test more reliable when checking that channel lists continue loading correctly after using search. It helps prevent false test failures under heavy system load, supporting smoother quality checks without changing end-user behavior.
Original PR description
The `test_discuss_sub_channel_search` tour ensures that lazy loading of threads works correctly with the search feature. Technically, the component uses the `useVisible` hook which waits for a trigger to be visible before loading more threads. However, under high CPU load, the `IntersectionObserver` might not detect the change. For example, clearing the search input will make the element disappear, but scrolling afterward may make it reappear. As a result, the component might not detect that it should load more threads. In practice, this should never happen. The test now waits for the state to update before scrolling. fixes runbot-181951 Forward-Port-Of: odoo/odoo#233419
This fixes an issue in Point of Sale sales order loading where a lot number could still be assigned even after the user canceled the lot selection prompt. It helps prevent unintended product tracking details from being added to order lines, reducing correction work and improving order accuracy.
Original PR description
Before this commit, when loading a sale order containing an order line tracked by lot, the system prompted the user to select a lot. However, even if the user canceled the selection, the lot was still added to the order line. After this commit, the lot will no longer be set if the user cancels the selection. opw-5162487 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#233281
This fixes an outdated internal call in the self-ordering point of sale flow that could trigger errors. The change helps keep the customer ordering experience stable by removing a reference to functionality that no longer exists.
Original PR description
Before this commit, there was still a call to the resetTableIdentifier, even though the function had been removed, which could cause errors. opw-5166737 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232521
Point of Sale receipts now exclude combo product pricing from the total discount calculation when a discounted pricelist is used. This prevents free items in combo offers from being counted as discounts, giving customers and cashiers clearer, more accurate receipts.
Original PR description
Before this commit, if a pricelist with a discount was assigned to a PoS order, combo products that included free items would display an incorrect total discount on the receipt. The discount amount wrongly included the prices of the free products. Since combo price calculations follow a different logic, this commit ensures that pricelist discounts are excluded from the total discount computation for combo products to avoid confusion. opw-5046691 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#233588
This fixes an issue where website background color selection options were accidentally changed during a previous update. Restoring the correct choices helps users keep the intended look and branding when editing website pages.
Original PR description
During the FW-port PR (https://github.com/odoo/odoo/pull/230283/files), the background color selectors were mistakenly modified. This commit restores their correct values. 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 update prevents upgrade failures when the default administrator employee record was previously deleted. It keeps HR data loading safely while preserving the payroll-related setup where it is actually needed.
Original PR description
The data file adds `structure_type_id` field to `employee_admin` [because](https://github.com/odoo/odoo/pull/217855) it is required in module `hr_payroll`. The original record for `employee_admin` became `forcecreate=0` but the override (in the same file) still will try to create it with no data if the users have removed the record. This fix moves the override to the module where it is needed, with forcecreate=0. Issue encountered during upgrades --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231234
Salary rule forms now require the percentage base field only when it is actually needed. This prevents incorrect validation errors when payroll users change salary rule conditions or percentage settings, making the form easier to save correctly.
Original PR description
**Steps to reproduce:** - Install the hr_payroll module. - Open a salary rule form view. - Change amount_select to Percentage and try to save → validation error occurs because amount_percentage_base is required. - Keep amount_select the same and change condition_select to Salary Input → the same validation error occurs. **Issue:** The amount_percentage_base field is incorrectly made required even when condition_select changes. The requirement should depend solely on amount_select, not condition_select. **Cause:** The field amount_percentage_base remains mandatory when condition_select is updated, leading to validation errors. **Fix:** This PR adjusts the logic so that the amount_percentage_base field is required only when appropriate, based on both condition_select and amount_select. task-5090125
The date and time picker now provides clearer hover and focus feedback, making it easier for users to see what they are selecting. Dark mode styling was also corrected so the calendar and time fields remain readable and visually consistent.
Original PR description
The `DateTimePicker` lacks hover and focus states. In darkmode the calendar doesn't have the proper elevation background color and the input border on `TimePicker` is not visible. task-4900904 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an unreliable automated test for appointment bookings by making it match how customer details are handled during real online bookings. It helps reduce false test failures and supports more stable appointment-related releases without changing user-facing behavior.
Original PR description
The test 'test_customer_event_description' was failing inconsistently due to a discrepancy in how the event description is generated. The test previously relied on the base calendar model's logic,…
The test 'test_customer_event_description' was failing inconsistently due to a discrepancy in how the event description is generated. The test previously relied on the base calendar model's logic, which automatically creates a description by selecting the first partner associated with the event (excluding the organizer) based on default record ordering. This selected partner may not always be the actual person who booked the appointment. However, when a user books through the front-end, the controller uses specific logic to build the description, correctly identifying the booker and bypassing the model's default behavior. This difference caused the test to occasionally choose the wrong partner for the description, resulting in unpredictable failures. This commit aligns the test more closely with the actual booking behavior seen by users. It now explicitly prepares the event description using the designated booker's details and prevents the base model logic from interfering. This ensures the test is reliable and accurately validates the description content. A potential future improvement would involve refactoring the controller's description logic into the model layer for better testability, as the current test mimics the controller logic, which could diverge over time. Task-5207757
Users can now turn off the blurred background in call preview immediately after enabling it without the screen crashing. This improves reliability for video call setup in Discuss by ensuring the needed notification handling is available.
Original PR description
Before this PR, disabling blur background right after enabling it would crash because the notification service was not initialized in the `CallPreview` component. This PR adds the missing notification service to fix the crash. Task-5223992 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The approval request print report now has cleaner formatting, with better label spacing and more consistent text sizing. This makes printed or shared approval requests easier for employees and managers to read.
Original PR description
Steps to Reproduce: - Install approvals module. - Navigate to Approvals → My Approvals → My Requests → Print report. Issue: - The formatting of the report is not proper. Solution: - Fixed the report's QWeb template (approvals.report_aprroval_request_document). - changed col-2 to col-3 to give the labels more space and improve alignment with the field values - changed h5 to h6 for more consistent and appropriate font size throughout the document **before :** <img width="777" height="818" alt="image" src="https://github.com/user-attachments/assets/86cbaf50-191a-412b-9b8e-149442256819" /> **after :** <img width="829" height="623" alt="image" src="https://github.com/user-attachments/assets/da237a87-7a7b-45db-8347-d64e1e987469" /> Forward-Port-Of: odoo/enterprise#95609
This update fixes validation around weekly available hours in the attendance planning view when an employee is created today but has an occupation that started in a previous month. It helps ensure attendance availability is calculated reliably for realistic employee start-date scenarios.
Original PR description
Modified the test case to check the flow for when we create employee for the date = today and set him an occupation starting in the past month. task-4985887 Forward-Port-Of: odoo/enterprise#92023
Shipping address details sent to Gelato are now shortened when they exceed Gelato's allowed field lengths. This helps prevent order fulfillment errors caused by overly long customer address information.
Original PR description
Address fields are trimmed to fit the Gelato character limit for shipping address fields. opw-5207430
Product cards now display correctly on shop pages using Arabic or other right-to-left languages. This prevents product images from protruding outside their card containers, improving the storefront appearance for affected customers.
Original PR description
Versions -------- - 19.0+ Steps ----- 1. Enable Arabic (or any RTL language) for the website. 2. Navigate to the shop page. 3. Edit "Product Design" to be "Cards" list. Issue ----- The rights corners of the product images are not rounded, and are sticking out of the container, while the left corners are rounded, when they should be straight. Cause ----- The rounded corners of the image are applied the same way regardless of the direction of the whole page, while the rest of the elements, including the container for the image, are flipped. Solution -------- Add a CSS rule to handle specifically the RTL case. opw-5173879
Fixes an issue in the Website editor where removing a background color from a boxed Countdown snippet could trigger an error. The snippet now has a safe default background color value, so business users can edit and preview countdown designs without interruption.
Original PR description
Steps to Reproduce: 1. Add a Countdown snippet. 2. Change the layout to Boxes. 3. Apply a background color to the layout. 4. Hover over the delete button in the color picker. 5. A traceback error occurs. Issue: A traceback error occurs because the does not have a default value assigned. This is necessary for the snippet to preview correctly when no additional color is applied. Fix: Assign a default value to ensure that the hover behavior works properly, even when no color is set. The issue was produced here: https://github.com/odoo/odoo/commit/03c552690b15#diff-a0262b81bb090b8c62afbd342b2a30f054cf353a35f9fc0ceeb0f86b7b9cd645 task-4752497 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#232094 Forward-Port-Of: odoo/odoo#224012
This fix keeps older HTML builder options working in the current editor. It helps prevent regressions for pages or customizations that still rely on legacy option behavior.
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
The Mail app’s new meeting button now uses a video call icon instead of a user-plus symbol. This makes the button’s purpose easier to understand and helps users predict that it starts or schedules a video meeting.
Original PR description
This commit replaces the `new meeting` icon (previously `oi-user-plus`) with an SVG depicting a video call. This aims to clarify the action performed when clicking the button, making its behavior more predictable. | Master | This PR | |--------|--------| | <img width="297" height="54" alt="image" src="https://github.com/user-attachments/assets/06e5db74-dbcd-40d1-b992-ec27a3b37be9" /> | <img width="299" height="51" alt="image" src="https://github.com/user-attachments/assets/2339cf3f-89ac-4d3c-915e-c03863c88a75" /> | task-5216140 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a small issue in the IoT module so websocket messages include the needed message type. It helps ensure the websocket communication can be tested reliably, reducing the risk of unnoticed connection issues.
Original PR description
In order to allow testing the websocket protocol, we need to provide the message type to the `sendMessage` method. This was forgotten in odoo/enterprise#97525.
Users can now add reactions from the pinned messages panel without triggering an error. This improves reliability in Odoo Discuss by handling cases where conversation context is unavailable.
Original PR description
**Description of the issue this PR addresses:** Prevent traceback occurs on pinned panel **Steps to reproduce:** - Send any message to the channel - Add a reaction - Pin that message - Go to the pinned message panel - Try adding a reaction again **Current behavior before PR:** Before this PR, when a user tries to add a reaction from the pinned panel, it throws an error because `env.getCurrentThread` is not defined in that environment and is called unconditionally. **Desired behavior after PR is merged:** This PR ensures `env.getCurrentThread` is only accessed if it is defined, preventing the error in contexts where the thread environment is not available. task-[5153215](https://www.odoo.com/odoo/project/1519/tasks/5153215) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where a duplicated payment provider was not automatically published, which could prevent it from being available for use. Businesses copying provider setups can now expect the new provider to remain visible and usable without extra manual steps.
Original PR description
Backport of https://github.com/odoo/odoo/pull/230755 Following commit https://github.com/odoo/odoo/commit/d2949c8f11547cf2d34ddfacfd1ff046f204021d, the copied provider is no longer published by default. runbot-233300
This fix adds version information to marketing email snippets so older templates can be recognized by the email builder. Users will be able to choose to update outdated template sections more reliably until a fuller upgrade process is available.
Original PR description
Add a `vxml` (xml version) for every `mass_mailing` snippet, so that users with templates using old version of it can choose to update their snippet using the builder. It's the bare minimum in lieu of a proper upgrade (which will come later). task-5134263 Co-authored-by: Damien Abeloos <abd@odoo.com> Co-authored-by: Thomas Josse <thjo@odoo.com>
Portal users opening shared project tasks will no longer see an irrelevant slider option for showing subtasks. This keeps the shared task view cleaner and avoids exposing controls that were not intended for this context.
Original PR description
Steps to reproduce: - Open any shared project from portal account. - Open any task Issue: - Visible slider with Show Sub Tasks option. Reason: - Unwantedly added ControlPanel into FormView of Project Sharing View. - Issue from https://github.com/odoo/odoo/pull/224203. Fix: - Remove the ControlPanel in Form View and extend web Control in xml to acheive the button. Forward-Port-Of: odoo/odoo#233939