Thursday, November 13, 2025
10 changes · 17.0
Enhancements to existing features
This update adds Spanish translation support across several U.S. localization features, including payroll, reporting, payments, and check printing. It helps Spanish-speaking users better understand and use these workflows without changing the underlying business rules.
Original PR description
The official language is English, but Spanish is spoken by ~41 million. task-5247124
This update makes the U.S. localization available in Spanish as well as English. It helps Spanish-speaking users understand and use the related content more easily, which is useful given the large Spanish-speaking audience in the U.S.
Original PR description
The official language is English, but Spanish is spoken by ~41 million. task-5247124
Some India-specific accounting tags now include the correct country information. This makes them easier to filter and group, and helps ensure they can be reused in more cases where country-specific tagging is needed.
Original PR description
Some account tags specific to India were missing the `country_id`. With this PR, the `country_id` is added to those tags, enabling easier group by and making them usable for other cases also.
Resolved issues and error corrections
Expense report approvals now record the exact approval timestamp instead of reusing the same time for every record. This ensures list views and records show when each expense was actually approved, improving accuracy and auditability.
Original PR description
**Steps to reproduce:** - Install hr_expense and studio - Open Expense Reports and add the `approval_date` field to the list view - Create multiple new expenses, submit them, and approve each one - Go back to the Expense Reports list — notice that all records show the same approval time **Issue:** - The `approval_date` field always shows the same time for all approvals, regardless of when each expense was approved. **Cause:** https://github.com/odoo/odoo/blob/b093786714e9e8567cf75abf78ac3d954a3d89b2/addons/hr_expense/models/hr_expense_sheet.py#L664-L668 - The field `approval_date` is a datetime field, but only the date was being set during approval, causing all approvals to default to the same time. **Solution:** - Pass the current datetime (localized to the user’s timezone) instead of only the date when setting the approval date. --- opw - 5134045 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The description field on e-waybill stock entries can no longer be edited manually. This helps keep the information consistent and reduces the risk of accidental changes to shipment details.
Original PR description
This **PR** makes the description on ewaybill stock readonly. ref - https://github.com/odoo/odoo/pull/228548/commits/285fffe6b0c90b9e37815cb4064b0108a5e8e6ac
This update sends the database identifier to Odoo's internal app service when SMS-related requests are made. It helps support teams more quickly pinpoint the right customer database and debug issues when a problem is reported.
Original PR description
Send the db_uuid to IAP such that we can more easily debug and support our users in case of a problem. task-none Forward-Port-Of: odoo/odoo#233912
This fix restores the ability to delete selected digits in the VoIP dial pad when the selection starts at the beginning of the field. It keeps the existing cursor protection in place while making backspace behave as users expect.
Original PR description
This commit fixes a regression introduced in commit [1] prevented deleting when a selection began at index 0; extend the guard so the numpad (keypad) backspace still removes the highlighted characters while keeping the cursor-safety logic. [1]: https://github.com/odoo/enterprise/commit/73b01fa5e1f56d4ab71d67760b15942fb2fa0e31 task-5217676
This change updates the internal documentation for self-ordering so it matches the way order references are now generated. It does not change customer-facing behavior, but it helps prevent confusion for future maintenance and support work.
Original PR description
**Description of the issue/feature this PR addresses:** When calculating the order's `order_reference`, we'd use the order's `table.id` as the reference's middle constituent. This was changed in 16.5 in [odoo/odoo:e512634935aa](https://github.com/odoo/odoo/pull/133902), from when on we used the order's `config.id` instead of its table - but the docstring was never updated to reflect the change. This commit fixes that. **Current behavior before PR:** Docstring referenced the table.id **Desired behavior after PR is merged:** Docstring references the config.id. The whole pos_reference generation was revamped in [odoo/odoo:76336f6123a6](https://github.com/odoo/odoo/pull/183085) in 18.1, so this only affects versions 17.0 and 18.0.
Event registration emails now omit the ticket price when the total amount is zero, such as for fully discounted registrations. This avoids confusing attendees with a price that they do not actually need to pay.
Original PR description
Steps to reproduce: 1. Create a new sale order with an event ticket line 2. Apply a 100% discount on the ticket line 3. Confirm the sale order 4. Check on the new attendee created, the mail sent to the attendee. Current behavior: The email shows the unit price without the discount applied which can be confusing for the customer as it might look like they need to pay that amount. After this commit: The email will just show the confirmation of the registration to the event withouth mentioning the price when the total price is 0. opw-5122776 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A sales test was moved to the module that actually provides the field it checks. This prevents build failures in simpler installations and localization-related test runs.
Original PR description
In this commit https://github.com/odoo/odoo/pull/230053/commits/fefc7c0ba34217c3df4b7309e0986751390dc5ce we introduce a test that is using sale_order_option_ids field in sale but this field is introduced in sale_management causing a failure in single app tests build and in localization builds. runbot-233962