Thursday, January 8, 2026
85 changes · master
Resolved issues and error corrections
This update resolves an issue where touch screen scrolling was interfering with the preparation display on iOS devices (small and medium). The change prevents unwanted scrolling, resulting in a smoother and more reliable user experience for iOS customers.
Original PR description
This commit introduces a small fix for IOS (small and medium) devices to prevent touch screen gesture in the pos preparation display. Task : 5113851
This update enhances the way payroll categories are defined and utilized within the system. The change allows for multiple category IDs to be associated with a payslip, providing greater flexibility and accuracy in calculating payroll amounts. This improves the system's ability to handle complex payroll scenarios.
Original PR description
task-5431460
This update corrects an issue where payroll views were incorrectly referencing the wrong module. The changes ensure that the correct Odoo module is used for these views, improving the accuracy and reliability of payroll calculations, particularly for our Belgian clients. This resolves a previously reported task.
Original PR description
fix related to Task-5136867
This update ensures that new Odoo users automatically have access to VoIP groups (admin and officer) during upgrades. Previously, these groups were only added to new databases. This change enforces a consistent approach, simplifying administration and preventing potential access issues.
Original PR description
Commit [1] introduced new groups for VoIP: admin and officer. Before that, the related rights came with the base admin group of Odoo. With that in mind, it made the new groups implied by the base…
Commit [1] introduced new groups for VoIP: admin and officer. Before that, the related rights came with the base admin group of Odoo. With that in mind, it made the new groups implied by the base admin group, but put them in a noupdate area of the security XML file, meaning only new databases would get the new groups assigned to the admin group. There were two possibles solutions: - An upgrade script to add the new groups to admin users (and/or the fact it is implied by the admin group). - Move the group definitions to a non-noupdate area, which re-forces the fact the VoIP groups are implied by the admin group at each upgrade, to any Odoo version. There is no guideline about this in Odoo and it is left to a per-app per-group choice. After consultation, the second solution was chosen: we prefer to enforce the fact that each new VoIP codebase, each version, relies on the fact admins are supposed to have those VoIP rights; forcing any customization of that fact to re-check it is working at each Odoo upgrade (and/or make a proper customization with custom apps instead of user manipulation). [1]: https://github.com/odoo/enterprise/commit/88b8de95e1a28a8037a386fc8fb6a044a98217e7 task-5440305 Forward-Port-Of: odoo/enterprise#103348
This update corrects a bug that prevented certain website-related modules, like 'ai_website', from receiving translations. Previously, only modules starting with 'website' were added to the translation list. Now, all website modules are correctly included, ensuring consistent translations across the platform.
Original PR description
Current behavior before PR: Only the modules with names starting with 'website' were added to the website translated modules. Causing modules such as 'ai_website' to miss translations. Desired behavior after PR is merged: All the modules related to 'website' are selected and added. task-5375210 parent support task-5210084 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242229
This update fixes an issue where attachments added to chatter activity notes wouldn't show their overview (the blue box). The team decided to maintain static rendering for these overviews to ensure consistent functionality. This change ensures that users can easily see the attachments associated with their chatter activity.
Original PR description
--- ## Short functional explanation of the error When in the chatter, we can create an activity. If we add an attachment to the notes of this activity and save it, the overview of the attachment won't show in the chatter. ## Reproduction Steps 1. Open an app that gives you access to the chatter, for instance, an invoice in Accounting. 2. Click on Activity. Click on Log a Note... and on the button Upload a file. Upload an attachment and save. ### Expected behavior The overview of the file (blue box with the name of the attachment) should appear. ### Unexpected behavior The overview doesn't appear ## Origin of the issue Since 19.0, we want to replace static rendering with embedded components everywhere for rendering attachments, but this creates issues for the rendering of the overview in the chatter. Therefore, after internal discussion, we agreed to keep rendering overviews statically. opw-5356016 Forward-Port-Of: odoo/odoo#240114
This update corrects a visual issue in the Enterprise module's Gantt chart where the hours view would overlap when work entries were activated in 'sparse mode'. This ensures a cleaner and more functional user experience for managing work entries and project timelines. It's a minor improvement focused on usability.
Original PR description
When the work entry is activated in sparse mode prevent the hours view from overlapping. task-5410789 Forward-Port-Of: odoo/enterprise#101939
This update prevents Odoo from creating duplicate bank accounts during the bank reconciliation process. Specifically, it avoids creating a new account if the same account number is already used by another active partner. This reduces confusion and simplifies bank statement management.
Original PR description
When using the bank reconciliation widget, avoid creating a new bank account on the selected partner if the same account number already exists on another active partner. This change is intentionally limited to the reconciliation flow only, to reduce noise caused by duplicate bank accounts, and does not affect other partner or bank account creation use cases. task- 5236503 Forward-Port-Of: odoo/odoo#242459 Forward-Port-Of: odoo/odoo#234531
This update corrects an issue with how invoices are formatted for electronic delivery to ECPay in Taiwan. The change removes the company name from the EDI address and formats the address as a single, comma-separated line, ensuring compliance with ECPay requirements. This ensures accurate invoice transmission and avoids potential delivery problems.
Original PR description
In this commit: --- Update EDI address formatting to remove the company name and send a comma-separated single-line address. task-5410619 Forward-Port-Of: odoo/odoo#242287 Forward-Port-Of: odoo/odoo#241108
This update fixes a limitation in the HTML editor where code blocks with syntax highlighting couldn't be easily converted back to regular paragraphs. A new button has been added to allow users to seamlessly switch between highlighted code and standard text, improving the overall note editing experience. This ensures users can format their code effectively without workarounds.
Original PR description
When syntax highlighting is activated on code blocks, neither the powerbox nor the toolbar is available inside the block, making it impossible to convert it back into a paragraph. This commit adds a button to convert such code blocks back into paragraphs. Steps to reproduce: - Go to a "To Do" note - Insert a code block with `/code` => There was no way to convert it back to a paragraph task-5241467 Forward-Port-Of: odoo/odoo#240692
This change corrects a technical issue in the Planning/Attendance Analysis report where a monetary widget was incorrectly applied to numeric fields. Removing this widget resolves a traceback error that occurred when selecting certain cost measures. This ensures the report functions correctly and provides accurate attendance cost data.
Original PR description
### Steps to reproduce: - Navigate to Planning > Reporting > Planning / Attendance Analysis - From measure select Attendance Cost or Cost Difference or Planned Cost - A traceback will pop up ### Cause: We are using widget monetary for the three fields in the view while their field type is float and there is no currency field defined in the model ### Fix: Remove the monetary widget from the view In master we will do something like this commit https://github.com/odoo/enterprise/pull/99059/commits/17f05bef0dad3e9645b6e0ed8df14d3308440812 opw-5438221 Forward-Port-Of: odoo/enterprise#103067
This update fixes a bug in the holiday pay calculation for Belgian employees. Previously, the system incorrectly skipped processing commission loss calculations when specific contract end conditions or public holidays were met. Now, the system correctly handles these scenarios, ensuring accurate commission loss deductions.
Original PR description
When we enter in the conditions regarding the the end of a contract and the public holidays, it return and does not enter in the part of the code that handle the loss of commission on public holidays. So instead of returning the res, we just continue to the next condition. Forward-Port-Of: odoo/enterprise#103352 Forward-Port-Of: odoo/enterprise#102963
This update corrects a visual inconsistency in Odoo's chatter messages. Previously, paragraphs added in the composer didn't maintain the same bottom margin when posted to the chat. This change ensures that messages displayed in the chatter match the formatting in the composer and sent emails, improving overall communication clarity.
Original PR description
Problem: When adding a paragraph in the composer and sending the message, the paragraph posted in the chatter has a `margin-bottom` of 0. Cause: Paragraphs in the chatter rendering override the default bottom margin, resulting in inconsistent spacing compared to the composer and the sent email. Solution: Update selector to only target the last `p`. Steps to reproduce: - Open the chatter composer. - Add a paragraph using "/Paragraph". - Add some text. - Send the message. - Observe that the message posted in the chatter has no bottom margin, unlike in the composer. opw-5378129 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240082
This update resolves an issue preventing users from selecting different test types when adding quality checks within the Shop Floor workflow. Previously, a field was restricted, limiting flexibility in quality control processes. This change ensures users can accurately define test types, improving the efficiency and accuracy of quality checks.
Original PR description
This commit fixes the problem where the `test_type_id` of the `quality_check` is readonly when adding a step in Shop Floor. Task-5404503 Forward-Port-Of: odoo/enterprise#103351 Forward-Port-Of: odoo/enterprise#102810
This update corrects a bug where reimbursement amounts for public/train transport benefits didn't reset to zero when the option was unchecked in the salary configurator. The fix ensures that the amount field automatically resets to zero when the benefit is removed, improving data accuracy and simplifying salary management.
Original PR description
Issue: public and train transport reimbursed amounts not reseting after unchecking them Steps to reproduce: - open salary configurator - check public(train) transportation - change the value in the input field - uncheck public(train) transportation - the value for the reimbursed amount doesn't reset to 0 Fix: - made the value reset for public and train transport to 0 in the ui of the configurator - made the employee amount reset to 0 in the employee form if the benefit is unchecked task-id: 5386766 Forward-Port-Of: odoo/enterprise#103374 Forward-Port-Of: odoo/enterprise#101592
This update resolves an issue where arrow keys didn't function properly when adjusting range values (like intensity) in certain Odoo features. The fix replaces a flawed conversion method with one that correctly handles fractional numbers, ensuring accurate control over these settings. This improves usability for users adjusting scroll effects and other range-based parameters.
Original PR description
**Problem** Arrow-keys don't work properly on `BuilderRange` if the `step` value is fractional. **How to reproduce** The problem is present on every `BuilderRange` having fractional `step`. For example: snippet `s_parallax` -> set "Scroll Effect" to "Parallax to Top" -> "Intensity" range. **Why the problem happens** The method `BuilderRange.onKeydown` retrieves the range value as a string, converts it to a number using `parseInt`, and then adds or subtracts the step value. Of course, `parseInt` is inappropriate when the value is expected to be fractional. **Fix** `parseInt` has been replaced by `parseFloat`. task-5405036 Forward-Port-Of: odoo/odoo#241141 Forward-Port-Of: odoo/odoo#239428
This update ensures that IoT Box records are correctly updated during upgrades from older Odoo versions. Specifically, the IoT Box now needs to provide its MAC address alongside its serial number, allowing the system to transition from using the MAC address to the serial number as the primary identifier in the database. This resolves an issue impacting data consistency.
Original PR description
When upgrading from <v19.0 to v19.0+, the IoT Box needs to provide its mac address along with its serial number in order for the IoT Box record in the db updates the identifier from mac to serial no. see odoo/enterprise#103331 Forward-Port-Of: odoo/odoo#242356 Forward-Port-Of: odoo/odoo#242212
This update fixes an issue where the IoT Box identifier wasn't correctly updated after a database upgrade. Previously, the identifier was based on the device's MAC address, but now it uses the serial number, ensuring accurate tracking of IoT Boxes. This improves data consistency and reliability.
Original PR description
After upgrading a db, the IoT Box updates. Before v19.0, the IoT identifier was its mac address, after it's the serial number. We now search boxes idenfied by both mac address or serial number and update accordingly. see odoo/odoo#242212 Forward-Port-Of: odoo/enterprise#103398 Forward-Port-Of: odoo/enterprise#103331
This update ensures that the 'Create on Order' field is now visible when a product is designated for rental within Odoo. Previously, this field was hidden for rental products, which created a usability issue. This change simplifies the process for users managing rental products.
Original PR description
Currently, the "Create on order" field is not visible when a product is just to rent. This commit ensures that it is visible in such a case. Enterprise PR: https://github.com/odoo/enterprise/pull/103255 Upgrade PR: https://github.com/odoo/upgrade/pull/9214 task-4886404
This update optimizes how grouped lists and kanban views retrieve data, reducing unnecessary data transfer. Previously, the system sent data even when a user simply navigated between views, impacting performance and potentially causing issues with the offline feature. Now, opening information is only sent when a user actively interacts with a group, improving efficiency and reliability.
Original PR description
Grouped list and kanban views perform a web_read_group call to fetch their data. This call returns the groups, and if some groups are opened, the records (or groups if grouped by several fields)…
Grouped list and kanban views perform a web_read_group call to fetch their data. This call returns the groups, and if some groups are opened, the records (or groups if grouped by several fields) inside those groups. For subsequent loads (e.g. after opening a record in form view and coming back), an `opening_info` param is provided to web_read_group, for the python to know which groups are opened, and what is the limit/offset inside opened groups, to return the correct data to display inside opened groups. This didn't map very well with the cache system, which simply uses the the stringified version of rpc params as cache key. As a consequence, from a grouped kanban view, clicking on a record to open it in form view and coming back wouldn't benefit from the cache, because the web_read_group params were different. Whether this isn't really an issue with the cache, because it's only a matter of speeding up the navigation, it's more problematic for the offline feature, as the view would simply not be accessible again, even though we just left it. This commit thus fixes the issue by only sending opening_info when it is necessary, that is, when the user opened/closed a group or used the pager inside a group. If he didn't do any of that, there's no point providing opening_info, as the server already knows which groups are opened and which aren't. Task~5473450 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 optimizes the account accounting module by preventing unnecessary transmission of opening information. This change improves system performance and reduces data transfer, leading to faster processing times. It aligns with efforts to streamline Odoo's efficiency.
Original PR description
This commit is the enterprise counterpart of odoo/odoo#242493 Task~5473450
This update fixes a bug where the 'Space' key wasn't functioning correctly on the 'Edit' and 'Trash' buttons within Odoo's Kanban quick create records. Now, users can utilize the 'Space' key (and 'Shift+Space') to perform these actions, improving usability and efficiency.
Original PR description
In kanban's quick create record, the 'Space' key is not working on 'Edit' and 'Trash' buttons as earlier versions. After this commit 'Space' key will work as expected. Task-5319051 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239478
This update resolves an issue where the 'View Reactions' button in the customer portal was causing errors when clicked. Now, users can reliably access and view reactions associated with messages, improving the overall customer experience.
Original PR description
Before this PR: - Clicking the 'View Reactions' button from the message right-click menu was throwing an error. After this PR: - Clicking the 'View Reactions' button from the message right-click menu now opens the reactions list correctly without errors. task-5449199 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242025
This update fixes a bug that caused confusing error messages when using QWeb with `etree` nodes. Now, error messages include surrounding code snippets, providing immediate context and making it much easier for developers to quickly identify and resolve QWeb issues.
Original PR description
This PR fixes the error logging when QWeb is used with an `etree` node instead of a standard xmlid or id, to display the path of the directives (xml node) crossed. I have also improved the logging output when running with `--dev=qweb`: the error message now includes the generated code snippet surrounding the line that caused the error. This should make debugging much more intuitive by providing immediate context for the failure. Forward-Port-Of: odoo/odoo#242251
This update resolves an issue where UI tours were failing to display the product column on invoices and bills. The change makes the column visible by default within the tours, ensuring they function as intended. This improves the user experience for training and onboarding.
Original PR description
Commit 9c8e012 changed the visibility of the product column on invoices and bills. This caused several tours to fail as they expected the column to be visible by default. This commit fixes the failures by explicitly toggling the column visibility within the affected tours when required. runbot-234710 runbot-234871 runbot-234872 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242247