Monday, September 14, 2026
58 changes · master
Enhancements to existing features
The Kanban group settings cog now matches the round quick-add button beside it. This creates a more consistent and polished interface with no change to business workflows.
Original PR description
Before this commit, the group config cog was a btn-light rounded rect while the quick add button next to it was a circle. This commit reuses o_btn_circle for the cog. requires: https://github.com/odoo/enterprise/pull/131254 task-6541909 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Kanban group configuration cog now uses the same secondary button styling as related controls. This creates a more consistent visual experience while removing redundant styling rules.
Original PR description
Before this commit, the circle style was only applied to the kanban quick add button, repeating classes o_btn_circle already provides. This commit applies btn-secondary to the group config cog too and drops the redundant ones. requires: https://github.com/odoo/odoo/pull/287845 task-6541909
The Discuss app now separates personal settings from broader configuration options by grouping Notifications and Voice & Video under a dedicated User Settings section. This makes the menu easier to understand and more consistent with other Odoo apps.
Original PR description
Before this commit, the "Configuration" menu contain items that were both global on Discuss application and user-specific settings. This contributes to making the app not as intuitive as it should. The "Configuration" menu is meant to reflect consistently the other "Configuration" menu items in other apps, which are meant to make global configurations on the app. This worked for all but the menu items "Notifications" and "Voice & Video" that are clearly settings affecting only the current user. This commit improves by moving "Notifications" and "Voice & Video" menu items to their dedicated "User Settings" group, still inside the Configuration menu. Task-6560201 <img width="454" height="262" alt="Screenshot 2026-09-08 at 23 12 57" src="https://github.com/user-attachments/assets/84f670ea-d277-4b90-93f2-369dd7e698fa" />
Website editors can now translate chart descriptions used for accessibility. This helps multilingual websites provide clearer, localized descriptions for visitors using assistive technologies.
Original PR description
It was possible to add a description (aria-label) to a chart, but not to translate it. This commit makes it translatable.
The Indian time off module now uses clearer names for sandwich leave policy options and updates the related tooltip. This makes the policy settings easier for HR users to understand without changing underlying leave calculations.
Original PR description
The names of sandwich leave policy selections are updated. The tooltip is renamed. task-6538163 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
When users create a resource from a specific working schedule, Odoo now keeps that schedule selected instead of replacing it with the company's default schedule. This reduces manual corrections and helps ensure new resources are assigned to the intended calendar from the start.
Original PR description
When creating a new resource from a working schedule stat button, `default_calendar_id` is provided in the action context. However, on form initialization, `_onchange_company_id` overwrites `calendar_id` with `company_id.resource_calendar_id`. Check for `default_calendar_id` in the context inside `_onchange_company_id` to preserve the pre-selected calendar when creating resources from a schedule. task-6515306 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Belgian payroll flow no longer shows the working schedule change wizard when an employee has a contract but no payslip. This reduces unnecessary interruptions for payroll or HR users when schedule changes do not require payslip-related handling.
Original PR description
Normally, when we change the working schedule of the employee (the one with different work_rate) that has a contract:
- working schedule wizard was appearing
Now when the employee does not have a payslip, we don't open that wizard
task-6562466The accounting field that describes deductible percentages now has clearer wording. This helps internal tools and AI interpret it correctly and avoid confusing it with other VAT or fiscal deductibility concepts.
Original PR description
Provides a better description to the field deductible_percentage to help AI understand its meaning and differentiate it from other deductibility features such as partial VAT deductibility or fiscal categories. task-6180199 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Kanban column quick-create area has been updated to better match Odoo’s new Frost design, giving users a more polished and consistent interface. Button borders in grouped controls now display correctly when users hover or click, improving visual clarity during everyday interactions.
Original PR description
### Bring hover buttons to the front in input-group Prior to this PR, when several buttons were defined within an input-group, their borders could overlap incorrectly on hover. This PR ensures that the entire border around a button remains visible when it's hovered, just as it does when the button is focused. ### Fine-tunes `column_quick_create` design This PR updates the design of the `column_quick_create` component to match the new Frost design. task-6533946 | Before | After | |--------|--------| | <img width="722" height="419" alt="Screenshot 2026-09-07 at 10 27 33" src="https://github.com/user-attachments/assets/449018cf-3190-4c85-b2ec-629b855f5536" /> | <img width="725" height="425" alt="Screenshot 2026-09-07 at 10 28 22" src="https://github.com/user-attachments/assets/915ee7a1-1818-40cc-a3fb-695ea27235cc" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The editor toolbar now uses more intuitive icons for text color, image preview, and image resizing. This makes common editing actions easier to recognize and helps users work more confidently in content editing screens.
Original PR description
- The `text_fields` icon is replaced by a simple Arial font "A" for the text color selector. | Before | After | | :---: | :---: | |<img width="222" height="79" alt="image" src="https://github.com/user-attachments/assets/1ac02ca2-4a6e-4eb5-a68e-7f396572de91" />| <img width="219" height="75" alt="image" src="https://github.com/user-attachments/assets/c9092f92-837a-41f0-abbb-b6218c423368" /> | - The image preview button is now a magnifying glass. - The image resizing button is now represented by the `resize` icon instead of `expand_content`. | Before | After | | :---: | :---: | | <img width="314" height="77" alt="image" src="https://github.com/user-attachments/assets/f8e7b942-2821-4e52-b470-52377144f795" /> | <img width="327" height="72" alt="image" src="https://github.com/user-attachments/assets/87e90b4e-ac5d-4df8-9e4f-17dad8ca28d7" /> | task-6472088
This update adds an internal explanation for how a Belgian payroll dependent-related field is calculated compared with what users see in the interface. It helps developers avoid confusion when maintaining the payroll rules, with no direct change to employee or payroll behavior.
Original PR description
The `dependent_juniors` field was a bit confusing as the computation did not reflect the UI. This commit adds a comment to clarify things for developers.
The helpdesk gift card portal now uses Odoo's standard message loading flow instead of a separate older route. This helps keep the customer portal experience consistent and easier to maintain, with minimal visible change for users.
Original PR description
This commit replaces `/mail/chatter_fetch` with `/mail/thread/messages` in order to reuse the base mail code in portal as much as possible. part of task-3599659 [Community PR](https://github.com/odoo/odoo/pull/182334)
The CRM pipeline switcher now uses the shorter label "All Teams" instead of "All Sales Teams". This improves readability and helps the interface fit better on smaller screens.
Original PR description
Reword the "All Sales Teams" label of the pipe switcher to "All Teams" to shorten it and have a better display on smaller screen sizes. Task-6568144 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The accounting reporting screens were updated as part of a technical cleanup of the underlying interface framework. This should help keep financial reports and return-related views easier to maintain and ready for future improvements, with little expected day-to-day impact for users.
The Frontdesk app now appears in the app overview between Lunch and Expenses. This makes the app list more logically ordered and easier for users to navigate.
Original PR description
In this PR we have updated the sequence of the **Frontdesk** app so that it appears between the **Lunch** and **Expenses** apps in the overview. Task-6568726
Obox queues can now be linked back to the point of sale orders that created them, making it easier for teams to investigate queue issues. The related Obox and queue screens were also improved so staff can review this information more clearly.
Original PR description
In order to debug obox queue creation linked to pos orders. Also improve views of Obox queue and Obox.
The mail app is being prepared so AI agents can show intermediary updates before their final response. This groundwork supports a smoother future experience by making conversations feel more transparent while an AI reply is being generated.
Original PR description
Purpose: -------- In the related enterprise PR, agents will be able to send intermediary messages before sending their final response. This commit introduces new getters that are overridden in that PR. Task-6272649
This temporary change prepares the Discuss/mail messaging area to handle intermediary AI-generated messages in conversations. It is an internal preparation step, so business users should not see a major immediate change, but it supports upcoming AI-assisted communication features.
Original PR description
[This PR will be dropped when https://github.com/odoo/odoo/pull/283207 is merged]
Resolved issues and error corrections
The web translation dialog now correctly shows and saves XML field attributes that contain special HTML characters. This prevents translated content from being displayed or saved with incorrect extra escaping, improving reliability for users managing translations.
Original PR description
Have an xml field with special html characters in an attribute that should be translatable Before this commit, the translation dialog rendered that case badly, doube escaping when saving After this commit it works as expected 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
Features or functions removed from Odoo
The partner ledger no longer includes two unused residual amount columns. This simplifies the report setup and removes outdated fields without changing the core ledger information users rely on.
Original PR description
removing residual_at_date and residual_currency_at_date since they are not used anymore in partner ledger see odoo/upgrade#11285 task-none
Code cleanup and technical improvements
This update reorganizes how notebook tab styling is applied in the web interface. It keeps the same user experience while making the underlying code easier to maintain and less prone to styling inconsistencies.
Original PR description
part of task-6526153 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
Documentation and clarification updates
NioSystems has added its Corporate Contributor License Agreement signature to the project records. This confirms the company is authorized to contribute code under Odoo's contribution requirements, supporting clear legal ownership for future submissions.
Original PR description
This Pull Request adds the Corporate CLA signature file for NioSystems to authorize contributors to submit code. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures VoIP sales test data is created with the right permissions after a recent testing change. It helps keep automated checks reliable, reducing the risk of false failures during development.
Original PR description
With commit a452ee4de2927327b56ae6922f395482e3dbd50f, now test methods run as a dedicated `_test_user` whose groups are limited to the ones defined by `_test_user_groups`. The test added by 94bfdb15f9af369493cfeeda01593a901993f110 sets up its own records without sudo and therefore lacks the required groups. To solve, we create data with sudo(). runbot: https://runbot.odoo.com/odoo/error/947154
Fixed an issue in Shopfloor where saving a measurement instruction could leave the confirmation popup open even though the value was saved. This reduces confusion for operators and lets them continue work order steps smoothly.
Original PR description
Steps to reproduce: 1. Go to Shopfloor 2. Select some Work Order 3. Click update instructions 4. Add a measure instructions 5. Try to validate this step by putting a value and saving 6. Notice that the pop up is not closing. This is happening that due to the change in this pr: https://github.com/odoo/enterprise/pull/124697 `startWorking` function, which is called by `doActionAndNext` and returns its result, now can return `true` or `false`. `doActionAndNext` is called by `saveMeasurement`, which also returns its result. Since `saveMeasurement` is bound to confirm, if `startWorking` returns false, `saveMeasurement` will return false, and the ConfirmationDialog will not be closed. (https://github.com/odoo/odoo/blob/19.0/addons/web/static/src/core/confirmation_dialog/confirmation_dialog.js#L79) Since the result of `saveMeasurement` is not used, it now just awaits for `doActionAndNext`, and return no value. task-6569826
The AI website builder form tests now load the needed iframe templates so they match recent multilingual website behavior. This helps ensure forms continue to work correctly when the website language differs from the user's language.
Original PR description
The corresponding PR in community fixes the way templates added by options are rendered to use the correct language when the website's language is not the sames as the user's language. This changes requires tests that use those options to enable `loadIframeBuilderTemplates` to function. This commit enable this options for 2 tests modifying forms. task-6452676
This fixes an issue where accounting return screens could keep running loading steps after the user had already left the page. The change helps avoid unnecessary errors or interruptions during account and Belgian reporting workflows.
Original PR description
When loading the return we need to do multiple async calls Previously it tried to make all the calls whether or not the component was destroyed. Now between each call we check if we should exit early or not.
This fixes a visual issue in Kanban views where cards could overlap the column header when hovered in a scrolled column. The header now stays on top, keeping the interface clearer and easier to use.
Original PR description
Since the changes introduced in commit [1], hovering a Kanban card in a scrolled column causes the card to appear in front of the Kanban header, resulting in visual glitches. This commit updates the Kanban header z-index to ensure it remains above the cards. task-6569549 [1]: https://github.com/odoo/enterprise/commit/a52d671ff63a4238040ee93320fcaf7f5fcdccce Requires: - https://github.com/odoo/enterprise/pull/131381 | Before | After | |--------|--------| | <img width="918" height="383" alt="image" src="https://github.com/user-attachments/assets/2bf46643-b7b3-41ee-a292-5cbbb3f596b4" /> | <img width="880" height="373" alt="image" src="https://github.com/user-attachments/assets/f4f6152a-2be9-4246-a412-5cf890db2e06" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Sales order lines without a linked product now use the first line of their description as the short name, preventing display issues in the customer portal. The sales form also now requires a label for these lines, reducing the chance of blank entries.
Original PR description
Fix the computation of `name_short` to use the first line of the description for productless SOLs. Previously, `name_short` was always computed from the product's `display_name`, causing the sale order portal view to break for productless SOLs. Also make label field required to avoid having line with empty label. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The VoIP softphone empty screen now shows the intended phone icon instead of a blank space. This provides a clearer, more polished experience for users when there is no call content to display.
Original PR description
`oi` icons are resolved through `content: attr(data-icon)`, so the class-based `<i class="oi oi-voip"/>` painted nothing. Use the systray's icon: `oi oi-filled` with `data-icon="call"`. Task-6524634
This fix removes a visual glitch that appeared when users dragged cards between Kanban columns. The highlighted drop area now displays more smoothly, improving the user experience without changing functionality.
Original PR description
When dragging a card into another column, a highlighted area is displayed. This area is divided into two sections: the Kanban header and the column itself. Before this commit, the header had a transition applied to it, which caused a visual glitch when dragging cards. This commit refines the transition so that it only applies to the relevant CSS property and prevent visual glitches. task-6569549 Requires: - https://github.com/odoo/odoo/pull/288012 | Before | After | |--------|--------| | <img width="840" height="619" alt="image" src="https://github.com/user-attachments/assets/c941fd7c-c2c9-434a-a837-f3acd7771aa7" /> | <img width="585" height="584" alt="image" src="https://github.com/user-attachments/assets/025fde6c-b36e-477a-99a5-3db0c42ca387" /> |
This fixes a crash that could happen when the Indian localization setup did not have a template code available. The change makes the setup check for the code before using it, improving reliability during configuration or automated checks.
Original PR description
Previously, the template code was directly checked with `startswith('in')`, which caused a traceback when no template code was there.
In this commit, the template code is checked first, and `startswith('in')` is only called when a template code is available.
error: https://runbot.odoo.com/odoo/runbot.build.error/947112Fixed an issue where translated labels for identifiers linked through a commercial partner were not always shown. This helps users see the correct localized information when working with partner records.
Original PR description
When an identifier comes from the commercial partner, the translation was not properly loaded because it was not part of the computed available_additional_identifiers. task-none
This update prevents an error when Turkish Nilvera e-Dispatch records have no related deliveries to process. It adds a safety check so users avoid a runtime failure in this situation.
Original PR description
… boolean the function `_get_related_pickings` can return False. So before iterating over the results, we need to check whether there it is False or not to avoid iterating over a boolean and hitting a runtime error. 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
The applicant refusal form now only shows active refusal reasons, preventing outdated archived options from appearing in the selection list. This keeps recruitment workflows cleaner and reduces the chance of choosing obsolete reasons when rejecting candidates.
Original PR description
When refusing an applicant, the archive_applicant function was passing `'active_test': False` in the **context** to the refusal wizard. This disabled the active records filter, **which caused archived refuse reasons to appear in the dropdown selection.** This commit removes `'active_test': False` from the context to restore the default filtering behavior as it seems harmless to remove.
Australian payroll opening balance templates now include annual leave after the older paid leave category was replaced. This helps ensure year-to-date payroll balances reflect paid leave correctly for reporting and payroll setup.
Original PR description
The Other Paid Leave work entry type was dropped in favour of a single AU.AL Annual Leave entry, but the YTD opening balances template was left without any Paid leave entry. Task-6529559
This fix prevents errors when the system looks up currency rates without a specific invoice or journal entry selected. It keeps Turkish live currency rate handling reliable while preserving special rate-type behavior when a single entry is available.
Original PR description
## Short fix summary: `account.move.get_currency_rate` ignores `self` and can be called with no record at all, which the override in `l10n_tr_currency_live_rate` did not allow: it opened with `ensure_one()` and raised `Expected singleton: account.move()`. The rate type is now applied only when there is a single move to read it from, deferring to `super()` otherwise. no-task-id I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Time Off overview now displays the correct leave duration next to each employee instead of always showing 0 days. This helps managers and HR users quickly understand requested or scheduled time off without opening extra details.
Original PR description
Steps to reproduce: 1- Open time off app 2- Open overview tab 3- Click on any time off entry Issue: The duration next to the employee name is always "0 day(s)" Cause: the duration was calculated in '_getDurationLabel' based on number_of_hours or number_of_days. That was assuming that the model can only be hr.leave which is true for the management tab but in the overview tab the model is hr.leave.report.calendar which doesn't have those fields. Fix: Both models instead have a field called duration display which includes a string for the duration with hours/days and translation handled. The field is added in the 'addtionalFieldsToFetch' in the renderer as it was not present in the hr.leave form view. The '_getDurationLabel' method was discarded as there was no need to build the duration string and used duration_display directly. Task-6542267
After installing VOIP, the setup flow now opens the available phone number list correctly. This prevents users from landing on an empty screen when they need to buy or configure a number.
Original PR description
Since 01d284d7916 ("[IMP] voip: introduce number requests"), voip_did_number_menu is a parent menu without an action: the list action moved to its voip_did_number_list_menu child. selectMenu returns early on a menu without an action, so the post-install client action opened nothing.
Select voip_did_number_list_menu, which holds the list action.This update cleans up references to an old developer option that no longer exists. It helps avoid confusion for administrators and developers by keeping Odoo's configuration behavior aligned with currently supported features.
Original PR description
The feature was removed in odoo/odoo#115076 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#287719 Forward-Port-Of: odoo/odoo#283352
Fixed a small configuration error that could cause an error when users opened the return kanban view and used the View Entry button. This restores expected access to related entries in Indian localization reports.
Original PR description
A `,` was missing in the `invisible` condition of the `View Entry` button, causing a traceback. Add the missing `,` to fix the return kanban view.
The French accounting module no longer forces companies to install partner autocomplete just to use shared partner lookup logic. This keeps the needed functionality available while avoiding an optional feature that cannot currently be disabled.
Original PR description
In this commit: https://github.com/odoo/odoo/commit/bc4bb545aa1b7451cf46ec64879ded93c457d411 We added a dependecy for the partner auto complete but it could be a problem because partner_autocomplete don't have a way to disable it. This pr will move the function to the base module to be sure it can be use. no task id co-authored: @remi-filament --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The French reports module now correctly declares a required internal service used for AspOne features. This helps ensure the module installs and runs reliably without missing-component errors.
Original PR description
This module use some function from iap for using aspone, but the dependency wasn't there. This commit will add it. no task id
The Mexican POS electronic invoicing test was updated to match the newer self-invoicing process. This helps ensure receipts can still be self-invoiced correctly while preventing public users from changing existing customer records.
Original PR description
Before the related pr commit: - Public users could update customer data during the self-invoicing flow. - The test_qr_code_receipt_mx test relied on this behavior when updating customer data. After the ref commit: - Public users can no longer update customer data during self-invoicing. - Update test_qr_code_receipt_mx to create a new partner with the required customer data when the order is not linked to a customer. Related PR: odoo/odoo#283470 Task-6272660 Forward-Port-Of: odoo/enterprise#131018 Forward-Port-Of: odoo/enterprise#129948
This fix adds a check to ensure Belgian payroll remuneration codes use whole-number values. It helps prevent invalid payroll configuration data that could cause reporting or calculation issues.
Original PR description
Task: 6536560 Forward-Port-Of: odoo/enterprise#131261 Forward-Port-Of: odoo/enterprise#130425
Corrects the receipt type value sent for Egyptian electronic POS reporting so it matches the tax authority's expected format. This helps prevent sale receipts from being rejected because of a simple capitalization mismatch.
Original PR description
Fixes a typo in the documentType, where it was previously uppercase 'S' --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A small configuration error was corrected so Indian localization return screens can open as expected. This prevents users from being blocked when accessing those return views.
Original PR description
There is a missing comma in an invisible clause causing the return views to no load.
New VAT-related reports and return types are now activated or deactivated at the right point in the setup process. This prevents records from being handled before their system identifiers exist, improving reliability when accounting report data is loaded.
Original PR description
The logic to toggle the `active` field on newly created reports / return types was in `create`. There the new records do not have an xmlid yet. But we retrieve some of the the reports / return types via `ref`. Reports / Return types should basically always have an xmlid an be loaded via the module data. So there is not really a point in having such a logic in `create` task-None
A payment-related setting was renamed to make its purpose clearer and avoid confusion with the existing payment enabled status. This helps teams understand when online payment functionality is intentionally blocked, reducing setup and support misunderstandings.
Original PR description
During this commit: https://github.com/odoo/enterprise/commit/1c4865cdcc191fea06a87e742556e080aa2478d7 we added a field to block the payment feature. The name of the field was a bit confusing with is_payment_enabled. no task id
This fixes a display issue where product cards could lose their padding when using the Chips layout outside the main shop page. Website editors and visitors will now see consistently spaced product cards in dynamic product sections, improving page appearance without changing functionality.
Original PR description
Steps to reproduce: --- - Install the website_sale module with demo data. - Go to /shop and switch the product layout to Chips. - Exit the editor. - On the home page, open the editor and add the…
Steps to reproduce: --- - Install the website_sale module with demo data. - Go to /shop and switch the product layout to Chips. - Exit the editor. - On the home page, open the editor and add the Dynamic Products snippet. Issue: --- The Products snippet has collapsed card padding when the Chips layout is active. Root cause: --- - The Chips card layout defines `--_padding-base` using `var(--o-wsale-products-grid-gap)` with no fallback value. https://github.com/odoo/odoo/blob/4307f657c73a860c755e1499138a878268882f7a/addons/website_sale/static/src/scss/product_tile.scss#L632 - When the Products snippet renders outside /shop, the variable is undefined, causing the `calc()` to resolve to a guaranteed-invalid value which collapses the card padding. All other layouts are unaffected because they either do not use `--o-wsale-products-grid-gap` in their padding chain, or already provide a `16px` fallback at the point of use. https://github.com/odoo/odoo/blob/4307f657c73a860c755e1499138a878268882f7a/addons/website_sale/static/src/scss/product_tile.scss#L407-L410 Solution: --- - 16px matches the default value of `shop_gap` on the website model, ensuring correct padding whenever the variable is not explicitly set. https://github.com/odoo/odoo/blob/4307f657c73a860c755e1499138a878268882f7a/addons/website_sale/models/website.py#L128 ### Before: <img width="1456" height="563" alt="image" src="https://github.com/user-attachments/assets/c28ab183-0af3-4a2a-858d-b85d9995eb07" /> ### After: <img width="1427" height="550" alt="image" src="https://github.com/user-attachments/assets/e0ba80ec-10ad-433f-bf9a-acbaffd56a76" /> opw-6511483 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#286185
The HTML editor now properly clears file-related event handlers when an editor is closed or destroyed. This prevents small memory leaks that could build up over repeated editor use, improving long-term stability without changing the user experience.
Original PR description
FilePlugin registered its click, keydown and pointerdown handlers with raw `addEventListener`, so they were never removed when the plugin was destroyed. The pointerdown one is bound to the document, which outlives the editable, leaking a handler per editor instance. Use `addDomListener` so Plugin.destroy() removes them. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#286491 Forward-Port-Of: odoo/odoo#286144
This change refreshes internal mail and live chat model definitions so they match the current application code. It helps developers avoid outdated references and keeps future mail-related changes more reliable, with no direct change expected for end users.
Original PR description
Before this commit, the @types/models.d.ts files are behind the models: they declare fields that were since renamed or dropped, and miss the ones that were added, because the generator was not run. This commit runs it again. The generator types the values declared with this.computed() as `unknown`, so their entries are written by hand for now.
This update reduces repeated behind-the-scenes calculations in the website builder and configurator. Users should see smoother typing, scrolling, and preview rendering without any change to visible features or workflows.
Original PR description
A getter recomputes on every read, and a few of them are read several times within a single render: - `DescriptionScreen` builds `previewImages` 19 times, as the image showcase is rendered through `t-call` and therefore shares the screen's context - `BuilderListDialog` runs `fuzzyLookup` four times per keystroke, once for the emptiness check and once for the loop, on each of its two panels - `BuilderList` parses its item list again on every `getIncludedRecords` call, up to three times per scroll frame This commit moves them to `computed`, which recomputes only when the state it reads changes. `computed` was introduced in OWL3 [1]. [1]: https://github.com/odoo/odoo/commit/efb95b76a4e48d42e888d8d05eb6d93b3f267412
The HTML builder sidebar code was updated to align with the newer Owl 3 framework used by Odoo. This is an internal modernization that helps keep the editor maintainable and ready for future improvements, with no expected change to everyday user workflows.
Original PR description
As part of the Owl 3 migration, replace onWillUpdateProps hook with the appropriate Owl 3 alternatives. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update refreshes internal component handling across inventory, manufacturing, accounting, survey, and website areas to align with the latest Odoo interface framework. It helps keep these screens maintainable and better validated without changing day-to-day business workflows.
Original PR description
See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The HTML builder module no longer lists dependencies that are already guaranteed or only needed for tests. This keeps installations leaner and avoids pulling in the Mail app when it is not needed for actual HTML builder use.
Original PR description
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 modernizes how several Odoo interface components handle their internal settings across product, purchase, sale, spreadsheet, and related areas. It should not change day-to-day workflows, but it helps keep these screens compatible with the latest front-end framework and improves validation behind the scenes.
Original PR description
- https://github.com/odoo/enterprise/pull/131109 See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update modernizes internal component definitions used across several sales-related apps. It helps keep the interface compatible with the latest framework standards and improves validation behind the scenes, with no expected change to day-to-day user workflows.
Original PR description
- https://github.com/odoo/odoo/pull/287604 See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update modernizes internal user interface components by replacing an older way of handling component inputs with the current supported approach. It helps keep live chat, localization, loyalty, lunch, mail, manufacturing, payment, point of sale, portal, printer, and related project areas maintainable and ready for future platform updates, with no expected change to day-to-day behavior.
Original PR description
- https://github.com/odoo/enterprise/pull/131262 See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr