Saturday, August 29, 2026
9 changes · master
Enhancements to existing features
This change speeds up internal database column lookups by replacing a slower generic system view with a leaner query that fetches only the needed details. It can reduce time spent on these checks during operations such as upgrades, improving overall performance without changing user-facing features.
Original PR description
Using the view `information_schema.columns` is slow compared to a simplified query using PG catalog tables. Here we propose to cherry pick the parts of the view that we actually use. Below we show…
Using the view `information_schema.columns` is slow compared to a simplified query using PG catalog tables. Here we propose to cherry pick the parts of the view that we actually use.
Below we show the timings of both queries as reported by the system on an upgrade 18->master with a runbot DB (many modules installed). All values are in milliseconds.
```
Original:
min: 0.931
max: 16.786
mean: 1.8790601284296555
sum: 25750.64
len: 13704
New:
min: 0.224
max: 11.832
mean: 0.8649024372446001
sum: 11852.623
len: 13704
```
Total time spent in queries was halved as seen in the `sum` statistic above.
Technically, the new queries are base on the original information schema view definition as returned by `\d+ information_schema.columns`. With all unused info removed.
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
Forward-Port-Of: odoo/odoo#285419
Forward-Port-Of: odoo/odoo#216309Odoo now uses a dedicated backend icon font and standard icon codes from Google, reducing unnecessary file changes when icons are updated. This makes maintenance simpler and slightly reduces font sizes loaded by browsers, while preserving backend rendering for reports and emails.
Original PR description
[IMP] web, html_editor, mail: add backend-only Material Symbols font --- __Before commit__ Every time a new icon was added, a large part of `material_symbols_pua_codepoints.py` was overwritten. This…
[IMP] web, html_editor, mail: add backend-only Material Symbols font --- __Before commit__ Every time a new icon was added, a large part of `material_symbols_pua_codepoints.py` was overwritten. This happened because `generate_icons.py` assigned new PUA codepoints to every icon each time it ran. Google already assigns predefined codepoints to these icons, which are included in `material_symbols_outlined_subset.woff2` but were previously unused. __After commit__ The font `material_symbols_backend.woff` is introduced for backend-only usage, such as report generation and backend mail icon rendering. It replaces the per-style WOFF1 files and the PUA-only font. The standard codepoints from Google are now used for the icons. We still need to assign custom codepoints to filled icon variants because they are separate icons in the optimized version. We do this by adding an offset of 0x100000 (using a bitwise AND of 0xFFFF for edge cases to remain within the standard Plane-16 Private Use Area). __Benefits__ - Adding a new icon produces a significantly smaller diff. - A single WOFF1 replaces the two per-style ones, and is the only format both backend consumers can read: wkhtmltopdf cannot parse WOFF2, and Pillow needs the codepoints in the cmap. - Existing codepoints are removed from WOFF2 files, making fonts fetched by browsers a few kB lighter.
The Automatic Check-Out settings in Attendance are easier to understand and configure. Time-based options now look and appear closer to their related choices, reducing confusion when setting employee check-out rules.
Original PR description
The Specific Time option was introduced for Automatic Check-Out, but its field visually resembles a duration field rather than a specific time. This updates the Specific Time field to match the UI used for similar fields in Time Off, positions the Tolerance and Specific Time fields next to their corresponding radio options, and displays the fields of unselected options in light grey. Task-6476495 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now stores attachment file names directly with the uploaded file instead of in separate fields. This reduces duplicate data behind the scenes while keeping document uploads and downloads working as expected for users.
Original PR description
```py bin = fields.Binary() bin_filename = fields.Char() # removed ``` File name is now defined in side the `bin` field. Remove most of these fields as the filename is part of the binary field now. https://github.com/odoo/enterprise/pull/129066 https://github.com/odoo/upgrade/pull/11124 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds missing automated checks for timesheet reporting, billing, attendance comparisons, printable reports, and employee deletion safeguards. It helps ensure existing timesheet features continue to work correctly and reduces the risk of regressions in payroll, billing, and project reporting workflows.
Original PR description
* = hr_timesheet_attendance, sale_timesheet Add tests for timesheet features introduced by previous tasks and left uncovered: - measures of the timesheets analysis report: billable and non-billable time, revenues and margin (task-2783955), and the revenues of each type of service (task-3368808) - timesheets of a project billed manually, without any sales order item (task-3565762) - timesheets, attendance and difference costs of the timesheets/attendance analysis report (task-2782768) - 'Timesheets' printable report of a selection of timesheets, of a task, of a project, of a sales order and of an invoice (task-2826265) - employee delete wizard, which refuses to delete an employee having timesheets and offers to archive them instead (task-2938632)
The view switcher now uses a visible light grey hover effect instead of a barely noticeable white overlay. This makes it easier for users to see which view option they are pointing at, improving everyday navigation clarity.
Original PR description
This PR updates the `:hover` state for the view switcher component, which was previously using white with an opacity, which was not visible. Instead, reuse the same approach as dark mode and use a lighter shade of grey. task-6512176
A new warning is shown in the Belgian payroll holiday attest form to remind users that changes are only saved when the main employee form is saved. This helps prevent users from accidentally losing holiday attest information entered in the sub-form.
Original PR description
Since the holiday attest dialog is a sub-form, it will only save if the main employee form is saved. To alert users, we created a new warning that appears next to the constraints in the holiday attest form. Task Id: 6482500
Sales Order payment links no longer track a maximum payment amount, aligning subscriptions with the updated payment behavior. This removes an unnecessary warning path and keeps related tests in sync, with minimal impact for users.
Original PR description
Removed the `amount_max` field from the payment link feature as it is no longer needed after removing payment amount restrictions on Sales Order payment links. The field was previously only used to display an alert when the payment amount exceeded the allowed maximum. Updated the tests accordingly. Task-6238148 For Community PR see : https://github.com/odoo/odoo/pull/268214 For Upgrade PR see : https://github.com/odoo/upgrade/pull/10818
This update adds missing automated checks for several timesheet workflows, including grid behavior, validation views, helpdesk ticket reports, and planning profitability measures. It helps ensure existing timesheet features remain reliable while also removing unused legacy code that no longer supports active workflows.
Original PR description
* = helpdesk_timesheet, project_timesheet_forecast_sale Add tests for timesheet features introduced by previous tasks and left uncovered: - filters of the timesheets search view: My Team, My Department, My Projects, My Tasks, Draft and Validated - rows of the grid view sorted alphabetically (task-3610476) - empty lines added in the grid view for the entries of the previous period (task-3077292) - redirection to the form view when a grid row holds too little data to create a timesheet (task-3602605) - 'To Validate' grid view opening on the previous period (task-3893907) - measures of the planning & timesheets analysis report: planned and effective costs, revenues, margins and billable time (task-2849291) - 'Timesheets' printable report of a helpdesk ticket (task-2826265)