Friday, October 17, 2025
19 changes · master
Enhancements to existing features
This update adds clearer internal documentation for the HTML builder's action system. It helps developers better understand and maintain the website editing tools, with no direct change for end users.
Original PR description
This commit adds JSDoc for `BuilderAction` and related concepts. Forward-Port-Of: odoo/odoo#231567 Forward-Port-Of: odoo/odoo#229281
The bank account label now uses the bank’s country to decide whether to show “Clearing Number” or “ABA/routing.” This helps avoid confusion for users who hold foreign bank accounts, while still falling back to the account holder’s country when bank details are incomplete.
Original PR description
Whether to display "Clearing Number" or "ABA/routing" should depend on the country the bank is in, not the country the account holder is in. It's possible to own foreign bank accounts. We keep the country of the partner as a fallback in case the bank is not set or has an incomplete address. task-5052996
The wording for stage rotting thresholds is updated to make the timing easier to understand. Users will now see the number of days presented directly as a unit in relevant CRM, recruitment, and project stage forms.
Original PR description
**Specifications:** Change the label of `rotting_threshold_days` field and show days as a unit of measure in the form view. **After this PR:** 'Days to rot' -> 'Rotting in __ days' Task-5149031
The barcode dialog text is now centered so it looks cleaner and no longer appears stuck to the edge. This is a small visual improvement that makes the interface feel more polished and easier to read.
Original PR description
This PR centers the text in the barcode dialog to improve the design and avoid sticking to the border. task-5113549 PR-ent: https://github.com/odoo/enterprise/pull/96039 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update cleans up how Odoo manages session storage behind the scenes, removing unnecessary code and simplifying the structure. It should make the codebase easier to maintain without changing day-to-day user behavior.
Original PR description
- MemorySessionStore does not need to manually delegates to the class it inherits from, it can just do nothing. - The generic SessionStore doesn't make much sense, is not typed correctly, and is not leveraged in any way. Just make it standard dynamic instead. Keep the `session_cls` param even though it seems completely unused, and technically `session_cls` doesn't even need to be a type however typing a callback with keyword argument support requires a `Protocol` and I can't be arsed, so type it is.
Task-related buttons now use the same checkmark icon in partner, milestone, and project sharing views. This improves visual consistency and makes task actions easier for users to recognize across the Project app.
Original PR description
Before this commit: --- The 'Tasks' stat button in the Partner form view used a different icon, which was inconsistent with other related views. Similarly, the icons used in the Milestone form view, the Parent Task stat button in the Project Sharing form view, and the Task Dependencies stat button in the same view were not consistent with the standard task icon. After this commit: --- The 'Tasks' stat button now uses the fa-check icon across all related views for consistency and visual clarity. The icon has been unified in the Partner form view, Milestone form view, Parent Task stat button, and Task Dependencies stat button in the Project Sharing form view. task-5138828
Live Chat channel settings now show how many agents are currently connected. This gives teams a quick view of staffing availability directly from the channel form, helping managers monitor coverage more easily.
Original PR description
This commit adds a "Agents Connected" counter to the Live Chat channel form view. task-5127205
Belgian payroll now includes paternity leave as a standard leave type. This helps HR teams record and manage paternity leave more consistently in payroll and time-off workflows.
Original PR description
In this commit, we added the paternity leave type to the data. Related task: 5139480. 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
When closing a point-of-sale kiosk session from its configuration page, Odoo now closes the session directly instead of launching the sales interface. This prevents staff from being sent into the kiosk UI by mistake and makes the behavior consistent with the dashboard Close Session button.
Original PR description
Currently when you're on the config of a kiosk, the link `Click here to close the session` opens the session. This was never intended when we have a kiosk. Now, if we have a kiosk, when selecting this link it will close the session the same way it does when selecting the button `Close Session` on the dashboard. opw-5024837 Forward-Port-Of: odoo/odoo#227150
Salary offers now open the employee record when the selected contract template is actually tied to an employee, instead of showing the contract template view. This makes navigation clearer for HR users and helps them reach the relevant employee information faster.
Original PR description
If the selected contract template on the salary offer is an employee record, then we souldn't open the contract template view, but instead open the employee view with the correct record selected. task-5082709
The helpdesk stage form now uses clearer wording for the time before a ticket is considered rotting. This makes the setting easier for users to understand by showing the value directly as a number of days.
Original PR description
**Specifications:** Change the label of `rotting_threshold_days` field and show days as a unit of measure in the form view. **After this PR:** 'Days to rot' -> 'Rotting in __ days' Task-5149031
ESG screens and reports now use shorter field labels by removing repeated unit text where users already know the context. Several views were also reviewed and tooltips were added to make ESG data entry and reporting easier to understand.
Original PR description
This commit mostly removes the units displayed on field labels to have condensed labels since the unit is known by the ESG users. It also reviews some views and adds some tooltips. task-5138748
The barcode app interface has been refined to look cleaner and more consistent on mobile devices. The changes improve readability and prevent visual glitches such as content showing through, oversized shadows, cramped buttons, and off-center text.
Original PR description
This PR fixes a few design issues: - Adds a background to prevent underlying content from showing through - Deletes prominent box-shadows - Prevents the chatter buttons from shrinking - Centers the…
This PR fixes a few design issues: - Adds a background to prevent underlying content from showing through - Deletes prominent box-shadows - Prevents the chatter buttons from shrinking - Centers the text on mobile task-5113549 PR-commu: https://github.com/odoo/odoo/pull/229542 | Before | After | |--------|--------| | <img width="407" height="577" alt="footer-bg-avant" src="https://github.com/user-attachments/assets/74c25c20-a119-4448-bbb5-0c5ee13eff57" /> | <img width="402" height="559" alt="footer-bg-after" src="https://github.com/user-attachments/assets/17533695-314c-4be7-b9b0-c290ff9fe144" /> | | <img width="409" height="581" alt="shadow-before" src="https://github.com/user-attachments/assets/b29b802a-68c3-4fc2-a327-8e62b2d9e2cd" /> | <img width="411" height="561" alt="shadow-after" src="https://github.com/user-attachments/assets/47add086-25b5-4612-969b-5bd60390e4f8" /> | | <img width="401" height="579" alt="log-note-buttons-before" src="https://github.com/user-attachments/assets/839ac7c8-18af-4270-a8c0-960c63cf68d5" /> | <img width="405" height="560" alt="log-note-buttons-after" src="https://github.com/user-attachments/assets/06577c82-2093-4ea8-b715-838ec9d0b623" /> | | <img width="402" height="574" alt="text-before" src="https://github.com/user-attachments/assets/70cabab3-b925-4a2a-8e2c-3936e4957e5a" /> | <img width="407" height="559" alt="text-after" src="https://github.com/user-attachments/assets/f172763c-5f93-47f8-8a68-9f0e991f38cd" /> |
Modules can now explicitly state when they use paid in-app services, instead of being labeled paid just because they depend on the IAP infrastructure. This helps avoid incorrectly marking free localization and integration modules as containing paid services.
Original PR description
Currently, we have a `has_iap` field on the `IrModuleModule` model which is used to display whether the module contains In-App Purchases, i.e. a paid service provided through IAP. However, this field is computed based on whether the module has an (indirect) dependency to the `iap` module. This is a bit too simplistic as relying on the `iap` module does not mean that the service is paid and consumes IAP credits. For instance, we have many EDIs modules now that rely on IAP, but that are totally free (e.g.: Malaysia POS, Spain POS, Switzerland Payroll, ...) To tackle this, we introduce a new field in the manifest: `iap_paid_service`. If set to True, we explicitely mark the module as a module that uses IAP credits, and therefore contains In-App Purchases. task-5048119
The Tasks button on Helpdesk tickets now uses the same checkmark icon as other task-related views. This makes the interface more consistent and easier for users to recognize when planning interventions.
Original PR description
Before this commit: --- The 'Tasks' stat button displayed in the Helpdesk Ticket form view (visible when planning an intervention) used a different icon than other task-related views, leading to inconsistency in the user interface. After this commit: --- The 'Tasks' stat button now uses the fa-check icon for consistency with the other views where similar buttons are used, providing a more coherent and clear visual appearance. task-5138828
Default working schedules for companies in India now use a 10:00 to 19:00 workday instead of 08:00 to 17:00. This better matches local business norms and reduces manual setup for Indian payroll configurations.
Original PR description
Currently, employee working hours in Indian companies are not aligned with local standards. The system default time range is, 08:00-17:00. This commit updates the configuration so that for companies located in India, the default working schedule reflects Indian working hours — 10:00 to 19:00. Task ID: 5158751
An information icon with guidance has been added next to the payslip period field. This helps payroll users enter the full and correct period, reducing confusion and potential data entry mistakes.
Original PR description
Added help text next next to payslip period so that the user enters the correct complete period Task-4996387
Work entries now show a file-text icon when a description is present, making details easier to spot in planning views. Automatically generated work entries are no longer pre-filled with descriptions, reducing unnecessary text and keeping records cleaner.
Original PR description
This PR aims to: - Add a file-text icon on pills with a description (with padding adjustments for file/lock icons) - Prevent generated work entries from being pre-filled with a description task-5026021
The point of sale integration for UrbanPiper now prepares order data directly from the order record instead of depending on a separate store service. This keeps the setup cleaner and makes the logic easier to reuse and maintain, with no expected change for day-to-day users.
Original PR description
**In this commit:** Move the `getOrderData` method to the `pos.order` model. This change allows the data preparation logic to be accessed directly via the model, avoiding reliance on the `pos_store` service. Task: 4827509 Related: https://github.com/odoo/odoo/pull/212748