Friday, September 4, 2026
2 changes · master
Code cleanup and technical improvements
Odoo now stores only the user's active search choices in page links, rather than the full internal view state. This makes navigation links lighter, less cluttered, and easier to restore reliably when reloading pages or working offline.
Original PR description
Only the search performed by the user (the active facets) needs to end up in the url, not the whole internal state of the view. Pushing the complete state was heavier than necessary and leaked more detail into the url than a search really is. A lightweight representation of "what the user searched for" already existed, introduced for reapplying a search when working offline. Reusing it here avoids maintaining two different ways to describe a search, and pushed us to make that representation a bit more robust so it can be trusted for both purposes. Finally, deciding what belongs in the url is the search model's responsibility, not the action service's: the model is the one that actually knows what a facet is. Moving that decision there removes an indirection the action service had no real reason to carry.
Web Serial device handling has been moved out of Point of Sale into a shared module. This makes it easier to support serial-connected devices, such as scales, in other Odoo apps without duplicating work.
Original PR description
Enterprise PR: <https://github.com/odoo/enterprise/pull/129510> Before this commit, the code was interfacing with a Web Serial scale was included directly in the Point of Sale module. After this commit, the Web Serial code is extracted into a new module `iot_webserial`, which `point_of_sale` now depends on. This allows Web Serial devices to be used in other modules without duplicating the code. task-6485996 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr