Friday, September 11, 2026
60 changes · master
New functionality added to Odoo
Employee leave records can now be accessed directly from employee information in the Time Off area. This supports related business processes that need to read leave data without relying on payroll components.
Original PR description
Allows to read it (without payroll). See enterprise PR. Task-6344800
Enhancements to existing features
Existing payroll accrual plans now include the appropriate work entry type information introduced by a related payroll model update. This helps ensure leave and accrual data stays consistent across localized payroll setups for supported countries.
Original PR description
Populate the work entry type field on existing accrual plans following its addition to the accrual plan model in the related community commit. Task#6360628
Resolved issues and error corrections
The website theme color editor now keeps edit buttons visually stable when users navigate with the keyboard. This prevents a small but distracting layout jump, improving usability and polish in the website editor.
Original PR description
Steps to reproduce: - Open the website editor. - Open the theme color picker. - Focus an edit color preset button with the keyboard. => The button shifts when it receives focus. Before this commit, a transparent border reserved space outside focus. Since [1], the focus indicator uses a `box-shadow`, so that border disappeared on focus and changed the button size. After this commit, the obsolete border is removed and the button keeps a stable size when focused. [1]: 8f41224083f198c5d86cdf6f43824b42bdc73d36 task-6259086
Code cleanup and technical improvements
Updated internal spreadsheet component setup to use the current supported approach for handling component inputs. This helps keep the spreadsheet experience maintainable and reduces the risk of future compatibility issues, with no expected functional change for users.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`, providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.Test coverage was updated across manufacturing, quality, rental, inter-company sales, and subscription stock flows to match recent changes in warehouse-specific routing. This helps ensure business processes continue to select the correct warehouse routes consistently after related platform updates.
Original PR description
*: sale_{mrp_renting, purchase_stock_inter_company_rules, stock_renting, subscription_stock}
Update the test cases stay consistent with community changes.
Community PR:- https://github.com/odoo/odoo/pull/280682
TaskId:- 6442488Odoo Box actions are now kept for 24 hours instead of 3 hours. This gives teams more time to investigate and troubleshoot issues from the previous day, improving support and debugging without changing day-to-day user workflows.
Original PR description
We now keep obox actions for 24h instead of 3h to be able to debug until one day after. Forward-Port-Of: odoo/enterprise#130965
The status bar design has been refined to better align with Odoo's new Frost visual layout. This improves visual consistency in web and mail views without changing business workflows.
Original PR description
This commit refines the status bar styling to better match the new Frost layout. task-6545990 Requires: - https://github.com/odoo/enterprise/pull/130906 | Before | After | |--------|--------| | <img width="366" height="53" alt="Screenshot 2026-09-10 at 11 28 04" src="https://github.com/user-attachments/assets/7602ff8d-ae89-4232-b01e-20d60c93f6e8" /> | <img width="377" height="49" alt="Screenshot 2026-09-10 at 11 27 45" src="https://github.com/user-attachments/assets/93efa0af-ec4a-4d57-b15d-f1c71ec7567f" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Partners filter in accounting reports now shows how many partners or partner categories are selected. This makes it easier for users to see active report filters at a glance without opening the filter menu.
Original PR description
Before this commit: In partners related reports, there was no way user can know if there are any partners and partner categories selected or not in Partners filter without opening the Partners filter. After this commit: In Partners filter, display number of partners and partner categories selected if any selected or else display "Partners" like before. [task-6504449](https://www.odoo.com/odoo/my-tasks/6504449)
The status bar has been visually refined to better align with Odoo's new Frost layout. This creates a cleaner, more consistent interface for users without changing business workflows or functionality.
Original PR description
This commit refines the status bar styling to better match the new Frost layout. task-6545990 Requires: - https://github.com/odoo/odoo/pull/287341 | Before | After | |--------|--------| | <img width="356" height="58" alt="Screenshot 2026-09-10 at 11 28 14" src="https://github.com/user-attachments/assets/3cc9e02c-6f53-4664-87e3-f3a76f9f88c7" /> | <img width="357" height="55" alt="Screenshot 2026-09-10 at 11 27 41" src="https://github.com/user-attachments/assets/d3b5dd06-14cd-458d-bf3f-aca472670df4" /> | | <img width="358" height="51" alt="Screenshot 2026-09-10 at 11 28 24" src="https://github.com/user-attachments/assets/b3170dec-d103-49f7-93d4-471dc57fdaee" /> | <img width="356" height="59" alt="Screenshot 2026-09-10 at 11 27 27" src="https://github.com/user-attachments/assets/6786bb28-a174-482c-9d6c-7bb52c78cef8" /> |
Tax return types can now store separate profit and loss accounts for small rounding differences in tax closing entries. This prepares the accounting setup for a later update that will automatically reconcile differences between declared tax report amounts and cleared tax account balances.
Original PR description
Add two company-dependent accounts on account.return.type holding the rounding difference of the tax closing entry (a profit and a loss account), together with their configuration on the return type form. These fields are introduced on their own, ahead of the freeze. An upcoming task, merged after the freeze, computes the tax closing entry from the tax report and reconciles the difference between the amount the report declares and the balances actually cleared from the tax accounts onto these two accounts. Landing the fields now lets that later change stay purely functional, without a model addition on a post-freeze branch.
Email composers can now choose whether to include the standard notification header. This helps businesses send simpler, cleaner emails when the default header is unnecessary.
Original PR description
When sending emails, we sometimes don't want to include the default header to keep the email clean and simple. This commit adds the email_notification_allow_header field to the mail composer to control the header visibility. Task-6065493
Website tours can now be marked inactive instead of being deleted. This helps teams keep old or temporarily unused tours available for later while preventing them from appearing in searches or starting automatically.
Original PR description
Allows disabling a tour without deleting it, so it no longer shows up in searches or gets suggested/played automatically. Task-id: 6563776
This update records failures when automatic cancellation of Mexican electronic invoicing documents cannot be completed. This gives support and accounting teams better information to investigate cancellation issues without changing the user workflow.
Original PR description
In the current state, when an edi document is set to cancelled, the journal entry will attempt to cancel. However, if the cancellation throws a `UserError`, the flow simply continues. This PR adds a logger call to record the failure and help investigate the potential causes. Forward-Port-Of: odoo/enterprise#123511
UK reporting is being prepared to better support companies that operate with multiple legal entities. This update adds the underlying company settings needed for a later rollout, with no immediate change expected for day-to-day users.
Original PR description
These fields will be used in another branch (#[12854](https://github.com/odoo/enterprise/pull/128542)2) that will be merged post-freeze.
This change makes system logs display the actual clock time even when tests simulate a different date or time. It helps teams reviewing runbot logs understand when events really happened and better analyze long-running test behavior.
Original PR description
When using faketime the logs are not showing the real time but the faketime one which can be confusing when listed in the runbot interface. Before the usage of the JSONFormatter, the logs were using the PostgreSQL time, which is the real time. This restores the previous behaviour. Having the faked time oustide JsonFromater is also painful: long running faketimed tests end up with most of their logs stamped to nearly the same real date, preventing any analysis of execution time based on the logs. One drawback of this change is the inability to identify at first sight whether a log was faketimed or not, but at this point it is just a tradeoff, and the faked_created field on the record still allows getting this info if needed. Forward-Port-Of: odoo/odoo#287455 Forward-Port-Of: odoo/odoo#287159
Planning now includes standard, morning, afternoon, and night shift templates by default. This helps new users get started faster by reducing the manual setup needed when configuring schedules.
Original PR description
Add standard, morning, afternoon, and night shift templates by default to make the initial Planning setup easier. task-6180740
Adds an option to generate sample live-location data for field service planning when demo data and debug mode are enabled. This helps teams showcase and test the live map with located resources, without affecting normal users.
Original PR description
This commit adds geolocation to some resources so to show their live location on the live map. task-6460606
Invoice templates for Mexico and Peru were adjusted to stay compatible with the updated shared invoice layout. This helps localized invoices continue to render correctly when using the newer template structure.
Original PR description
Adjusting Enterprise l10n templates to work with updated main template. task-6152210
This update combines the usual work location group with the work location information in the HR app. It makes employee location details easier to manage and reduces confusion for HR users.
Original PR description
task-6476798 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
Support, website support, and subscription loyalty flows were updated to keep working correctly after loyalty card points became calculated on demand rather than saved. This helps ensure coupon generation and subscription-related loyalty behavior continue to show accurate point information without disrupting users.
Original PR description
_* = helpdesk_sale_loyalty, website_helpdesk_sale_loyalty. adapt as the field `points` on `loyalty.card` is non-stored. task-4711900 Community PR: https://github.com/odoo/odoo/pull/206048 Upgrade PR: https://github.com/odoo/upgrade/pull/10869
Kanban cards now show a complete highlighted border when users hover over them, including in grouped views. Document cards have also been visually aligned with the standard Kanban card style for a more consistent interface.
Original PR description
Prior to this commit, there was a border issue when hovering a grouped Kanban card: the entire border was not always emphasized on hover. This commit ensures that the entire Kanban card border is…
Prior to this commit, there was a border issue when hovering a grouped Kanban card: the entire border was not always emphasized on hover. This commit ensures that the entire Kanban card border is consistently highlighted on hover. It also updates the Documents card border to align its design with the general Kanban card design. task-6517831 | Before | After | |--------|--------| | <img width="415" height="435" alt="Screenshot 2026-09-07 at 10 20 47" src="https://github.com/user-attachments/assets/b40e4614-954f-4d7b-94cb-e0a9b629def8" /> | <img width="416" height="433" alt="Screenshot 2026-09-07 at 10 21 55" src="https://github.com/user-attachments/assets/de112c8a-aa7c-4583-8127-3de1a099bda8" /> | | <img width="342" height="242" alt="Screenshot 2026-09-07 at 10 20 59" src="https://github.com/user-attachments/assets/99320ea4-aae4-44aa-b2c4-ed2b6582a99a" /> | <img width="341" height="243" alt="Screenshot 2026-09-07 at 10 22 02" src="https://github.com/user-attachments/assets/ae5e32fd-9221-40eb-baf8-2fb4f0341536" /> | | <img width="688" height="267" alt="Screenshot 2026-09-07 at 10 21 06" src="https://github.com/user-attachments/assets/2f5196f3-b557-4422-9113-1679f5296e9a" /> | <img width="679" height="261" alt="Screenshot 2026-09-07 at 10 22 15" src="https://github.com/user-attachments/assets/67de11bb-8706-4992-87a2-9b9b91c99143" /> |
The appointment calendar share option has been moved into the main control panel menu on mobile. This removes an extra bottom sheet, making the mobile calendar experience simpler and less cluttered for users.
Original PR description
Moving the button to the control panel removes the extra bottom sheet from the mobile view. Instead, the button is shown only with the vertical dots menu in the control panel Task-6396805
The HR module removes older wage helper logic to streamline how contract wage information is handled. This is an internal cleanup that should make the system easier to maintain without changing everyday HR workflows.
Original PR description
Task-5043999
The timesheet access level descriptions have been updated to be clearer for users and administrators. This helps people better understand what each access level allows when configuring timesheet permissions.
Original PR description
Update the access level tooltips for the timesheet --- task-6353758
The access level descriptions for Helpdesk, Planning, and Field Service have been updated to make permissions easier to understand. This helps administrators choose the right access levels with clearer in-product guidance, without changing the underlying permissions.
Original PR description
Update the access level tooltips for the helpdesk and planning --- task-6353758
Inventory screens for batch and wave operations were adjusted to make navigation and setup clearer. Users will see cleaner filtering in planning views, a visible transfer line image, and easier side-by-side source location settings.
Original PR description
Batches and waves were previously merged (see odoo/odoo#280326).Some details on the UX still needs refinements: - On `stock_picking_batch_action`, there is no `groupby` but instead a `search_default_...` filter that needs to be removed for the gantt view. - The 'Batch Transfer Line' image (prev. Wave Picking) is transparent although they are accessible from this view. - Have side by side the two Source Location settings in the Operation Type form view task-6542620
Fixes a visibility issue where the Update BoM action could be hidden on manufacturing orders when the PLM module was installed. This ensures users can access the action in the appropriate production stages, reducing workflow confusion.
Original PR description
This PR fixes a bug introduced in the PR: https://github.com/odoo/odoo/pull/277276 where Update BoM action on MO now shows when the MO is also in `progress` or `to_close` states but when the module `mrp_plm` is installed the `invisible` attribute of the button is overridden missing the new states. After this PR, the override is now updated to have the new states where the action should also appear.
This fixes an issue in Documents where clicking an already selected item in kanban view could stop showing its details. Users can now repeatedly click a selected document without losing the expected selected, focused, and inspected state.
Original PR description
Reproduce * Open Documents on kanban view * Select a record, it is selected, focused and inspected * Click on the record again, it should remain in the same state but is in fact not inspected anymore. * Click on the record again, it should still be selected, focused and inspected and isn't. Cause: render sequence change on updating records from owl3 refactor. Task-6562749
A field grouping setting has been moved from the general HR area to Payroll, so it is managed in the right place. This helps keep employee payroll information organized under the correct module and reduces configuration confusion.
The Belgian salary contract demo data now includes the CP200 category in the basic demo setup. This helps ensure demo scenarios better reflect expected Belgian payroll conditions and avoids issues when using or testing the sample data.
This fix prevents an error when users open the My Events portal page in community-only installations. The event date used for sorting is now available in the community event module, so event registrations can be listed reliably without requiring enterprise add-ons.
Original PR description
Purpose ======= Fix the SQL error when accessing '/my/events' without the enterprise addons. Specification ============= The 'event_begin_date' field is only stored when 'event_enterprise' is installed meaning the 'order by' done on the field when loading the '/my/events' page would fail with an SQL error. => Moving the 'store' on the field from the enterprise module to community. This was previously not spotted as the 'event_enterprise' was auto-installed because all its dependencies were also auto-installed if the enterprise addons was found. Task-6560355 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The product catalog order line now correctly receives stock-related details such as tracking and minimum quantity information. This prevents missing or incorrect information when working with sale order lines in field service planning flows.
Original PR description
- https://github.com/odoo/odoo/pull/287603 See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an issue in Documents where clicking an already selected file in the kanban view could incorrectly remove its inspected state. This keeps the file selection experience consistent and avoids confusion when users review documents.
Original PR description
Reproduce * Open Documents on kanban view * Select a record, it is selected, focused and inspected * Click on the record again, it should remain in the same state but is in fact not inspected anymore. * Click on the record again, it should still be selected, focused and inspected and isn't. Cause: render sequence change on updating records from owl3 refactor. Task-6562749
Event registrations in the customer portal now sort more reliably by event start date. This helps users see events in the expected order and avoids confusion when browsing registrations.
Original PR description
Moving the store on 'event_begin_date' from 'event_enterprise' to 'event (cf com PR) Task-6560355
New employee versions now appear immediately in the correct place on the timeline based on their effective date. This prevents confusion when HR users add current, past, or future versions and removes the need to refresh the page to see the right order.
Original PR description
**Issue** Creating a new employee version places the timeline tab at the wrong end of the timeline instead of its correct chronological position. It only corrects itself after a page refresh. **Steps to reproduce** 1. Open an employee record. 2. Click the **+** button on the timeline to add a new version. 3. Select an effective date (e.g., between two existing versions) or in the future. 4. The new tab appears at beginning of the timeline instead of in chronological order. **Solution** Override `getSortedItems` in the timeline widget to explicitly sort elements by date during the render cycle. This ensures dynamically added versions are instantly placed in their correct chronological position. Added UI tests to verify the ordering. task-6525190
This fixes a purchase stock test setup issue that occurred only in empty databases without demo data. It helps ensure Odoo's automated checks can run reliably in minimal installations, reducing false test failures for developers and maintainers.
Original PR description
Steps to reproduce ------------------ 1. install purchase_stock in a database without demo data 2. run any test in TestReorderingRule 3. observe the error: can't write on invisible field 'tracking' Note: This fix is only relevant when you run the test on an empty database, the demo data enables the Lots & Serial Numbers. Forward-Port-Of: odoo/odoo#286519
This fixes the Record button used for creating or capturing web tours after an internal refactor changed where the recorder is accessed. Business users and testers can again start recording tours from the tour list without hitting a broken action.
Original PR description
… refactor The button called `tour_service.startTourRecorder()`, but that method moved to `TourRecorderPlugin`, exposed on `TourPlugin` as `recorder`. closes odoo/odoo#287203 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 fix prevents test sessions from being unexpectedly rotated during login checks. It makes automated test results more consistent and reduces false failures, helping teams trust test outcomes without changing customer-facing behavior.
Original PR description
The test harness patches the CryptContext object to spend less time hashing to decrease total test runtime. Because the hash parameters have changed, every first login (per transaction) per user will result in a hash rotation. The session_id is also rotated when the password hash rotates. When multiple requests are sent to the server while a session rotation is underway, the session datastore holds either a valid, or expired, or logged-out user session. This is a source of indeterminism in tests that can be prevented by always returning None value for replacement hash. REF Runbot; https://runbot.odoo.com/odoo/error/242811 REF Runbot; https://runbot.odoo.com/odoo/error/233722 Forward-Port-Of: odoo/odoo#287350 Forward-Port-Of: odoo/odoo#285710
This fix stops manufacturing orders from copying display-only sales order lines onto stock moves. It helps keep manufacturing and inventory records accurate by preventing non-product sales lines from being selected or carried forward.
Original PR description
Issue: ====== before this commit, user was able to select a display SOL and at MO confirmation the SOL was copied to the stock move, so we end up with a stock move linked to a display SOL, which is not correct. Solution: ========= - add a domain on the SOL field as first guard layer - add check on the SOL on MO confirmation to prevent copying a display SOL to the stock move opw-6473017 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#287491 Forward-Port-Of: odoo/odoo#286534
Users who request a French PDP migration will now see a clear, consistent message instead of misleading timing information. This helps reduce confusion by avoiding the previous promise that availability would happen "tomorrow" when that was not reliable.
Original PR description
Currently when the user requested a migration, we don't show it in any way to the user, and the only timeline we give ("available tomorrow") is completely false. Because we don't have any field we could use for this client-side (maybe from 19.3 we can use the catch-all-json field) So just make the message same for everybody.
no-task
Forward-Port-Of: odoo/odoo#285599
Forward-Port-Of: odoo/odoo#283594Website builder users can now click inside editable navigation link text without the cursor jumping to the start of the link. This makes editing menu links smoother and prevents small but frustrating text editing interruptions.
Original PR description
Problem: Clicking inside a navigation link in website builder causes the caret to jump to the start of the link element. Cause: `LinkPlugin` unconditionally reset the selection to the start of non-editable link elements, ignoring whether the anchor node was inside an editable child element. Solution: Do not reset selection if the anchor node is inside a `contenteditable` element. Steps to reproduce: - Open website builder. - Click inside a navbar link to place the caret. => Caret no longer jumps to the start of the link. opw-6535386 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#287479 Forward-Port-Of: odoo/odoo#286527
This update corrects how the Belgian payroll expense module connects to the employee form. It helps ensure mobility budget benefits can be archived without errors caused by the form referencing the wrong underlying view.
Original PR description
…rm view Fix the inherit-id of the hr.employee form view in l10n_be_hr_payroll_expense module to match the correct view id. The previous inherit-id was incorrect, which could lead to issues when trying archive mobility budget benefit task-6542045
Campaigns created from an existing marketing automation template now correctly link their generated mailings to the new campaign. This ensures the Mailings button shows the real number of mailings, helping users verify campaign setup at a glance.
Original PR description
Issue ------ Wrong mailing count in the mailing stat button in the campaign form. How to reproduce ------ 1. Open marketing automation 2. Click `New` to create a new campaign 3. Choose an existing template 4. See the `Mailings` stat button The mailing stat button shows 0 but it must display the number of mailings that are used in that campaign. Fix ------ When loading a template, and after the activites and mailings have been created, set the campaign_id of the created mailings to newly created campaign. task-6564215
The website mega menu now keeps proper side spacing when viewed on mobile. This prevents menu content from touching the screen edge, improving readability and the overall mobile website editing experience.
Original PR description
Steps to reproduce: - Open a website in mobile preview. - Add a mega menu and select the "Odoo Menu" template. - Open the mega menu. => Its content touches the left edge of the mobile panel. Before this commit, the mega menu rework [1] removed the horizontal padding override required by nested `.container` elements. After this commit, mega menu containers keep the expected grid gutter on mobile. [1]: https://github.com/odoo/odoo/commit/ff5423bc3aa75e47b210ce98f3efba8c75459a5a
This fix moves a shared styling helper into the core web module so pages can build correctly even when the editor module is not installed. It prevents styling errors on bare databases and removes an unintended dependency between modules.
Original PR description
Since Commit[1], `bootstrap_review_frontend.scss` calls `increase-contrast()`, which web never defined: it lives in web_editor, now html_editor. This hidden dependency went unnoticed as long as the editor module was auto-installed on every database. The issue surfaced as a side effect of Commit[2] which added `http_routing` to html_editor's dependencies. `http_routing` is not auto-installed, so `html_editor` no longer gets installed on a bare database and `increase-contrast()` is undefined. [1]: https://github.com/odoo/odoo/commit/7c69596e7997 [2]: https://github.com/odoo/odoo/commit/bff477da4753 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a display issue where feature icons could become hard to read when a website used a dark color palette. Icons now keep the right contrast whether they use a custom background color or the default shaped icon background, improving readability and visual consistency.
Original PR description
Steps to reproduce: - Select a dark website color palette. - Drag and drop a "Features" snippet onto the page. => The icons use dark text over their dark `bg-o-color-3` backgrounds. Before this commit, [1] gave shaped icons a dark fallback color to make their default light backgrounds readable. The shaped icon selector was more specific than `bg-o-color-*`, so it also overrode the contrast color computed for explicit backgrounds. After this commit, the fallback applies only without a `bg-*` class. Explicit backgrounds keep their automatically contrasted color while icons with the default background remain readable. [1]: c5e16ae task-6485048 Forward-Port-Of: odoo/odoo#287386
Fixed a visual spacing issue in Marketing Automation timelines that could show an unwanted gap after a related kanban view update. This keeps campaign timelines looking consistent and easier to read for users.
Original PR description
Make the gap reset rule more specific, so no gap shows up after the nested kanban fix in community. COM: https://github.com/odoo/odoo/pull/287428 task-6527607
This update adjusts automated tests so they behave correctly when Odoo is configured to use a custom database notification function. It prevents false test failures in messaging and Viva.com payment flows without changing behavior for end users.
Original PR description
# [FIX] bus: adapt test to custom imbus & cron_trigger notifications Similar as to https://github.com/odoo/odoo/pull/178986, When a custom postgresql function is used (`ODOO_NOTIFY_FUNCTION` environment variable is set), testing to listen to imbus should be skipped # [FIX] pos_viva_com: adapt test to custom imbus notifications Similar as to https://github.com/odoo/odoo/pull/178986, When a custom postgresql function is used (`ODOO_NOTIFY_FUNCTION` environment variable is set), the webhook confirmation notification cannot be relied upon to reach the client via `listen imbus` in time. This makes the client fall back to polling `viva_com_get_payment_status` with the real session id, which the test's mock doesn't expect, causing the tour to time out.
This change reorganizes several internal Odoo test modules into a single shared test_base module. It helps simplify maintenance of the test suite without changing day-to-day business functionality for users.
Original PR description
enterprise: https://github.com/odoo/enterprise/pull/130186 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change removes an unused navigation bar template from the web module. It has no expected impact on day-to-day use, but it helps keep the codebase cleaner and easier to maintain.
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 internal website component setup so it uses the current validation approach. It reduces deprecated code and helps keep website-related features easier to maintain without changing visible functionality for users.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`, providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.This update modernizes internal VOIP screen components by replacing an outdated validation pattern with the current approach. It should not change day-to-day behavior for users, but it helps keep the calling interface easier to maintain and less prone to future compatibility issues.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`, providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.This update removes unused internal pieces from the report editor in Web Studio. It does not change the visible experience, but helps keep the codebase simpler and easier to maintain.
Several internal test modules have been reorganized into a single base test area. This keeps the testing structure simpler and easier to maintain without changing business features or user workflows.
Original PR description
community: https://github.com/odoo/odoo/pull/285672
Odoo’s mail and discussion tools now handle temporary messages through the standard server-driven process instead of special browser-side logic. This reduces complexity and helps messages behave more consistently, including unread markers and message ordering.
Original PR description
Before this commit, a dedicated bus handler builds the transient message in JS: it fills the author, the note subtype and an id made of the last known message id plus 0.01, then pushes the message in the message lists of its thread. There is no need for custom JS code here, as all these values can be computed server side. This commit sends the message as a plain store insert, so the handler goes away and the client applies it like any other record. Its id comes from the message sequence. A transient message therefore holds a real id, where two mechanisms counted on a fractional one. The persistent message getters of a thread now test is_transient and isPending, as persistentMessages already does, and the unread separator skips transient messages. https://github.com/odoo/enterprise/pull/130112
This change updates internal automated tests for the Helpdesk live chat feature to use a standard verification method. It does not change customer-facing behavior, but it helps keep future updates safer and easier to maintain.
Original PR description
Enterprise counterpart of "[REF] mail: drop the transient message bus handler", which explains why a transient message is sent as a store insert. Before this commit, the test searches the last bus record of the operator and digs the message body out of its json payload. There is no need for that, as the bus tests provide assertBus. This commit asserts the notification with assertBus. The Load More case expects the whole reply, as the tool compares the payload as a whole. https://github.com/odoo/odoo/pull/280252
Mail and live chat now calculate certain status values only when they are needed instead of storing duplicate internal data. This keeps the underlying messaging data model simpler and reduces unnecessary writes, with no expected change for users.
Original PR description
Before this commit, a value like isVideoStreaming or offlineMembers is a field with a compute. Nothing else writes it, so the field only stores what the compute makes. This commit declares each of them as a computed instead, made on read. A member list writes nothing when it sorts now, so its FIXME goes.
The mail interface’s tab structure was simplified so each tab is defined in one place instead of split across separate header and content lists. This reduces the chance of configuration mistakes and makes future maintenance of mail-related screens easier, with minimal expected impact for end users.
Original PR description
Tabs used two static slots (headers/panels) as a workaround for Owl not supporting dynamic slot names, forcing callers to keep two parallel lists in sync by id. This was cumbersome to could cause errors (tab id set in two different places. Portal a Tab's header into the nav bar instead, so header and panel content live on one <Tab> declared once, including from a single t-foreach. 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 internal component setup across several HR-related Odoo apps to align with the newer interface framework. It helps keep expense, time off, recruitment, skills, timesheet, and work entry screens maintainable and ready for future upgrades without changing business workflows.
Original PR description
- https://github.com/odoo/enterprise/pull/131078 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 refreshes internal HR app screen components to align with the newer interface framework. It helps keep appraisal, attendance, salary, expense, and payroll features stable and easier to maintain without changing day-to-day user workflows.
Original PR description
- https://github.com/odoo/odoo/pull/287445 See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr