Daily updates from Odoo
Wednesday, June 10, 2026
43 changes · master
New functionality added to Odoo
This update introduces two new work entry types for Belgium payroll – ‘Public Holiday Working (Without Recovery)’ and ‘Public Holiday Working (To Recover)’. These additions allow for more accurate tracking of employee time worked during public holidays, ensuring compliance with Belgian labor laws and improving payroll reporting.
Original PR description
[IMP] l10n_be_hr_payroll: new public holiday time work entry type I added two new work entry type Public Holiday Working (Without Recovery) and Public Holiday Working (To Recover) task - 6275564
This update adds support for Belgian unemployment benefits within the payroll system. It includes new salary rules and adjusts the departure flow to accurately reflect payments related to economic unemployment, ensuring compliance with local regulations.
Original PR description
-Salary Rules and parameters -Change in departure flow for unemployment Task#5914315
This update introduces an automated system for generating and posting payslips for certain employee types, such as company executives, where payroll data is rarely reviewed by HR. A daily cron action now checks for these types with approaching closing dates and automatically creates and validates payruns, streamlining the payroll process.
Original PR description
For some employee types e.g. company executive, payslips are most of the time always the same and not managed by any HR people (as they can not see the payroll data of company executives), so we need a mechanism to automate the generation of the payslips. This PR adds an option on employee type to automatically post the payslip run when the closing date is reached. It does so through a cron action that runs daily and checks if there are employee types with auto post enabled and a closing date reached, then creates and validates payruns for those employee types. task-6191997
This update introduces a new wizard within the Odoo Enterprise system that guides users through the process of preparing and submitting their VAT returns. The wizard generates the necessary XML files and displays any errors or warnings, allowing users to easily download and submit their VAT returns directly. This simplifies the VAT reporting process and improves accuracy.
Original PR description
- Add a submission wizard providing instructions for users on how to submit the VAT return. - Show XML generation errors and warnings in the wizard. - Allow users to download the XML directly from the wizard. task-5403651
Enhancements to existing features
This update clarifies who created replenishment orders in the Odoo chatter logs. Previously, all replenishments were attributed to 'OdooBot,' making it difficult to track manual actions. Now, the creator is accurately recorded, enhancing accountability and auditability for replenishment orders.
Original PR description
Purpose: ================= When a user replenishes a product by clicking the `Order button` in the `Master Production Schedule` view, a `Manufacturing Order` is created. Currently, the chatter logs…
Purpose: ================= When a user replenishes a product by clicking the `Order button` in the `Master Production Schedule` view, a `Manufacturing Order` is created. Currently, the chatter logs show `OdooBot` as the creator of the record. This makes it unclear, as all replenishment records show OdooBot as the creator, preventing users from distinguishing manually placed replenishment from those automatically generated by OdooBot. Recording the actual user (logged-in user) in the chatter who triggered a manual replenishment improves accountability and provides clear visibility, making it easier to audit. With This Commit: ================= When a user triggers a manual replenishment, the system sets the creator of the record to `current user` for manual replenishment or otherwise to `OdooBot` for auto-generated replenishments. This ensures the chatter correctly shows who actually created the record. This makes it easier to track who placed manual replenishments and improves accountability. Community PR : https://github.com/odoo/odoo/pull/227827 TaskID–4893809
This update introduces automated warnings for key payroll reports (281, 273S, 274, and Dmfa) to help payroll officers avoid missed deadlines. The system now provides customizable alerts with clear instructions and actions, streamlining the reporting process and reducing the risk of errors. This enhancement improves operational efficiency and ensures timely report submission.
Original PR description
Purpose: A lot of reports must be done and submitted monthly, quarterly, yearly. For a payroll officer it can quickly become a mess and he can quickly miss a deadline. Current behavior: - added new options for `closing_on` on dashboard warnings - added more fields to be customizable in the python code of the warning (warning_title, warning_description, warning_deadline, warning_button) - added warnings for 281, 273S, 274 and Dmfa reports with the corresponding dialogs and needed actions task-id: 5909165
This update introduces a new report for payroll officers, providing a clear view of employee end-of-service benefit amounts. Officers can now control the report's parameters and export the data for detailed analysis, improving payroll accuracy and reporting.
Original PR description
In order to facilitate the usage of odoo for payroll officers and give the required visibility over the end of service benefit amount for all employees, a separate report has been introduced which will allow the officers to control the end date and employees they are inspecting and export it for further investigation. Task: 4860227
This update streamlines the processing of subscription renewals within Odoo Enterprise. By moving renewal logic to a queued, post-processing system, it improves efficiency and aligns with the existing deferred payment confirmation process. This change enhances the reliability and performance of subscription renewals.
Original PR description
*: `appointment_account_payment`, `sale_subscription`, `sale_subscription_external_tax` See the related community commit for the motivation behind these changes. The auto-renewal cron of `sale_subscription` was adapted to no longer assess transaction states or run business-specific logic synchronously, instead relying entirely on post-processing, thus unifying that flow with the deferred payment confirmation path. task-4309611 See also: - https://github.com/odoo/odoo/pull/255611
This update introduces a new button on the salary rule category list view, providing a quick way for users to see all associated salary rules – including those within sub-categories. This streamlines the process of managing salary rules and simplifies reporting.
Original PR description
This commit adds a fast way to access this information by introducing a smart button directly on the salary rule category list view, allowing users to view all the salary rules linked to a category (including those connected to its sub-categories). Task Id : 6283798
This update enhances the employee calendar view within payslips by automatically graying out days with no scheduled attendance or when an employee isn't assigned to work. This provides a clearer visual representation of an employee's working hours, simplifying payroll processing. The change was implemented to improve the accuracy and usability of the payroll system.
Original PR description
In this commit, expected: - Gray out the calendar when no attendance is scheduled or the employee is not supposed to work Step to produce - Create Working Hours schedule, remove Friday under working hours tab - Assign the working hours schedule to employee - Create new payslip for employee - Click Calender SmartButton to see Employee Calender View from Payslip task: 6260186
This update refines how Odoo calculates worked days for payroll, ensuring more accurate and reliable pay calculations. The changes address a previous calculation error and improve the overall stability of the payroll process. This update primarily impacts the HR and Payroll modules.
This update clarifies how half-day work periods are displayed on payslips. Previously, half-days were grouped with full days, making it difficult to understand total work hours. Now, half-day entries are clearly separated, providing a more accurate and transparent view of employee earnings.
Original PR description
In order to clearly distinguish work days that extended full day or half day, the worked days under the payslips will not display both entries as separate types with the half days flagged Task: 5975762 Forward-Port-Of: odoo/enterprise#118869 Forward-Port-Of: odoo/enterprise#112328
This update streamlines the configuration of delivery methods (BPost, Easypost, Envía, Sendcloud, Shiprocket, Starshipit) by consolidating settings within the main Stock configuration. This simplifies the user interface and improves overall usability for managing delivery options.
Original PR description
easypost, envia, sendcloud, shiprocket, starshipit -------------------------------------------------------------------------------- These delivery connector modules no longer need to define their own Inventory configuration entries and views since delivery methods and connectors are now managed from a single place in the Stock configuration. This cleanup removes obsolete views and settings so users can configure all delivery methods from a single, cleaner interface, improving overall usability. Community PR:- https://github.com/odoo/odoo/pull/242503 Upgrade PR:- https://github.com/odoo/upgrade/pull/9208 TaskId:- 5380595
This update streamlines the Discuss meeting experience by adding a 'Your Meeting is Ready' banner and simplifying controls for adjusting the view and inviting participants. The changes improve usability and make it easier to start and manage meetings within Discuss.
Original PR description
Rework the in-call/meeting experience in Discuss: - Add a "Your Meeting is Ready" banner shown while alone in a call, surfacing the permanent share link and a shortcut to invite people; it hides once…
Rework the in-call/meeting experience in Discuss: - Add a "Your Meeting is Ready" banner shown while alone in a call, surfacing the permanent share link and a shortcut to invite people; it hides once another participant joins. Starting a "New Meeting" no longer auto-opens the invite panel. - Add an "Adjust view" dialog to pick the meeting grid layout (auto, tiled, spotlight, sidebar, discuss); the choice is persisted in user settings. Layout actions (Adjust view, Picture in Picture) move into a "More" menu in the call bar, while Fullscreen keeps its own corner button and Exit Fullscreen sits next to Chat in fullscreen. - Mirror the meeting share link in the address bar while in a call and restore the regular Discuss URL once it ends. - Starting a meeting now enters fullscreen and auto-hides (unpins) the meeting channel from the sidebar. - Open the invite UI as a single centered dialog everywhere (openChannelInvitationDialog); the member-list button reads "Add People" in the meeting view. Drop the "Generate new invite link" button. Along the way, tidy up the Discuss sidebar and messages: - Only show the Bookmarks mailbox when it holds at least one message. - Move "View hidden conversations" out of the sidebar (still reachable from the command palette) and restyle the "New Meeting" button. - Keep fewer inline message quick actions (3 instead of 4): Copy Text and Copy Link move to the expanded actions menu, and "Copy Link" is renamed "Copy Message Link". - Simplify the meeting channel name, e.g. "Meeting, Jan 1". task-6260047
This update enhances the visual presentation of the holiday attest report within the Odoo Enterprise system. The changes focus on reworking the layout to improve readability and clarity for users reviewing employee holiday information. This ensures accurate and easily understandable reports for payroll and HR processes.
Original PR description
This commit reworks the layout of the holiday attest report. task-5936242
This update enhances the Odoo Enterprise integration with Google Reserve by simplifying the synchronization process for users. It includes clearer troubleshooting guidance and prevents accidental deletion of Google Reserve merchants when linked to synchronized appointment types. This improves the overall user experience and data integrity.
Original PR description
…UI/UX Make it easier for end users to synchronize their appointment type with Google Reserve by adding links to the documentation as well as more complete banner messages for troubleshooting. Also prevent google.reserve.merchant deletion if they are used inside a synchronized appointment.type. Task-6148700
Resolved issues and error corrections
This update ensures field service technicians are routed to the correct job site by automatically selecting the delivery address associated with a project or task, instead of the company headquarters. This resolves issues where technicians were directed to the wrong location, improving efficiency and accuracy.
Original PR description
Currently, when creating a planning shift and selecting a project or task, the shift's customer (`partner_id`) defaults to the main partner (the parent company). This causes issues for field service technicians, as the Map view routes them to the company headquarters instead of the actual physical job site. This commit improves the behavior by attempting to fetch the 'delivery' child contact of the partner linked to the task or project. If a delivery address exists, it is set as the default on the shift. If it does not exist, it falls back to the main partner. Task-6132902
This update resolves a test failure caused by incorrectly formatted data being passed. Specifically, the system was sending raw PDF content instead of the expected base64 encoded data, leading to an error. This fix ensures the tests run correctly and maintains data integrity.
Original PR description
This commit fixes an error when running the `test_employee_job_change` test on Python 3.14, which is stricter about base64 validation. Ultimately, the root issue was that raw PDF content was being passed when a base64 representation was actually expected (which is obviously invalid base64). runbot-938173 Forward-Port-Of: odoo/enterprise#119786 Forward-Port-Of: odoo/enterprise#118523
This update resolves a potential error in the Hong Kong payroll calculation that could have occurred when specific conditions were met (null resource calendar or zero hours per week). The fix adds a check to prevent division by zero, ensuring accurate payroll processing for Hong Kong employees. This improves the reliability of the payroll system.
Original PR description
. Add a check for a null resource calendar and zero hours per week. task-6229271 Forward-Port-Of: odoo/enterprise#117685
This update fixes a visual issue with the indeterminate checkbox in the Enterprise version of Odoo. The change ensures the checkbox's indicator is consistently visible across all environments, resolving a prior workaround. This improves the overall user experience and consistency.
Original PR description
The indeterminate checkbox is a [standard API](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:indeterminate#:~:text=true%3B%0A%7D-,Result,-Play) (JS and CSS only as @pparidans…
The indeterminate checkbox is a [standard API](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Selectors/:indeterminate#:~:text=true%3B%0A%7D-,Result,-Play) (JS and CSS only as @pparidans noted), which has been implemented in Odoo in a couple of different ways, and is currently not working out-of-the-box (enterprise only): ------ PROBLEMS: - Original implementation was with JS because of a (now fixed) owl issue: see [ web/static/src/search/search_panel/search_panel.xml](https://github.com/odoo/odoo/blob/c0c82927f2e7e2a54749a0e081d8a03b9ef654e2/addons/web/static/src/search/search_panel/search_panel.xml#L99-L103) & https://github.com/odoo/owl/issues/713 - The new intended odoo-api for the indeterminate checkbox (`t-att-indeterminate` or `<Checkbox indeterminate="...")` doesn't work with enterprise installed because: `web_enterprise/static/src/scss/bootstrap_overridden.scss` sets `$component-active-color: unset !default;` & Bootstrap's uses `$form-check-input-indeterminate-color: $component-active-color` therefore resolves to `unset`, making the dash invisible. -> This was fixed in studio only (odoo/enterprise#81372) but should apply globally. ------ FIXES: - Refactor the JS workaround to use the `t-att-indeterminate`, simplifying the code in `web` (with the help of owl magic) - Apply the studio fix globally to enterprise module (we keep the studio fix with custom svg because the color pattern of studio is a bit different, so removing the custom svg makes the UI look less good). Community PR: https://github.com/odoo/odoo/pull/268491
This update ensures that the phone numbers dialed through the Odoo Enterprise system now use the sanitized E164 format, rather than the raw, user-entered number. This change improves accuracy and reliability when making calls or sending messages, aligning with updated phone widget functionality.
Original PR description
This commit ensures that the sanitized phone number is the one passed to the softphone + displayed instead of the raw phone number. Task-5184717 Community: https://github.com/odoo/odoo/pull/261001
This update fixes an issue where the manual prorata year selection for Belgian VAT returns wasn't being saved correctly. Previously, the system defaulted to the current year regardless of user input. The fix ensures that the user's chosen prorata year is accurately reflected in the generated VAT XML, improving data accuracy and compliance.
Original PR description
### Issue before this commit: Manually modifying the "Prorata Year" in the Belgian VAT return lock wizard was ignored. The generated XML always exported the tax return's current year instead of the user's input. ### Steps to reproduce the issue: 1. Download Accounting and l10n_be 2. Switch to BE company 3. Open a tax return for 7 April (as an example) 4. Try to validate the VAT March 2026 ### Cause of the issue: The prorata_year field was a computed field lacking the store=True attribute. Upon validation, the unsaved manual input was lost, triggering the compute method which blindly overwrote it with the default year. https://github.com/odoo/enterprise/blob/bce04ce24b66fb1a2481274eb3aebdc30a62766e/l10n_be_reports/wizard/vat_return_lock_wizard.py#L18 ### Reason to introduce the fix: Adding store=True ensures the user's manual override is persisted in the database and correctly injected into the Intervat XML payload. opw-6165520
This update consolidates three separate rules related to unpaid leave into a single, more efficient process. This change creates a central source of truth for calculating unpaid days, improving accuracy and reducing complexity in payroll processing. The update also includes a related test to ensure the new rule functions correctly.
Original PR description
Purpose: As of now, we have 3 seperate rules and all of them deal with the same deductable items which is (Unpaid leave). so instead of doing that, we need to have one source of truth for unpaid days. Current behavior: - dropped the out of contract salary rule - removed the fully unpaid sick leaves from sick leave deduction rule - grouped unapid leaves, unpaid sick leaves and out of contract days under one rule - reintroduced deleted test task-id: 6229123
This update strengthens the validation process for recruitment integration settings. Specifically, a required label has been added to the integration_state_selection field, ensuring data integrity and preventing errors. This improves the reliability of the recruitment process by enforcing correct configuration.
Original PR description
This commit adds a label to the option of the field integration_state_selection. The label is a mandatory property and an error is thrown if it is not given.
This update fixes an issue where the activity rate used in Swiss payroll calculations was incorrectly tied to individual employees. Now, the rate is based on the Odoo Enterprise version, ensuring accurate and compliant payroll processing for Swiss businesses. This change improves the reliability of financial reporting and payroll accuracy.
Original PR description
…ployee Forward-Port-Of: odoo/enterprise#119658
This update streamlines the payment refresh button in the Odoo Enterprise system. Previously, the button was always visible, leading to unnecessary system calls. Now, it only appears for payments that are actively being processed (pending or unsigned), optimizing performance and reducing strain on the system.
Original PR description
… batches The refresh button was always shown, which could cause unnecessary calls to OdooFin if the payment is finalised (accepted, rejected or canceled). With this change, the button is shown only for payments in progress (pending or unsigned). task-6103900 Forward-Port-Of: odoo/enterprise#113182
This update fixes an issue where flexible schedules were incorrectly calculating work hours, leading to inaccurate payroll totals. The change decouples the hour splitting logic, now relying on specified daily hours instead of attendance hours, ensuring accurate half-day and full-day calculations.
Original PR description
Steps: - Create half day off for an employee - Create a full day off of the same type - Create a payslip for the employee Issue: - Due to the lack of attendance hours in the flexible schedules, the _get_work_hours_split_half is unable to split half day and full days work entries of the same type. - Half worked days will be rounded up which affects the total number of work days in a month Solution: The approach was to decouple the work_hours_split_half functionality from the attendance hours and rely on the specified hours_per_day instead. This accurately splits half and full days. Task: 6253675 Forward-Port-Of: odoo/enterprise#118968 Forward-Port-Of: odoo/enterprise#118836
This update refines the calculation of worked days for payroll, addressing inconsistencies and improving accuracy. The changes enhance the reliability of payslip generation, ensuring employees are paid correctly based on their actual working hours. This update impacts the core payroll functionality.
This update fixes a technical issue that caused a traceback when generating the annual report within the knowledge app. The fix ensures proper handling of component data, preventing errors during loading and improving the user experience. This resolves a minor performance concern.
Original PR description
Before this commit: when going to the annual report from the knowledge app, select the balance sheet, there's a traceback loading the embedded component. The reason is the props is being reassigned inside the component. Related commit: 8bde58bd2ec1b4925552cebcf5fb3159d88eea00 After this commit: we properly create a value for the translated name in the component and its template. task-6292898
This update streamlines the context keys used when creating accounting entries for work orders. Previously, multiple keys performed similar functions, leading to potential confusion. This change consolidates and clarifies the context, ensuring more reliable and predictable accounting processes.
Original PR description
Replace the `employee_change_id` context key passed when calling `_create_analytic_entry` by adding an optionnal parameter, `previous_employee_id`. Community PR: odoo/odoo#265722 Upgrade PR: odoo/upgrade#10288
Features or functions removed from Odoo
This update removes a redundant and potentially confusing option within the enterprise sale timesheet functionality. Previously, users could input negative values on timesheets, a feature that was later disabled but remained as an option. This change simplifies the system and aligns with current best practices.
Original PR description
- The '03_timesheet_revenues' option was available because it was previously possible to create timesheet with negative values.This feature was later removed, but the option was left. - removed 03_timesheet_revenues from the possible billable types. task-4610889
This update removes jQuery, a legacy JavaScript library, from all Odoo Enterprise modules. This simplifies the codebase, improves performance, and reduces potential security vulnerabilities. The change was driven by a community contribution and aligns with Odoo's ongoing efforts to modernize its technology stack.
Original PR description
[REM] *: remove jQuery from all assets *: knowledge, pos_iot, pos_self_order_iot, sign This commit removes jQuery in every asset where it was still included and clean comments still referencing old jQuery logic. Precision: `web._assets_jquery` can be removed from `_get_url_to_cache` as it's not used anymore since odoo/enterprise@c120aa2a7e8. Community PR: odoo/odoo#250982 task-5187485
Code cleanup and technical improvements
This update refactors the Web Studio module to use a more modern and efficient approach to data handling. Specifically, it utilizes 'contextvars' to manage data within the module, leading to better performance and maintainability. This change improves the underlying code structure without impacting how users interact with Web Studio.
Original PR description
https://github.com/odoo/odoo/pull/256688
This update modernizes how Odoo Enterprise tracks relationships between records using Owl 3's signal system. It replaces older 't-ref' references with the new Owl 3 signals, ensuring compatibility with the latest Odoo version. This change improves the stability and future-proofing of the Enterprise Companion.
Original PR description
## `t-ref` string refs → Owl 3 signals (enterprise companion) Enterprise side of the Owl 2 → Owl 3 ref-semantics migration. Pairs with the community PR of the same branch name (`master-tref-pr-3-nby`). ### Scope **Leaf 1** companion — enterprise consumers of the migrated mail/web components. ### Notes - Rebased onto current enterprise `master` (2026-06-10). - Community PR: odoo/odoo#269266
This update modernizes how Odoo Enterprise tracks related records by migrating to Owl 3's signal-based referencing system. This change improves the underlying architecture and ensures compatibility with future Owl releases. It primarily impacts components used in the Enterprise Companion.
Original PR description
## `t-ref` string refs → Owl 3 signals (enterprise companion) Enterprise side of the Owl 2 → Owl 3 ref-semantics migration. Pairs with the community PR of the same branch name (`master-tref-pr-4-nby`). ### Scope **Leaf 2** companion — enterprise consumers of `AutoComplete` / input hooks. ### Notes - Rebased onto current enterprise `master` (2026-06-10). - Community PR: odoo/odoo#269267
This update modernizes how Odoo Enterprise references documents and other data by transitioning to Owl 3's signal system. This change improves the underlying architecture and ensures compatibility with future Odoo releases. It impacts several key modules within the Enterprise edition.
Original PR description
## `t-ref` string refs → Owl 3 signals (enterprise companion) Enterprise side of the Owl 2 → Owl 3 ref-semantics migration. Pairs with the community PR of the same branch name (`master-tref-pr-5-nby`). ### Scope **Leaf 3** companion — `documents` `useNestedSortable`, datetime, call-card `useHover` consumers. ### Notes - Rebased onto current enterprise `master` (2026-06-10). - Community PR: odoo/odoo#269268
This update modernizes the way Odoo Enterprise tracks signatures by transitioning to Owl 3's signaling system. It improves the underlying architecture for signature requests, aligning with the latest Owl version and ensuring compatibility with future updates. This change primarily impacts the Enterprise Companion module.
Original PR description
## `t-ref` string refs → Owl 3 signals (enterprise companion) Enterprise side of the Owl 2 → Owl 3 ref-semantics migration. Pairs with the community PR of the same branch name (`master-tref-pr-6-nby`). ### Scope **Leaf 6** companion — sign `ControlPanel` / `NameAndSignature` adaptation. ### Notes - Rebased onto current enterprise `master` (2026-06-10). - Community PR: odoo/odoo#269269
This pull request updates the way attachment previews are handled across several Odoo modules, specifically incorporating a new syntax for OWL 3. This change improves the consistency and reliability of attachment previews within the Enterprise edition, ensuring better functionality for users.
Original PR description
Enterprise counter-part. task-6255532 https://github.com/odoo/enterprise/pull/118962
This update simplifies how controllers access website-related data. Previously, a function called `get_current_website` was used, which has been replaced with a more direct method leveraging the Odoo environment. This change ensures consistent website functionality across various modules and improves maintainability.
Original PR description
All locations that used `get_current_website` can be replaced in the controllers because `website_id` is automatically present in the `context` for routes with the attribute `website=True`.
This update simplifies invoice processing by merging the `l10n_co_dian` module into the core `l10n_co_edi` module. Additionally, the `l10n_co_edi_mandate` module is also integrated, streamlining the system and reducing complexity. This change improves maintainability and aligns with the primary invoice delivery method.
Original PR description
Since the main, and only, way to send invoice is using dian it only makes sense to merge the `l10n_co_dian` module into the main `l10n_co_edi` module. Since the `l10n_co_edi_mandate` module was only introduced as a separate module because of stable policy we also merge it into `l10n_co_edi`. task-5113421
This update refactors the connection between overtime records and employee attendance, improving data accuracy and efficiency. Previously, a workaround was used, but this commit establishes a proper Many2One relationship, aligning with best practices and simplifying future maintenance. This change enhances the reliability of attendance tracking.
Original PR description
In odoo/odoo#241457 we made the relationship between overtime and attendance a m2o
using time_start and employee_id as keys to attribute an overtime to its attendance.
This wasn't ideal but was what was possible with the stable policy. In this commit we
complete that fix by changing the relationship to a proper Many2One.
task-6172452This update refactors internal code within several Odoo modules to utilize a new 'plugin' architecture. This change enhances modularity and flexibility, allowing for easier future updates and integrations within the Odoo platform. It primarily impacts the underlying structure of various modules, improving maintainability and scalability.
This update streamlines the Odoo IoT device model by removing redundant information like manufacturer and device subtype. This change simplifies the underlying code, making it easier to maintain and update, which ultimately reduces development time and potential issues.
Original PR description
This commit aims to simplify the IoT device model by removing unnecessary data such as: - manufacturer, - device subtype (was only used for printers), As usual, the goad is to reduce complexity of the code to improve maintainability. see odoo/odoo#258127