Daily updates from Odoo
Wednesday, August 19, 2026
24 changes · master
Enhancements to existing features
This update refreshes icons across manufacturing lifecycle, work order, quality, and barcode screens with a newer, cleaner visual style. The change improves visual clarity and consistency without altering business processes or functionality.
Original PR description
Icons were updated with the newer, more clean ones. task-6443360
The Belgian payroll configuration now includes the required reporting details for recoverable 0% overtime. This helps ensure overtime is classified correctly for social security, withholding tax, and official Belgian payroll declarations.
Original PR description
- Extended the OVERTIME26 work entry type with essential Belgian reporting metadata: category_ids (Remuneration, ONSS, Withholding tax bases), dmfa_code=1, and l10n_be_egov3_code=1102001. Task: 6358853
Obsolete internal duplication logic was removed from Sales Subscription and Sales Renting to match the updated core product behavior. This reduces maintenance overhead and helps keep sales-related product handling consistent across Odoo.
Original PR description
Remove obsolete _duplicate_pricelist_rules_on_copy overrides from enterprise modules (sale_subscription, sale_renting) following its removal from the product module. This avoids dead code and ensures consistency with the updated core duplication behavior. task-5470688
The accounting reconciliation interface was updated to work with the newer OWL framework used by Odoo. This helps keep bank reconciliation and related accountant workflows maintainable and compatible without introducing major functional changes for users.
Original PR description
This pr will do some changes to be compliant with owl3. What has been done: - Change of some props to the new system - Remove use of useSubEnv - Remove use of onWillRender Also apply the EsLint on all files. task-6353237
This update makes a small internal change in Web Studio’s report template handling to support future improvements. It does not introduce visible changes for users today, but helps keep reporting customization capabilities ready for upcoming enhancements.
Original PR description
Pass compile_context in parameters of `_compile_expr` to prepare future improvements in QWEB according to expressions. Task-6466187
Spreadsheet-related automated tests were updated to align with the move to Material Symbols icons in the spreadsheet library. This helps keep quality checks reliable after the visual icon system change, with no expected direct impact on daily users.
Original PR description
this commit adapts the tests to the switch to Material Symbols icons in the external library o-spreadsheet. Task: 6276321
The signing activity is renamed from "Request Signature" to "Signature Request" so users see wording that matches the rest of the app. The activity icon is also muted to better align visually with other activity icons, creating a more consistent experience.
Original PR description
Renaming activity from "Request Signature" to "Signature Request" to better align with the wording used in other places. Change the template icon to muted to better match the other activities icons. Task-6317051
The Point of Sale navigation menu now displays icons and labels with consistent alignment and spacing. This makes the burger menu and LNA button easier to read and improves the overall visual clarity for users.
Original PR description
In this commit - ------------------------------- icon and label in the burger menu and LNA button are now properly aligned with consistent spacing for better visibility. Task-6391440 Related PR-https://github.com/odoo/odoo/pull/280203
The Ecuador ATS reporting tests were updated to match a platform-level change in how certain grouped results are ordered. This keeps automated checks aligned with the intended behavior and helps prevent false test failures without changing business functionality.
Original PR description
Following changes to the ORM methods _read_group_orderby and _order_field_to_sql, query results are now ordered according to the sequential definition of selection fields (if ordered by a selection field ofc). Adapt the tests to take this new ordering into account. Related: odoo/odoo#280940 Task: 6425647
The Belgian payroll employee type previously labeled "PFI/Activa" has been renamed to "PFI/IBO". This makes the label more accurate for regional training contracts in Wallonia and Flanders and avoids confusion with the unrelated Activa scheme.
Original PR description
The employee type "PFI/Activa" is incorrect because Activa is not related to Dimona Category IVT. Renamed "PFI/Activa" to "PFI/IBO" to properly reflect the Belgian regional training contracts (PFI in Wallonia, IBO in Flanders). Task: 6478957
Resolved issues and error corrections
Website-generated pages and blog posts now reuse the same image file instead of creating duplicate media entries. Cropped or customized image versions are also kept out of the general media picker, making it easier for users to find the right images.
Original PR description
Images referenced by several pages (or several blog posts) could get copied into extra ir.attachment records instead of being reused, because `_get_wg_attachment` iterated over the raw filenames list without deduplicating it first, and marked a filename "used" as soon as it was assigned once. The same visually-identical image would then end up cluttering the website media picker under several ids. Also stop customized/cropped image variants from showing up as regular library images in the media picker, since they're only meant to back a specific placement.
Payroll users can now manually adjust computed payslip lines without triggering an error when recalculating. This keeps draft payslip editing reliable and prevents disruption during payroll preparation.
Original PR description
Steps to reproduce:
- Open a draft payslip.
- Go to the Salary Computation tab.
- Manually change the amount of a computed line and compute.
- A traceback is raised (UnboundLocalError).
Reason:
When a line is manually modified, the standard computation is skipped and `explanation_info` is never defined.
Solution:
Initialize `explanation_info = {}` for manually modified lines.
Task-6462526The vehicle model engine section now keeps related power fields together, so the form no longer visually shifts when users change the selected power unit. An unused horsepower tax field was also removed, reducing clutter in fleet-related views.
Original PR description
The order of fields in "engine" section of car model is changed when selecting an other Power Unit. Cause: "power" and "horsepower" fields are conditionnaly invisible depending on the selected unit but at different positions. Solution: moving them next to each other. Removing "horsepower_tax" field as not used for any computation Task: 6428275
The Sign template editor no longer performs an unnecessary background lookup when opening or preparing templates. This removes wasted processing without changing the visible editing experience, helping keep the editor leaner and more reliable.
Original PR description
The editor fetched a sign.item.role record to set currentRole, which has no effect and no use, so every value computed from it is overwritten right after. task-6449467
The Phone app now shows the full Telnyx location when users search for phone numbers to buy, making it easier to identify where numbers are based. It also removes a misleading settings menu that opened a page without any Phone-specific settings.
Original PR description
When searching for a number to buy, the Location column showed only a
fragment of where the number comes from —> usually the bare state ("ON")
while Telnyx's own search shows the whole thing ("GRIMSBY, ON, CA").
This commit fixes that and shows the location like its shown on Telnyx +
a small ux change which is removing the configuration/settings menu
because Phone app doesn't have settings actually.
Task-6456328Users can now create a new warehouse directly while setting up stock-by-vehicle mappings. This removes an unnecessary setup blocker and makes configuring vehicle-based warehouse assignments faster.
Original PR description
Before this commit, users could not create a new warehouse directly from the 'stock by vehicle' mapping view because the `warehouse_id` field had the `no_create` option enabled.
With this commit, we remove `options="{'no_create': True}"` from the `warehouse_id` field in both the list and form views. This enables on-the-fly warehouse creation directly from the vehicle mapping settings.
task-6381795
Forward-Port-Of: odoo/enterprise#124240The bank journal screen now hides the “send now” reminder and connection request when the journal is no longer using online synchronization as its bank statement source. This prevents users from seeing misleading prompts that do not apply to the selected bank setup.
Original PR description
In this commit:https://github.com/odoo/enterprise/commit/86659741990de2ba9c8bf738207edf0e8a0ba8c4 the invisible condition on action send reminder was wrongly removed Now, the "send now" button and the connection request was shown as soon as we have an account online account link to the journal. But when changing the bank statement source, the information would still be there. Changing the invisible condition to hide it when the bank statement source is different from only_sync no task id
Code cleanup and technical improvements
The inventory barcode app was updated as part of a broader platform migration to keep it compatible with the next version of Odoo's interface framework. This is an internal cleanup with no expected change to day-to-day warehouse scanning or stock counting workflows.
Original PR description
As part of the Owl 3 migration, replace onWillUpdateProps hook with the appropriate Owl 3 alternatives.
This update simplifies how commission plan charts are displayed by using a shared chart handling mechanism already adopted elsewhere. It reduces duplicated code and prepares the feature for newer platform changes, with no expected change to day-to-day user workflows.
Original PR description
The commission plan graph duplicated the same Chart.js lifecycle as the community components: an `onWillStart` loading the `web.chartjs_lib` bundle, then render on mount, destroy and re-render on every patch, destroy on unmount. Here we drop it for the hook extracted in the community PR. `useChart(getConfig)` is called from the constructor as a field and owns the canvas signal ref, so the template takes its `t-ref` from `this.chart.ref`. `spreadsheet_edition` patches `GraphRenderer` and reads its chart instance, which now lives behind the hook's accessor. WHY: useLayoutEffect is deprecated in OWL3 NOTE: the `JSON.parse` of the record value that `setup` did is dropped - `renderChart` re-parsed it on every run anyway, and nothing reads `this.data` before the chart is built. Community PR: odoo/odoo#282745
The map view code was updated to use the newer application lifecycle approach required by the next Odoo web framework version. This is an internal technical cleanup with no expected change to user-facing map behavior.
Original PR description
Replace `useLayoutEffect` with `onMounted` (functionnaly 1:1 equivalent because of the empty dependency array). Seperating in its own commit for simplicity of security review. WHY: useLayoutEffect is deprecated in OWL3
This update refreshes internal code used by spreadsheet editing screens and VoIP call controls to align with newer platform standards. It should help maintain compatibility and reduce maintenance risk without changing the expected user experience.
This update simplifies internal invoice creation code across sales-related modules, including subscriptions, loyalty, tests, and Brazilian stock EDI. It should make future maintenance safer and more consistent without changing day-to-day user workflows.
The audio visualizer was updated to use the newer supported approach in Odoo’s interface framework, replacing an outdated internal mechanism. This reduces future upgrade risk and adds test coverage to help ensure the visualizer continues working correctly.
Original PR description
Replaced `useLayoutEffect` with `computed` because `useLayoutEffect` is deprecated in OWL3. `barHeights` is pure derived state from `props.frequencies` and `barCount` (a signal). `computed` auto-tracks both dependencies and re-evaluates without side effects, making it a natural fit for this case. When commenting out the useLayoutEffect there was no error, the code we refactored had NO TEST coverage. A test was written to ensure our fix was correct, and it was tested against the previous useLayoutEffect: - Passed with previous useLayoutEffect. - Failed with previous useLayoutEffect commented. - Passed with our OWL3 replacement.
This change renames an internal user access group to make its purpose clearer and more consistent across the system. It should not change day-to-day workflows, but helps maintain the platform and reduces confusion for future updates.