Daily updates from Odoo
Friday, June 26, 2026
12 changes · master
Enhancements to existing features
Helpdesk now prevents duplicate tag names in the English locale, treating names like "Bug" and "bug" as the same. This helps keep tags consistent, avoids confusion for users, and automatically cleans up existing duplicates by keeping only one version.
Original PR description
Added a unique index to ensure that tag names in the English locale (en_US) are case-insensitively unique.
This change prevents duplicate tag names such as:
---------------------------------------------------------------------
- Bug, bug
- Saas, saas, SaaS
When duplicates exist, only the one with the lowest ID is retained, and others are removed.
A user-friendly error is raised if a new tag with a conflicting name is created.
task: 4679010This change adds new payroll configuration options in the settings area, making it easier for HR teams to adjust payroll behavior without needing technical help. It helps streamline setup and gives businesses more control over payroll-related preferences.
Original PR description
Task: 6111217
The Korean Balance Sheet and Profit & Loss reports have been rebuilt to match the new chart of accounts. This helps ensure financial statements stay accurate and consistent with the latest accounting structure.
Original PR description
Rebuild the Korean Balance Sheet and Profit & Loss on top of the new chart of accounts. Community PR: https://github.com/odoo/odoo/pull/268170 Upgrade PR: https://github.com/odoo/upgrade/pull/10397 task-6246407
The manufacturing shop floor and barcode screens now use the same updated wording as the main manufacturing flow, replacing “Close Production” with “Produce” where appropriate. This keeps the user experience consistent and makes the action clearer for operators, especially when completing work orders or handling backorders.
Original PR description
~~Now that we distinguish 'Close Production' and 'Produce Partially' (qv odoo/odoo#260322), we need to adapt the logic to the barcode module as well. This is mostly just a matter of attaching the `skip_backorder` and `close_production` context parameters passed to the action, with the rest being cosmetic changes and adjustments to tests that expect the consumption warning wizard or a different button.~~ ~~Now that the original spec was scrapped, we just rename 'Close Production' to 'Produce' and implement a separate backorder wizard for workorders.~~ Scratch that. We go back to using the same wizard, just a different form view. Task ID: [5901969](https://www.odoo.com/odoo/my-tasks/5901969)
The Belgian payroll rules were updated to reflect the new 2024 economic unemployment daily compensation amount. This keeps payroll calculations aligned with the latest official values and helps ensure correct employee compensation handling.
Original PR description
Update 2024 economic unemployment daily compensation salary rule parameter value to 2.0 task-6334026
The payroll rules for the Belgian mobility contribution are now calculated with dynamic parameters, which makes the calculation more accurate and easier to maintain. The DMFA PDF report was also aligned with the XML version by adding the missing occupation information, helping ensure consistency in submitted payroll documents.
Original PR description
This fix allows the mobility contribution 869 rule to be calculated using dynamic parameters Add the missing occupation informations in the dmfa pdf exaclty as dmfa xml Task Id: 6259967
The softphone contact list is now cleaner and easier to use, with better search results and no unnecessary grouping by first letter. Users can also search contacts by email correctly, and the keypad’s extended search view now matches the main address book experience, including highlighted matches and editable searches. This makes finding the right contact faster and less confusing.
Original PR description
[IMP] voip: remove grouping by initial in softphone contacts listing This commit keeps the alphabetical / phone sort, but no useless groups anymore. Idea: it was only to have a "pretty" listing but…
[IMP] voip: remove grouping by initial in softphone contacts listing
This commit keeps the alphabetical / phone sort, but no useless groups
anymore. Idea: it was only to have a "pretty" listing but it will
prevent more advanced sorting to make sense in the future (e.g. showing
most called contacts first). This also simply improves Owl performance
as a bonus.
[IMP] voip: use AddressBook for keypad "more" searches
Before this commit, the keypad component was implementing its own
contact searches, with unsorted results. Indeed, with the demo data,
search "m" would for example have "Mitchell Admin" first, because it
was loaded first by discuss for the presence status, then the rest of
the contacts having "m" in their name.
The "more" keypad search view now uses the AddressBook component,
sharing the UI and its features.
The keypad "more" view had 2 extra differences though:
- Search match highlighting
- T9 searches
Those 2 features are now added in the AddressBook component.
Bonus: while in the "more" keypad view, you can now edit the search.
[IMP] voip: (really) allow contact search by email
Before this commit, when a contact was searched in the softphone,
contacts were loaded in the store based on their name, phone... and
email. But then the softphone filtered the store contacts by name and
phone... but not email. This lead to this weird behavior:
- Have a contact zzz with email yyy@example.com
- Have 50 contacts alphabetically before zzz
- Search "y" => You don't see zzz
- Remove the "y" search
=> You see 13 contacts + zzz (because it was loaded before)... if you
scroll, contacts will appears between the 13 contacts and zzz.
Now, you will at least see zzz during the "y" search making the last
step less confusing, and allowing to actually take profit of the search
by email that is already done loading-wise.
Note that this is also a first step towards fixing problems introduced
by [1] a long time ago, when the softphone used the Store to gather the
loaded contacts, while before the tab components themselves were in
charge of loading and displaying the loaded contacts.
[1]: https://github.com/odoo/enterprise/commit/bbdb033031720365c448c6f3de40906ee0c4243e
task-5871346Resolved issues and error corrections
This change stops the planning process from trying to auto-plan or send schedules when no start or end dates have been set. It helps avoid unexpected errors and makes the planning workflow more reliable for users.
Original PR description
Add a guarding condition to the auto-plan or send behavior to avoid doing those operations when no start/end dates are defined --- Task: 6312650
When a customer’s information is refreshed from the Colombian government service, the updated legal name and email are now also reflected in Point of Sale right away. This avoids showing a temporary name in POS and ensures staff see the correct customer details immediately after the refresh.
Original PR description
Step to reproduce: - install l10n_co_dian and pos - open pos and click on create a new partner from partner list - enter name ex. "temp", identification number, click on form - notice a `refresh…
Step to reproduce: - install l10n_co_dian and pos - open pos and click on create a new partner from partner list - enter name ex. "temp", identification number, click on form - notice a `refresh icon` is visible: click on it. Observation: - the dialog is closed and partner is selected with "temp" name Expected: - with valid government credentials and a valid identification number, the refresh action should also update the partner data on the POS side Cause: - the refresh button triggers the `button_l10n_co_dian_refresh_data` action, which fetches the legal name and email from the government service - although the backend record is correctly updated, the new values are not immediately synchronized with the POS - when the refresh button is clicked, editPartner() first triggers `web_save` using the temporary "temp" name and immediately reads the partner data afterward - the refresh action executes later and updates the contact with the fetched legal information, but the POS is not aware of these subsequent changes Fix: - read the data again if there is any update caused by this action. - this is done by overriding `afterExecuteActionButton` of FormController class opw-6198035 Forward-Port-Of: odoo/enterprise#117527
Reporting menu items that were previously visible with only the Invoicing app are now available only when the Accounting app is installed. This keeps the Invoicing experience simpler and ensures users see only the reports relevant to their setup.
Original PR description
The invoicing app provides access to many reports which are not needed for the purposes related to invoicing. These reports have been moved to only be accessible if the accounting app is installed instead of being available by default with just the invoicing app. task-6298711
This fix corrects an incorrect data key used in the Belgian payroll reporting process. It helps ensure payroll information is sent and interpreted properly, reducing the risk of reporting errors.
Original PR description
Task#6333132
Bank reconciliation now shows child contacts consistently when choosing a partner, matching the behavior of the automatic reconciliation flow. This prevents users from being unable to select the correct contact for customer payments linked to a subsidiary contact.
Original PR description
When creating a bank statement line, we can not set an individual contact that is a children of a company contact. However, when clicking on the 'Set Partner' button, all contacts are shown in the modal list view. This commit aligns the domain coming from the 'Set Partner' button with the domain from the 'partner_id' field of the auto reconcile wizard Steps: - Have a contact X, with a child contact Y - Create and confirm an invoice for contact Y, amount 1000 - Create a bank statement line for 1000 -> You can not select Y, only X - Click 'Add & Close' - Click on 'Set Partner' button -> Y is displayed opw-6205154 Forward-Port-Of: odoo/enterprise#121354 Forward-Port-Of: odoo/enterprise#118036