Daily updates from Odoo
Friday, June 26, 2026
28 changes
5 changes
Enhancements to existing features
The bank reconciliation screen now has a simpler, dedicated layout on mobile devices, making it easier to review and match items. It also shows the statement date, reference, and remaining balance above the list so users have the needed context while reconciling.
Original PR description
Current behavior before PR: On mobile devices, the bank reconciliation dialog relied on the base kanban view of account move line, which is difficult to handle and lacked contextual information about…
Current behavior before PR: On mobile devices, the bank reconciliation dialog relied on the base kanban view of account move line, which is difficult to handle and lacked contextual information about the statement being reconciled. Desired behavior after PR is merged: The bank reconciliation flow on mobile uses a dedicated kanban view with a simplified layout. An informational line is displayed above the main view, showing the statement date, reference, and remaining balance for better context. Changes implemented: - Added a mobile-specific kanban view for bank reconciliation dialog. - Displayed an information line above the kanban view with statement date, reference, and balance like desktop view for bank reconciliation dialog. - Moved 'onSelectionChanged' to 'BankRecSelectCreateDialog' and shared it through 'bankRecInfo', moved 'remainingAmountFormatted' into the state, and removed the duplicated getters from the list and kanban renderers. - Kept the existing desktop layout and behavior unchanged. - Added a HOOT test to check the mobile bank reconciliation dialog. task-5502469 Forward-Port-Of: odoo/enterprise#106565
The timesheet Assistant Manager now makes more reliable suggestions when helping users fill in timesheets. This reduces incorrect or confusing recommendations and makes the time-entry workflow smoother.
Original PR description
This commit's purpose is to add a few bugprovement to the timesheet assistant manager. Those imp concerns mostly the timesheets suggested by the assistant manager. task-6179842 Forward-Port-Of: odoo/enterprise#118494
This change improves how dialog windows are handled on the web interface by making style checks more targeted. The result is smoother performance during actions like window resizing, scrolling, and table sorting.
Original PR description
Avoid using the :has() selector and use a specific style on the `documentElement` instead to replicate the same behavior. This reduces work during the "Recalculate Style" phase. It lowers recalculation time during window resizes, heavy scrolling, and table sorting by preventing broad selector matches and limiting style checks to elements with the specific class. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#272118
The PDP registration flow now lets users adjust their email during signup, which avoids issues if the original value needs to be changed. It also adds extra protection to the connection process and resets the KYC status when deregistering, so the verification can be started again if needed.
Original PR description
It seems the readonly can cause some problem because the user might want to change it during the registration. Also adding the hash signed to the connect route to make sure nobody can impersonate the kyc Also clicking on the button_deregister_pdp_participant action will now reset the kyc status so that you can do it again if needed. task-626574 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268833
This update improves how French companies are guided through electronic invoicing and PDP registration. It replaces confusing Peppol messages with clearer French e-invoicing wording, shows stronger prompts to register when needed, and streamlines the registration process so it is easier to complete and less error-prone.
Original PR description
#### [IMP] account_peppol,l10n_fr_pdp: rework PDP registration If PDP is not installed but Peppol is installed we suggest installing the PDP module for French companies - in the send & print instead…
#### [IMP] account_peppol,l10n_fr_pdp: rework PDP registration
If PDP is not installed but Peppol is installed we suggest
installing the PDP module for French companies
- in the send & print instead of the following warnings
- "You can send this invoice electronically via Peppol." (what is peppol)
- "partner has requested electronic invoices reception on Peppol."
- in the send & print for any French company that is not on PDP
(this warning can be disabled by setting the system parameter
`account_peppol.disable_pdp_warning` to true)
- in the peppol registration wizard by adding a warning
If PDP is installed we make the following changes to the send & print
- change the wording mentioning "Peppol" to mention the French e-invoicing instead
- make a PDP version of the "Peppol Info" (`account_peppol.WhatIsPeppol`)
- it explains what French E-Invoicing is
- it provides a button to open the registration wizard
- in case the company is registered on Peppol it deregisters the
company first (just like the "complete registration" button)
- display the "You can send this electronically via Peppol" warning
also for French companies (with the wording and "Peppol Info" mentioned above)
- It is displayed in case we are opening the Send & Print wizard from a French
company for a partner on peppol but the "Peppol" / "French
E-invoicing" checkbox is not checked
- Change the wording of the French company non-PDP warning to encourage
the user to register
In the PDP registration wizard
- make all the fields visible directly (already at the start of the KYB/KYC)
- make the SIREN part of the identifier readonly
- make the fields readonly after the verification
- automatically "validate" / register to PDP when we receive the KYC success
task-6320246
#### [IMP] l10n_fr_pdp: add system param for kyc siren
After the previous commit it is not really possible anymore
to use a different SIREN for the KYC than the one in the pdp identifier.
This is because:
- We derive the SIREN directly from the
Identifier in the registration wizard.
- The registration will be validated automatically after the KYC
- The values are readonly after the KYC in any case
That is a problem for testing because we have 1 SIREN to test the
KYC and it is independent from the identifiers provided by the French
datasets for the PDP test environment.
task-None
Forward-Port-Of: odoo/odoo#2717335 changes
Enhancements to existing features
The bank reconciliation screen now has a simpler, mobile-friendly layout that is easier to use on small screens. It also shows key statement details and the remaining balance above the list, giving users better context while they reconcile payments.
Original PR description
Current behavior before PR: On mobile devices, the bank reconciliation dialog relied on the base kanban view of account move line, which is difficult to handle and lacked contextual information about…
Current behavior before PR: On mobile devices, the bank reconciliation dialog relied on the base kanban view of account move line, which is difficult to handle and lacked contextual information about the statement being reconciled. Desired behavior after PR is merged: The bank reconciliation flow on mobile uses a dedicated kanban view with a simplified layout. An informational line is displayed above the main view, showing the statement date, reference, and remaining balance for better context. Changes implemented: - Added a mobile-specific kanban view for bank reconciliation dialog. - Displayed an information line above the kanban view with statement date, reference, and balance like desktop view for bank reconciliation dialog. - Moved 'onSelectionChanged' to 'BankRecSelectCreateDialog' and shared it through 'bankRecInfo', moved 'remainingAmountFormatted' into the state, and removed the duplicated getters from the list and kanban renderers. - Kept the existing desktop layout and behavior unchanged. - Added a HOOT test to check the mobile bank reconciliation dialog. task-5502469 Forward-Port-Of: odoo/enterprise#106565
This update makes the timesheet assistant clearer and more reliable for users. It now explains whether a connection issue comes from the server not running or from browser security settings, warns when the browser extension is missing or inactive, and shows the right suggestion when a calendar item is removed so users do not lose useful time entries. It also improves suggestion quality by showing the actual record name, using the most recent matching project when several are possible, and fixing a regression in how suggestion data is matched.
Original PR description
Forward-Port-Of: odoo/enterprise#115859
This update improves how dialog drag behavior is handled in the web client by replacing a broad browser selector with a more targeted approach. The result is less style recalculation work, which helps keep the interface smoother during window resizing, scrolling, and table sorting.
Original PR description
Avoid using the :has() selector and use a specific style on the `documentElement` instead to replicate the same behavior. This reduces work during the "Recalculate Style" phase. It lowers recalculation time during window resizes, heavy scrolling, and table sorting by preventing broad selector matches and limiting style checks to elements with the specific class. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#272118
The PDP registration process is more flexible and secure: users can now adjust their contact email during registration, and the connection process includes extra protection to prevent impersonation. In addition, deregistering a participant now clears the KYC status so the process can be restarted if needed.
Original PR description
It seems the readonly can cause some problem because the user might want to change it during the registration. Also adding the hash signed to the connect route to make sure nobody can impersonate the kyc Also clicking on the button_deregister_pdp_participant action will now reset the kyc status so that you can do it again if needed. task-626574 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268833
The system now records information when a device used for a session does not match the expected fingerprint. This helps teams spot unusual logins or possible account misuse more quickly.
Original PR description
Log device information if fingerprint doesn't match the one currently being used for the current session. Task-6340963
2 changes
Enhancements to existing features
The bank reconciliation dialog now has a cleaner, easier-to-use layout on mobile devices. It also shows key statement details, such as the date, reference, and remaining balance, so users have more context while reconciling.
Original PR description
Current behavior before PR: On mobile devices, the bank reconciliation dialog relied on the base kanban view of account move line, which is difficult to handle and lacked contextual information about…
Current behavior before PR: On mobile devices, the bank reconciliation dialog relied on the base kanban view of account move line, which is difficult to handle and lacked contextual information about the statement being reconciled. Desired behavior after PR is merged: The bank reconciliation flow on mobile uses a dedicated kanban view with a simplified layout. An informational line is displayed above the main view, showing the statement date, reference, and remaining balance for better context. Changes implemented: - Added a mobile-specific kanban view for bank reconciliation dialog. - Displayed an information line above the kanban view with statement date, reference, and balance like desktop view for bank reconciliation dialog. - Moved 'onSelectionChanged' to 'BankRecSelectCreateDialog' and shared it through 'bankRecInfo', moved 'remainingAmountFormatted' into the state, and removed the duplicated getters from the list and kanban renderers. - Kept the existing desktop layout and behavior unchanged. - Added a HOOT test to check the mobile bank reconciliation dialog. task-5502469 Forward-Port-Of: odoo/enterprise#106565
This update makes the contact email editable during registration, which helps users correct it if needed. It also strengthens the connection process to prevent impersonation and resets the KYC status when a participant is deregistered, so the registration can be started again cleanly.
Original PR description
It seems the readonly can cause some problem because the user might want to change it during the registration. Also adding the hash signed to the connect route to make sure nobody can impersonate the kyc Also clicking on the button_deregister_pdp_participant action will now reset the kyc status so that you can do it again if needed. task-626574 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268833
3 changes
Enhancements to existing features
This update fills in missing translations across Point of Sale modules so more dialogs, errors, alerts, and warnings are shown in the user’s language. It improves the day-to-day experience for POS staff by making on-screen messages clearer and more consistent.
Original PR description
pos* = All POS module In this commit: -------------------------------- Add missing translations for user-visible strings across POS modules. - Translated dialogs, errors, alerts, and other UI-visible messages - Updated Python-side UserError, ValidationError, and warning messages Task-5406947 Related PR-https://github.com/odoo/enterprise/pull/102094 Forward-Port-Of: odoo/odoo#271263 Forward-Port-Of: odoo/odoo#239972
This update fills in missing translations across Point of Sale screens, dialogs, alerts, and error messages. It helps users working in different languages understand prompts and issues more clearly, improving the overall POS experience.
Original PR description
pos* = All POS module In this commit: -------------------------------- Add missing translations for user-visible strings across POS modules. - Translated dialogs, errors, alerts, and other UI-visible messages - Updated Python-side UserError, ValidationError, and warning messages Task-5406947 Related PR-https://github.com/odoo/odoo/pull/239972 Forward-Port-Of: odoo/enterprise#121313 Forward-Port-Of: odoo/enterprise#102094
This update makes PDP registration more flexible by allowing the contact email to be changed during signup. It also strengthens protection against identity misuse during the connection process and lets users restart the KYC verification if a deregistration is needed.
Original PR description
It seems the readonly can cause some problem because the user might want to change it during the registration. Also adding the hash signed to the connect route to make sure nobody can impersonate the kyc Also clicking on the button_deregister_pdp_participant action will now reset the kyc status so that you can do it again if needed. task-626574 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268833
10 changes
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
This update improves the Point of Sale testing setup by adding a stress test scenario. It helps the team simulate heavier usage and spot performance issues earlier, which supports more reliable releases.
The barcode scrap workflow test was updated to match the new behavior for lot and serial number filtering. This ensures the test only expects items that are actually available in stock, which better reflects how the feature works in practice.
Original PR description
Modify the barcode scrap tour check asserting that newly created serial numbers are available in the lot dropdown. With the new lot filtering behavior, only lots with available quants in the source location are displayed for internal operations. Since the test serial numbers do not have stock yet, scrapping them would not make sense and they are no longer expected to appear in the dropdown. Community PR: https://github.com/odoo/odoo/pull/246060 task-5375336
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
When a quotation is created from a planning slot linked to a project, the related project is now selected automatically. This ensures the correct cost allocation is applied without extra manual steps, saving time and reducing the chance of errors.
Original PR description
When a quotation is created from a planning slot linked to a project, the analytic distribution is not set automatically and the user has to select it manually. This commit sets the project by default so that the analytic distribution of the selected project is automatically applied. task-4644787
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-58713462 changes
Enhancements to existing features
This update prepares the Austrian localization for a VAT change effective July 1, 2026, reducing the rate from 10% to 4.9% for certain food categories. It also adjusts the related chart of accounts and tax return mapping so accounting and reporting stay correct.
Original PR description
From first of July 2026, the VAT will change from 10% to 4.9% for some food categories. Adapt the taxes, the CoA and the tax return accordingly. task-6273259 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#268278
This change makes KSeF bill retrieval more resilient when one bill causes an error, so the whole import process does not get blocked. It also helps users keep track of bills that need manual follow-up and improves handling of edge cases between companies and date limits.
Original PR description
### Commit 1: We fetch and store bills if we're able to parse and store them correctly. but in case we make a mistake 1. The cron gets stuck trying to fetch the problematic bill. 2. Users have no…
### Commit 1: We fetch and store bills if we're able to parse and store them correctly. but in case we make a mistake 1. The cron gets stuck trying to fetch the problematic bill. 2. Users have no clue that there is a bill on KSeF that they have to fetch manually. --- 1. Save the bill on a savepoint, to make sure one problematic bill doesn't affect others 2. Create all bills as draft first so that users have a reference to fallback to in case the have to do manual fetching. --- task-6310321 --- ### Commit 2: Issues: 1. For a db with company_1 and company_2, when company_1 sends an invoice to company_2 via KSeF (out_invoice with a ksef number), company_2 in the same database can't fetch the corresponding bill because there is a move with the same KSeF number. 2. The date difference between `from` and `to` in the `dateRange` must not exceed 3 months as explained in the documentation https://api.ksef.mf.gov.pl/docs/v2/index.html#tag/Pobieranie-faktur/paths/~1invoices~1query~1metadata/post Fixes: 1. Change the unique constraint and the domain to allow same KSeF number per different companies. 2. Minimize the `to` parameter with `from` + 2 months. 3. Increase the TIMEOUT to 30 seconds as 10 seconds is too small. task-6260645 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
1 change
Enhancements to existing features
This change lets operators adjust how quickly unused database connections are closed in Odoo. It helps reduce memory use in environments with limited resources by allowing idle connections to be cleared more aggressively when needed.
Original PR description
In memory-scarce environments, the default 10-minute idle timeout may keep too many backend connections alive. Allow operators to override it via the ODOO_DB_MAX_IDLE_TIMEOUT environment variable to evict idle connections more aggressively. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr