Tuesday, November 4, 2025
6 changes · master
Enhancements to existing features
Appraisal forms now include an expand button for employee and manager feedback fields. This opens a larger pop-up editor, making it easier to review and update longer feedback during performance appraisals.
Original PR description
Add the expand button to the employee feedback and manager feedback fields on the appraisal form, click on it, it will open a pop up to update the employee or manager feedback. task-4852953
The Barcode app now shows a more descriptive unpack icon by combining existing icon elements into a custom visual. This helps warehouse users better recognize the unpack action and reduces confusion during barcode workflows.
Original PR description
In barcode the unpack icon isn't descriptive enough. Since font-awesome doesn't provide any icons to convey the proper meaning, this PR stacks 2 fa icons to create a new one. task-5051649 Forward-Port-Of: odoo/enterprise#95749
The bike tax deduction field was removed from the vehicle model information because it is now managed under engine specifications. This avoids showing the same information in two places and helps keep payroll fleet data clearer for users.
Original PR description
for bike, removed tax deduction field from model info since it's now handled under engine specs. task-4653379
The Discuss app now uses a shared synchronization approach for related channel, member, and category information. This reduces duplicate logic behind the scenes, making future maintenance safer while preserving the user experience.
Original PR description
Currently, Discuss Channel, Discuss Channel Member, Discuss Category, have certain fields that need to stay synchronized when updated. This is currently done with a custom implementation of _sync_field_names on each model and orm (write) overrides. Since the synchronization logic is mostly similar across these models, we want to introduce a way to generalize this solution. task-5221092 https://github.com/odoo/odoo/pull/233654
Contract salary template version fields now open using the correct form view configuration. This helps HR users reach the intended contract template screen more reliably and reduces navigation confusion.
Original PR description
The contract template form view is now written on the formview_action directly. task-5082709
Odoo now uses one consistent way to keep internal dictionary data read-only, reducing the chance of inconsistent behavior. This improves reliability and performance for internal processes without changing day-to-day user workflows.
Original PR description
Before this commit, Odoo had two implementations for creating an immutable dictionary. These two implementations have different behaviors and coexist for backward compatibility reasons. The purpose of this commit is to leave only one implementation for the immutable dictionary, called `frozendict`. This implementation makes it truly impossible to modify the mapping. In addition, by default, we don't override internal methods of the dictionary which improves performance (despite the cost during creation). Note 1: Classes `LangData` and `LangDataDict` are adapted as `Mapping` subclasses instead of `ReadonlyDict`. This simplifies their implementation, which is not performance-critical. Note 2: This change is possible because the `MappingProxyType` class implements fallback on the `__hash__` method since version 3.12 (thanks to d357125). task-4808836