Thursday, December 11, 2025
16 changes · master
Enhancements to existing features
When supplier or customer details are imported from electronic invoices, newly created partner records are now correctly identified as companies. This helps keep partner records consistent and reduces manual cleanup after importing business documents.
Original PR description
Ensure imported partner records are marked as companies when creating new partners. Task-5353923 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239116 Forward-Port-Of: odoo/odoo#238793
Website editors now see helpful hover text on color picker buttons, making it easier to identify fill and border color controls. This small usability improvement reduces confusion when adjusting primary and secondary button styles in theme color presets.
Original PR description
[*]=website This PR introduces the _tooltip_ property on the `BuilderColorPicker` component, allowing a tooltip to be displayed when hovering over the color picker button. Additionally, the tooltip property of "Fill Color" and "Border Color" has been added to the respective color picker buttons of both the _primary_ and _secondary_ button options in the _theme_ editor's _color presets_. task-5066118
Project profitability revenue sections now remember when they have been opened, even after users switch views or open linked sales order lines. This reduces repeated navigation and makes reviewing project profitability smoother for users.
Original PR description
Before this commit when we unfold the Revenue Sections and switch view or open the records in SOL linked to revenue through the action links. The state of the view is reset the opened section get closed. After this commit, the profitability revenue section have persistence regarding the section being opened even after switching views and coming back. task-4398311
Kanban columns with no records now show the actual group name instead of a generic “stage” label. This makes empty-column guidance clearer for users, especially in Project task boards grouped by different fields.
Original PR description
The Kanban group no-content helper message now displays the actual group name instead of always defaulting to "stage". The CSS class for the Kanban group no-content helper has also been updated to reflect this change. task-5266317
The CRM demo setup now uses less restrictive lead assignment rules for demo sales teams and members. This helps users test the chatbot's "Create Lead & Forward" step without demo rules blocking the forwarding and causing confusion.
Original PR description
This commit loosens the lead assignment rules for the demo data crm teams and team members. The purpose of this change is to facilitate the testing of the "Create Lead & Forward" chatbot step, which has been mistakenly reported as not working while actually the forwarding was stopped by the lead assignment rules. task-5137022
The Discuss sidebar category headers are now visually lighter when idle, more compact, and easier to scan. This improves the distinction between categories and channels while making the sidebar feel cleaner in both light and dark themes.
Original PR description
This PR makes the following changes: 1. mute category color when not mouse-hovering 2. reduce height of category item 3. move chevron on right on name rather than left Motivation for changes: 1.…
This PR makes the following changes: 1. mute category color when not mouse-hovering 2. reduce height of category item 3. move chevron on right on name rather than left Motivation for changes: 1. better contrast of category and items, making it easier to visually see difference between category and channel items. 2. category vertical footprint is reduced and also looks better when folded. 3. chevron on right allows to align text, and also new position feels more natural with the translate animation on mouse-hover Task-5410962 Before / After (white theme) <img width="302" height="578" alt="Screenshot 2025-12-10 at 18 36 34" src="https://github.com/user-attachments/assets/da5cd355-cf3d-4880-b68d-c34197725344" /> <img width="302" height="579" alt="Screenshot 2025-12-10 at 18 36 46" src="https://github.com/user-attachments/assets/73634547-8fca-4f39-83ff-8813be851544" /> Before / After (dark theme) <img width="301" height="573" alt="Screenshot 2025-12-10 at 18 26 18" src="https://github.com/user-attachments/assets/fa4eb637-8e06-469c-b9f9-2e62cedd981f" /> <img width="305" height="577" alt="Screenshot 2025-12-10 at 18 33 00" src="https://github.com/user-attachments/assets/08d58c14-81d6-43f3-9d1d-ecbf46d86c79" />
Invoicing users can now open invoices with Indian TDS/TCS alerts using the proper permissions. This removes a temporary workaround and makes access handling cleaner and more reliable without changing business workflows.
Original PR description
In version 18, `sudo()` was added as a temporary fix to avoid AccessErrors when invoicing users tried to open invoices. The problem was caused by missing read permissions on the `l10n_in.section.alert` model. In master, the correct access rights have now been added for invoicing users, so the `sudo()` is no longer needed. Reference PR - https://github.com/odoo/odoo/pull/236896
This change improves how JavaScript tests are labelled so cross-module tests can be selected or excluded more precisely. It helps development teams run the right test subsets without accidentally skipping related tests or disabling broader suites.
Original PR description
Js tests are cross modules, meaning that the canonical tags given by the tests are incorrect eg: `/web.test_unit_desktop` does not allow to run `@mail/some_test` hoot test since /web.test_unit_desktop will filter only web hoot test removing the mail ones The canonical tag is also not usable as it is since disabling .test_unit_desktop will actually disable the complete suite. The correct way would be to tag this tests `.test_unit_desktop[@mail/some_test]`, this is the solution proposed in this pull request.
This change improves how Odoo retrieves records that rely on mandatory related data, allowing the database to use more efficient queries. Business users may see faster searches, reports, and grouped views in affected areas without any intended change in functionality.
Original PR description
use INNER JOIN instead of LEFT JOIN for required many2one join to improve query performance. taskid: 4572107 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 Turkish Nilvera e-Invoice refresh button now only updates invoice statuses instead of also downloading sales documents. This keeps manual status checks separate from document synchronization, which continues to run automatically on schedule.
Original PR description
The “Refresh e-Invoices status” button previously also triggered the crons that fetch eArchive and eInvoice sales documents, mixing status updates with document synchronization. This change scopes the button to status updates only. Fetching eArchive/eInvoice sales documents remains handled by their scheduled crons. task-5344128 Forward-Port-Of: odoo/odoo#236535
The editor now better prepares the table of contents information used by Knowledge pages. This helps the Knowledge table of contents panel show the right headings and initial state when content is first loaded.
Original PR description
Add `isNew` flag to the structure property in `TableOfContentManager` to compute initial headings and states for the knowledge table of contents panel. Task-4813333
This update enhances the user interface for selecting online accounts within Odoo Enterprise. The outdated 'online_account_radio' component has been removed, streamlining the process and improving usability. This change focuses on a better user experience for managing online accounts.
Original PR description
This commit refactor the online account selection widget to have a better ui. Removed the online_account_radio since it's not used anymore. task-5090281
This update enhances the HR Homeworking Calendar module by moving a key field to the Calendar module itself. This allows for better reuse of components and simplifies the overall design, leading to a more streamlined user experience for managing homeworking arrangements. It’s a small, internal improvement focused on code organization.
Original PR description
Moved the badge_selection_icon_mapping_field to the Calendar module, so that it can be reused in hr_homeworking.calendar module Added optional default icon prop Task ID: 5215931 Community PR: https://github.com/odoo/odoo/pull/235440
This update improves the visibility of Kanban groups in the Helpdesk module. The system now displays the group name within the no-content helper, making it easier to identify and manage tickets. This change was implemented as an improvement to the user experience.
Original PR description
Due to changes made in https://github.com/odoo/odoo/pull/236049, the CSS class for the Kanban group no-content helper has been updated. task-5266317
This update clarifies the setup for approval categories within the Odoo Enterprise system. Specifically, the tooltip for automatic sequence settings has been updated for better understanding, and a label change (Code to Prefix Code) has been made to improve consistency and reduce confusion.
Original PR description
- Updating the tooltip for the automatic sequence field in the approval category setting - Renaming label Code to Prefix Code Task: 5384511
This update simplifies role configuration by making the 'Point of Sales' field optional. Previously, this field was always visible, leading to cluttered views. Now, it can be hidden when not needed, resulting in a cleaner and more user-friendly role configuration experience.
Original PR description
**Before this commit:** - The 'Point of Sales' field was always visible in the Roles configuration under Planning. **After this commit:** - The 'Point of Sales' field becomes optional and can be hidden from the roles configuration menu. - This improves usability by allowing cleaner role configuration views, showing the POS field only when required. **task-5264737**