Daily updates from Odoo
Thursday, January 29, 2026
9 changes · master
Resolved issues and error corrections
This update addresses inaccuracies in performance tracking for Odoo's email, SMS, and WhatsApp functionalities. The changes ensure that internal counters are correctly updated, leading to more reliable performance data and improved reporting. This enhances the overall stability and accuracy of Odoo's communication tools.
Original PR description
Some of them are not up to date.
This update fixes an error that prevented users without WhatsApp access from viewing WhatsApp conversations within Discuss. The issue stemmed from a configuration change that caused access problems when fetching messages. This ensures all users can access and participate in WhatsApp conversations.
Original PR description
Steps to reproduce: - Open any WhatsApp conversation in Discuss. - post a message. - Invite an internal user who does not have WhatsApp access (e.g., Marc Demo). - Log in as the invited user. - Open the invited WhatsApp conversation. => it shows `An error occured while fetching messages` Since [1], this happens because `sudo()` was accidentally removed while storing `whatsappStatus` on messages, leading to an access error. This commit fixes the issue. [1]: https://github.com/odoo/enterprise/pull/100237 Task-5794783 Forward-Port-Of: odoo/enterprise#104953
This update resolves an issue where the Gantt chart incorrectly displayed unavailability for employees who didn't have a defined holiday schedule. The fix standardizes the data format to ensure accurate representation of all employee time off, improving the chart's reliability and usability.
Original PR description
In this PR, _get_unavailable_intervals() returns Intervals objects while _gantt_unavailability assumes mutable lists. This mismatch causes a runtime error when appending new intervals. Normalize all unavailability data to lists of (start, stop) tuples to ensure consistent behavior and fix gantt rendering without schedules. Build-238381
This update enhances the performance testing of our holiday leave functionality. Following the addition of the Public Holiday Leave model, we've adjusted query counts in performance tests to ensure optimal system performance. This ensures a smoother user experience and efficient processing of leave requests.
Original PR description
In this commit, we updated query count in some perf tests after adding th public holiday leave model. task-4791808
This update resolves a problem where 360 feedback emails sent to external clients displayed incorrectly due to formatting errors in the email template. The fix addresses issues with HTML nesting and Bootstrap styling, ensuring consistent and professional email presentation for all recipients. This improves the user experience for feedback requests.
Original PR description
The mail template layout breaks in external clients due to HTML tag nesting and reliance on Bootstrap classes. To reproduce: 1. Install 'hr_appraisal_survey'. 2. In an Appraisal, click "Ask Feedback" using the 360 template. 3. View the sent mail in an external client (e.g., Mailhog). 4. Observe broken alignment and missing styles. task-5462702
This update resolves an issue where the VoipImStatus component's validation process would fail when receiving incorrect 'persona' values. By relaxing the validation rules, the system now handles falsy values gracefully, ensuring consistent functionality and preventing potential errors. This improves the stability of the VoIP feature.
Original PR description
The component VoipImStatus introduced in https://github.com/odoo/enterprise/pull/102936 declares an optional prop "persona" whose type should be Object (in case it is defined) but some components that use VoipImStatus sometimes pass it false or null. In those cases, the props validation fails if the debug mode is activated. Since the underlying component ImStatus of VoipImStatus can work with any falsy values assigned to persona, we can accept more types for persona in VoipImStatus too.
This update resolves a technical error that prevented users from successfully connecting the demo account for the HR Expense Stripe module. The previous implementation had a flaw in how system parameters were updated, causing a traceback during the account creation process. This fix ensures a smooth and reliable experience for users wanting to test the demo.
Original PR description
Forward port wasn't done right, and the way to get the system parameter changed. To reproduce: - Install hr_expense_stripe_demo - confirm agreeing to the terms - Save - click on "Connect (Demo)" Forward-Port-Of: odoo/enterprise#105790
This update corrects a bug in how websites are displayed on the Helpdesk page. Now, the website with the lowest sequence number is automatically designated as the default, ensuring consistent and predictable website selection. This resolves an issue where a website with a high sequence number could incorrectly appear as the default.
Original PR description
This PR changed the default website behaviour. Now, the website appearing at the top of the list in the '/websites' page is considered to be the default one. In other words, the default website is the one with the lowest `sequence` value. This commit fixes a test where a website is created with sequence equal to 5 and interferes with the above-described mechanism. Community PR: https://github.com/odoo/odoo/pull/225335 Upgrade PR: https://github.com/odoo/upgrade/pull/9434 task-5028180
The Documents activity menu now correctly displays folder names instead of "Unnamed" when navigating from the systray. This issue stemmed from an undefined value in the folder selection process, which was resolved by providing a default folder value to ensure accurate breadcrumb navigation.
Original PR description
When navigating to Documents through the activity menu (systray), the breadcrumb displays "Unnamed" instead of showing the proper folder name. Steps to reproduce: 1. Click the activity menu icon (clock) in the systray 2. Click on "Documents" in the activity dropdown 3. Observe the breadcrumb shows "Unnamed" The issue occurs because when navigating from the systray, the folder section's activeValueId is undefined. This causes getSelectedFolderAndParents() to call folderSection.values.get(undefined), which returns undefined instead of the default folder. Without a valid folder object, the breadcrumb computation has no context and falls back to displaying "Unnamed". The fix ensures that when activeValueId is undefined, we explicitly pass false to values.get(), which correctly retrieves the root/default folder. opw-5473442 Forward-Port-Of: odoo/enterprise#104297