Monday, September 14, 2026
4 changes · saas-18.4
Enhancements to existing features
This update improves the automated website shop tour that checks the Contact Us button flow. It helps keep the online sales experience reliable by ensuring this guided test better reflects expected behavior.
Original PR description
Description of the issue/feature this PR addresses: 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
Resolved issues and error corrections
Fixed an issue where one unschedulable project task could incorrectly block other tasks assigned to the same person. This helps dependent tasks reschedule to the next realistic available time instead of being pushed far into the future.
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#129326
Discount rewards in Point of Sale now exclude tip amounts, so customers' gratuities are not reduced by coupons or loyalty discounts. This keeps restaurant payments accurate and ensures staff receive the intended tip amount.
Original PR description
Currently, when a discount reward is applied onto an order and a tip is added later, the discount gets also applied on the tip. Steps to reproduce: ------------------- * Make sure all demo data…
Currently, when a discount reward is applied onto an order and a tip is added later, the discount gets also applied on the tip. Steps to reproduce: ------------------- * Make sure all demo data loyalty programs can also apply to the restaurant * Make sure tipping is enabled in the restaurant * Open restaurant * Open a table, add items to the order * Activate coupon code "10pc" * Select payment * On payment page, add a tip (10$) * Go back to product page > Observation: 10% discount is also applied on the tip Why the fix: ------------ A tipping should never have a discount applied on it. During the computation of the discountable amount we have 3 distinct flow (discount applies on the order, on the cheapest line, on some specific products) - On the order: We always exclude tipping lines - Cheapest line: When fetching the cheapest line amongst all lines we don't consider the tipping lines - On specific: With the fix, tipping lines will always be excluded from the discountable lines. Even if the tip product was specified on the loyalty program. Should we still allow discounting tips if it was set in the program specifically? We're using `is_discountable` instead for `is_tip` in case we want to extend the definition later on. opw-6445364 Forward-Port-Of: odoo/odoo#286073 Forward-Port-Of: odoo/odoo#281400
Website forms no longer keep outdated autofill settings when a form field is changed to a different field type. This prevents confusing submission errors and helps website editors publish working forms more reliably.
Original PR description
Steps to reproduce: 1. Go to Website and enter Edit mode. 2. Drop a Form snippet. 3. Set the submit action to "Create a Task". 4. Change an existing field (e.g., Phone Number) into another existing field (e.g., Tags). 5. Submit the form. The form fails with a generic error because the converted field keeps the `data-fill-with` attribute from the previous field. As a result, the form tries to compute a default value using an autofill source that is no longer valid for the new field. This commit clears the `data-fill-with` attribute when an existing field is converted to another field, ensuring that incompatible autofill values are not preserved and the form is submitted correctly. task-6152234