Friday, November 7, 2025
6 changes · 18.0
Enhancements to existing features
The test selector system now supports an exact text match shortcut, making test scripts easier to read and maintain. This replaces more complex regular expression patterns with a clearer option, improving the developer experience without changing business behavior.
Original PR description
This commit adds the ':text()' pseudo-class to the list of supported pseudo-classes in Hoot selectors. Its purpose is the same as ':contains()', with the specificity of being an *exact* match instead of a *partial* one. It effectively replaces ':contains(/^<expression>$/)' by ':text(<expression>)', improving the readability and making the developer experience a bit nicer. Enterprise: https://github.com/odoo/enterprise/pull/98772 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update standardizes how test scripts look for text on screen, replacing older matching patterns with a clearer text-based approach. It helps keep automated checks more reliable and easier to maintain, without changing business functionality.
Original PR description
This commit replaces all found occurrences where ':contains' (with an exact match regular expression) could be replaced by ':text'. Community: https://github.com/odoo/odoo/pull/234331
Resolved issues and error corrections
The color picker now refreshes properly when users choose grayscale, transparent grayscale, or theme colors. This makes it easier to fine-tune background and design colors because the on-screen controls now match the selected color reliably.
Original PR description
Before this commit, the colorpicker UI would not update when switching to some colors (grayscale, transparent grayscale, theme colors). It would therefore be difficult to make small changes to those colors. This commit make the colorpicker update correctly. Step to reproduce the bug (example with grayscale colors): - Add a snippet - Change the background color to a custom color (the colorpicker interface was updated to match the color) - Change the background color to a grayscale color (the colorpicker interface was not updated to match the color) task-3806989 Forward-Port-Of: odoo/odoo#179883
Miscellaneous changes
This change stops Odoo from triggering an unnecessary internal update when a product variant already has the same attribute values. It reduces avoidable processing, which can improve performance and make product operations a little faster and lighter.
Original PR description
Description of the issue/feature this PR addresses: Method `product.template._create_variant_ids()` triggers a `write()` on `product.product.product_template_attribute_value_ids` which will, in turn, invalidate the cache. This cache invalidation is unnecessary if the new value is the same as the old value. Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#233677
In order to put the localization translations on Weblate, we did some cleanup of the POT and PO files for them: - Re-exported all POT files - Removed POT files for countries that don't need other languages than English - Removed all `i18n_extra` folders and moved any existing translations over to the `i18n` folder - Updated PO file names by removing superfluous country codes, or simply correcting wrong ones - Removed PO files for irrelevant languages in a localization - Updated the PO file
Original PR description
In order to put the localization translations on Weblate, we did some cleanup of the POT and PO files for them: - Re-exported all POT files - Removed POT files for countries that don't need other languages than English - Removed all `i18n_extra` folders and moved any existing translations over to the `i18n` folder - Updated PO file names by removing superfluous country codes, or simply correcting wrong ones - Removed PO files for irrelevant languages in a localization - Updated the PO files according to the POT files using `msgmerge` - Added new PO files for missing languages We also updated the `.weblate.json` file to add all the localizations in a separate Weblate project, limited to the languages they support. task-5169642 Related: https://github.com/odoo/enterprise/pull/98781 17.0: https://github.com/odoo/odoo/pull/233521 saas-18.2: https://github.com/odoo/odoo/pull/234739
In order to put the localization translations on Weblate, we did some cleanup of the POT and PO files for them: - Re-exported all POT files - Removed POT files for countries that don't need other languages than English - Removed all `i18n_extra` folders and moved any existing translations over to the `i18n` folder - Updated PO file names by removing superfluous country codes, or simply correcting wrong ones - Removed PO files for irrelevant languages in a localization - Updated the PO file
Original PR description
In order to put the localization translations on Weblate, we did some cleanup of the POT and PO files for them: - Re-exported all POT files - Removed POT files for countries that don't need other languages than English - Removed all `i18n_extra` folders and moved any existing translations over to the `i18n` folder - Updated PO file names by removing superfluous country codes, or simply correcting wrong ones - Removed PO files for irrelevant languages in a localization - Updated the PO files according to the POT files using `msgmerge` - Added new PO files for missing languages We also updated the `.weblate.json` file to add all the localizations in a separate Weblate project, limited to the languages they support. task-5169642 Related: https://github.com/odoo/odoo/pull/234342 17.0: https://github.com/odoo/enterprise/pull/98321 saas-18.2: https://github.com/odoo/enterprise/pull/99009