Sunday, September 20, 2026
4 changes · master
Resolved issues and error corrections
Fixes a website editor issue where setting, creating, or deleting a ribbon on a specific product variant could crash the page. This ensures merchandisers can manage variant labels such as “Sold out” reliably without interrupting their workflow.
Original PR description
Steps to reproduce: 1. Open a storable product with variants on the Product Page, in edit mode. 2. In the builder sidebar, select the specific variant (e.g. "Customizable Desk (White, Steel)"). 3.…
Steps to reproduce:
1. Open a storable product with variants on the Product Page, in edit mode.
2. In the builder sidebar, select the specific variant (e.g. "Customizable Desk (White, Steel)").
3. Set its Ribbon to any value (e.g. "Sold out").
Before this pr:
- The selection crashed with: TypeError: Cannot read properties of null (reading 'getAttribute') at SetRibbonAction.apply After this pr:
- The ribbon is set/created/deleted normally on the variant, no crash.
`SetRibbonAction`, `CreateRibbonAction` and `deleteRibbon` looked up the selected variant via
`editingElement.querySelector('[data-oe-model="product.product"]')`. That marker never exists on the product page only `product.template` fields (`product.name`, ...) are rendered with `t-field`, never `product.product` fields, so the selector always returned null and the following `.getAttribute(...)` call crashed.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#288466Project planning now evaluates each dependent task separately when checking assignee availability. If one task cannot be scheduled within the search window, it no longer incorrectly forces other related tasks for the same person into a late fallback slot, making project timelines more reliable.
Original PR description
Steps to reproduce: 1. create three tasks A,B & C with the same assignee 2. make tasks B and C depend on A and start on the `date_deadline` of task A 3. set the duration of task B (processed before C) to be longer than the 53-week search window 4. reschedule task A to end after task C starts Problem: A candidate that couldn't be scheduled was putting its assignee in conflict, subtracting the inspected availability while failing from the shared pool. Consequently, every later candidate sharing that assignee got force-placed into the same forward reschedule fallback that lands near the tail of the 53-week search window instead of the next available slot. Solution: Each candidate should be evaluated on its own ability to fit, and the time it occupies should count against the shared pool. opw-6380163 --- Forward-Port-Of: odoo/enterprise#131430 Forward-Port-Of: odoo/enterprise#129326
The chatter search filters have been renamed and split into clearer options: All, Messages, Notes, Activities, and Changes. This helps users quickly understand which communication items they are viewing, reducing confusion when searching record discussions.
Original PR description
Previously, the chatter filters used generic categories such as 'Conversations' and 'Tracked Changes', which made it unclear which types of messages would be displayed by each filter. This PR makes the filters more intuitive by replacing these generic categories with distinct message types: 'All', 'Messages', 'Notes', 'Activities', and 'Changes'. This makes it clearer which messages each filter will display. part-of-task-6299626 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#287983
This fix ensures accounting documents recalculate tax lines and totals when external tax data changes. It prevents mismatches between invoice lines and tax lines, helping businesses avoid incorrect totals on accounting documents.
Original PR description
The account_external_tax module can modify extra_tax_data without modifying anything else on the lines. This results in: - a desync between the product lines and tax lines, - incorrect totals This makes sure we regenerate the appropriate tax lines and recompute the totals fields. opw-6547387 Forward-Port-Of: odoo/odoo#289088 Forward-Port-Of: odoo/odoo#288717