Tuesday, September 1, 2026
17 changes · master
Enhancements to existing features
A new automated test verifies that image previews refresh correctly after a user uploads a new image. This helps protect the image upload experience from future regressions in Odoo's web interface.
Original PR description
Purpose ======= Add a test that check that the preview of the `ImageField` is updated after uploading a file when the option `preview_image` is used. Task-6509975
Shift template suggestions now include generic templates even when a shift has a specific project or worksheet. This makes reusable templates easier to find and keeps scheduling behavior consistent with role-based template suggestions.
Original PR description
*_ = planning_field_service_worksheet - When a shift has a project or a worksheet, only templates matching that exact value were suggested. Roles already also include templates with an empty value. - Do the same for project and worksheet so generic templates remain available. task-6364228 Forward-Port-Of: odoo/enterprise#129004
This update refreshes demo data for purchasing, stock-related purchasing, and online store stock scenarios. It helps business users and evaluators see more representative examples when testing or demonstrating these Odoo apps.
Original PR description
Task: 6486305 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 refreshes and expands demo content across purchasing, inventory barcode, manufacturing work orders, and quality control. It helps teams evaluate these workflows with more realistic sample data and clearer barcode examples, making demos and training easier.
Original PR description
Task: 6486305
Users can now delete removable circular nodes, such as Hang Up, directly from the VoIP flow editor with the mouse. The delete option also stays visible when focused, improving keyboard accessibility while keeping protected nodes like Start unchanged.
Original PR description
Circular flow nodes did not display the delete button available on rectangular nodes. As a result, Hang Up nodes could not be removed directly with the mouse. Display the delete button when hovering a removable circular node and keep it visible when focused for keyboard accessibility. Non-removable nodes, such as Start, remain unaffected.
The project to-do screens have been tidied up to make searching and list browsing clearer. This should help users find and review their to-do items with less visual clutter and a smoother day-to-day experience.
Original PR description
task-6516822
The Timesheets section on project tasks now places the option to add a new line at the top of the list. This makes entering timesheet records quicker and more visible for users working on task details.
Original PR description
Recently, the framework merged a task allowing to configure the position of the "Add a line" in the list view. We build on this to change the position of the "Add a line" button to the top of the "Timesheets" notebook of Project tasks. task-6499912
Helpdesk users can now add a new timesheet line from the top of the Timesheets section on a ticket. This small usability improvement makes time entry easier to find and faster to use when working on support tickets.
Original PR description
Recently, the framework merged a task allowing to configure the position of the "Add a line" in the list view. We build on this to change the position of the "Add a line" button to the top of the "Timesheets" notebook of Helpdesk tickets. task-6499912
Date pickers can now show the day of the week alongside dates when enabled. This helps users quickly understand what weekday a selected date falls on, which is especially useful for appointment booking and scheduling flows.
Original PR description
It is sometimes relevant when showing the date to also quickly let the user know what day of the week it corresponds to. task-5072614
The Indian payroll contract template now hides the Tax Deductions section when Professional Tax is not enabled. This keeps payroll settings screens cleaner and prevents users from seeing empty or irrelevant sections.
Original PR description
Prior to this commit, the "Tax Deductions" group caption on the contract template view remained visible even when Professional Tax (PT) was not enabled in the Payroll settings. This commit updates the visibility condition of the "Tax Deductions" group on the contract template view to be hidden when PT is disabled (`not l10n_in_pt`), preventing empty settings sections from displaying to users. Task: 6514274 Forward-Port-Of: odoo/enterprise#129836 Forward-Port-Of: odoo/enterprise#129703
Mobile users searching for projects will now consistently see the simpler project card designed for selection dialogs. This avoids occasionally showing the fuller Projects app card in the wrong place, making project selection clearer without changing the main Projects screens.
Original PR description
The many2one "Search More" dialog on mobile requests a kanban view for `project.project` without an explicit `view_id`, falling back to whichever primary kanban view resolves first. This accidentally depended on record id ordering, sometimes serving the rich Projects app card instead of the minimal one meant for this case. This commit sets an explicit lower priority on `project_view_kanban` so it is deterministically chosen for this fallback, leaving the Projects app and Configuration > Projects menus (which pin their own view_id) untouched. task-6131412
Frontdesk automated checks were updated to match the newer visitor creation process, where notifications are sent as soon as a visitor is created. This helps ensure the visitor reception experience and related SMS notification behavior continue to work reliably.
Original PR description
Update frontdesk tests to follow the new visitor creation flow, where notifications are triggered when creating a visitor. Task-6388574
Job listings now only allow working schedules that match the job's company. This helps keep recruitment records consistent and reduces the risk of publishing or managing jobs with invalid schedule settings.
Original PR description
In order to maintain proper job listings and make sure all working schedules are valid, working schedule domain is now depeding on the job listing company. Task: 6408914 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#285407 Forward-Port-Of: odoo/odoo#282993
Job listings now only allow working schedules that are valid for the company linked to the job. This helps keep recruitment postings consistent and reduces the risk of choosing an incompatible schedule.
Original PR description
In order to maintain proper job listings and make sure all working schedules are valid, working schedule domain is now depeding on the job listing company. Task: 6408914 Forward-Port-Of: odoo/enterprise#129748 Forward-Port-Of: odoo/enterprise#128241
Several apps were updated to stay aligned with recent attachment handling changes in Odoo. This keeps opening and deleting attachments working consistently in areas such as Approvals, Documents, Recruitment, Spreadsheets, and Social Marketing.
Original PR description
Community `mail` reshaped AttachmentList's click handlers to the uniform `(ev, { attachment })` object form. These modules patch `AttachmentList.onClickAttachment` / `onConfirmUnlink`, so their overrides adopt the same signature and forward via `super(...arguments)` to keep matching the base.
https://github.com/odoo/odoo/pull/273646This update improves how several mail and calendar interface elements react to changes, especially in chatter, scheduled messages, attachments, polls, previews, and chat bubbles. It should make these areas more efficient and reliable by avoiding unnecessary refreshes and ensuring actions apply to the item the user actually selected.
Original PR description
Continue reading props as signals (`this.x()`) across more mail components via `propComputed`/`propSignal`: the chatter scheduled message and follower list, polls, link previews, the chat bubble and…
Continue reading props as signals (`this.x()`) across more mail components via `propComputed`/`propSignal`: the chatter scheduled message and follower list, polls, link previews, the chat bubble and the small leaf components (country flag, date section, priority, message link preview list).
A callback handed to a slotless list child is made `props.static` and bound once in the caller: a fresh closure every render makes the prop compare unequal and forces every item to re-render, whereas a stable reference lets unchanged items skip it. Done for `AttachmentList.unlinkAttachment` and
`ScheduledMessage.onScheduledMessageChanged`.
`ChatBubblePreview.chatWindow` is chained down as a `propSignal`: the parent already holds the value as a signal and now passes the signal itself, so the preview reacts to it directly.
Click handlers take the record they act on as a parameter, captured at render right before the handler (a scoped `recordAtRender` local) and passed as `(ev, { recordAtRender })`. A signal read inside a handler resolves at call time, so if the value changed since the render the user saw, the handler would act on a record different from the one displayed; the captured record keeps the action tied to what was clicked. A callback that runs later, such as a dialog confirmation, receives the same captured record instead of re-reading the signal.
A callback prop type shared between a child and the parents that pass it is defined once as an exported `(store) => t.function(...)` factory and reused rather than duplicated at each declaration.
https://github.com/odoo/enterprise/pull/122615The Belgian payroll module description now directs users to the official documentation for Dimona. This helps users find the most accurate guidance without changing payroll features or workflows.
Original PR description
Change the module description to refer to the official documentation. Task-6485101