Friday, April 3, 2026
4 changes · 19.0
Enhancements to existing features
Odoo now includes a shared utility to better understand amounts written with different decimal and thousands separators, such as European or US formats. This helps reduce mistakes when processing imported or entered monetary-style values without depending on server locale settings.
Original PR description
Add a new utility function `float_parse_str`
that parses a localized amount string into (int_part, dec_part) as strings, without relying on locale settings.
The function detects the number format (European/US) purely from the string structure by analyzing the position and count of '.' and ',' separators.
Handles:
- Plain integers: '1334' -> ('1334', '0')
- European format: '1.334,00' -> ('1334', '00')
- US format: '1,334.00' -> ('1334', '00')
- Unambiguous decimals: '1.50' -> ('1', '50')
Raises ValueError for genuinely ambiguous cases like '1.000' or '1,000' where the separator could be either thousands or decimal.
Enterprise :- https://github.com/odoo/enterprise/pull/110410
Task [link](https://www.odoo.com/odoo/project/967/tasks/6026748)
task-6026748Romanian localization demo data can now be installed without being blocked by carrier validation checks tied to electronic stock documents. The update also sets a default stock valuation account for Romanian companies, reducing setup friction.
Original PR description
This commit ensures that stock picking carrier validation for Romanian EDI does not block demo data installation. task-3748978 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239870
Odoo now avoids sending real customer connection details to its VAT validation service when a database cannot receive follow-up updates. This keeps the service cleaner and prevents unnecessary processing for databases that are not ready to use the update mechanism.
Original PR description
If the user contacts us from an unreachable db (localhost, firewall, .. .), we currently rely on a cron on the db to pull updates by calling `vies_check_update`. Currently, all dbs, even those that don't have the cron (i.e. haven't yet upgraded the `iap` module) will send the `client_identifier/token` upon calling `vies_check_validity`. However, since they don't have the cron, they won't be able to pull updates from IAP. Thus, if we detect that the crond does not exist, we will now send dummy `client_identifier/token` to avoid poluting IAP. task-none
This update silently sends a notification to WhatsApp channels when a new template is sent by a different user. This prevents distracting pop-ups, especially when multiple templates are used, ensuring a smoother experience for users managing bulk communications.
Original PR description
When a different user sends a WhatsApp template, a warning notification is posted in the active channel indicating that future replies will be moved to a new chat. This notification is now posted silently to avoid unnecessary popups, especially when templates are sent in bulk to multiple contacts with ongoing conversations.