Saturday, September 12, 2026
6 changes · saas-19.4
Resolved issues and error corrections
The attendance Gantt test setup now limits its data to the company created for the test. This prevents unrelated company data from affecting results, making validation more stable without changing the user-facing product.
Original PR description
Some tests in `hr_attendance_gantt` could include employees from other companies, making their expected employee counts depend on unrelated demo data. This commit adds the test company to the common domain so the gantt data only includes employees created for the test case. [error-945955](https://runbot.odoo.com/odoo/error/945955) Forward-Port-Of: odoo/enterprise#128108
This update prevents invoice forms from trying to show Ecuador reimbursement details to users who do not have accounting access. It avoids access errors for non-accounting users while keeping restricted reimbursement information available only to authorized accounting staff.
Original PR description
The reimbursement lines are added to the invoice form without any group restriction, while their model can only be accessed by accounting users. As a result, opening an invoice form as a user without accounting rights can raise an AccessError when the form view tries to retrieve the reimbursement subview. This commit restricts the reimbursement page to the groups allowed to access reimbursement lines. [error-946579](https://runbot.odoo.com/odoo/error/946579) Forward-Port-Of: odoo/enterprise#129981
Vertical notebook tabs now line up correctly, making dialogs easier to read and use. Long tab titles wrap onto a new line instead of disrupting the layout, improving the experience in affected Kanban example dialogs.
Original PR description
When a user opened a page with a vertical notebook, the tabs were not aligned with each other. Vertical notebooks should now have properly aligned tabs. If a tab title is too long, it will wrap onto the next line instead of breaking the layout. task-[5933892](https://www.odoo.com/odoo/project/4105/tasks/5933892) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#287711 Forward-Port-Of: odoo/odoo#279098
Vertical notebook tabs are now visually separated when using dark mode. This makes pages easier to read and navigate, reducing confusion for users switching between tabs.
Original PR description
## Behavior Before the Commit When a user opens a page with a vertical notebook in dark mode, the different tabs aren't separate from one another. task-[5933892](https://www.odoo.com/odoo/project/4105/tasks/5933892) Forward-Port-Of: odoo/enterprise#131166 Forward-Port-Of: odoo/enterprise#126013
Image upload fields now apply the Android camera workaround only for affected Android Chromium browsers. This prevents unnecessary or confusing file picker options in other browsers and in the mobile app while keeping camera access available where it was missing.
Original PR description
Since Android 14, Chromium sends a file input accepting only images straight to the photo picker, which has no "Camera" entry. The image fields work around it by appending `dummy/allowAndroidCamera`…
Since Android 14, Chromium sends a file input accepting only images straight to the photo picker, which has no "Camera" entry. The image fields work around it by appending `dummy/allowAndroidCamera` to their accept attribute: a mimetype which is not an image is enough to get the generic chooser, and its camera, back. https://issues.chromium.org/issues/40937303 That invalid mimetype was appended for everyone, while only the browsers based on Chromium on Android need it: - the issue is an Android one, the desktop file dialogs are not concerned - the native app builds its own file chooser out of the accept attribute, and the invalid mimetype makes it offer the document picker on a field which only accepts images - Firefox and Safari are not based on Chromium and are not affected The workaround is now limited to the browsers needing it, and the expression moved from the template to a getter, since it is no longer a simple concatenation. Code made by Claude Supervised by RFR --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#287840 Forward-Port-Of: odoo/odoo#285643
The Timesheets Assistant sample data generator now uses regular tasks instead of task templates. This ensures generated sample activities are properly connected to tasks, making demo and onboarding data more accurate.
Original PR description
The Timesheets Assistant sample data generator searches project.task with `is_template != False`, so it collects template tasks instead of regular ones and the generated activity never links to a task. Task-6566451 Forward-Port-Of: odoo/enterprise#131248