Monday, September 22, 2025
10 changes · 17.0
Enhancements to existing features
The Turkish Nilvera e-invoice integration now includes automated tests to help confirm that invoice processing continues to work as expected. This reduces the risk of future changes causing unnoticed issues in Turkish electronic invoicing workflows.
Original PR description
There are no tests for the Turkish e-invoice module. This commit adds that. Task ID: 4655864
Resolved issues and error corrections
Fixed an issue where the website donation button could fail if a pre-filled donation option had no amount entered. This prevents an error page and keeps the donation flow usable for visitors and website editors.
Original PR description
When the user clicks the ``Donate Now`` button and one of the pre-filled options
has a null amount, A traceback will appear.
Steps to reproduce the error:
- Go to Website > drag and drop donation button > Edit > Click on Donate Now button
- Add new pre-filled option with Null amount > Save
- Click on Donate Now button
Traceback:
```
ValueError: could not convert string to float: ''
```
https://github.com/odoo/odoo/blob/638268a81ed5a292a02d7fc353c4954159de54e1/addons/website_payment/views/payment_form_templates.xml#L86
Here, ``donation_amount`` will be an ``empty string('')``.
So, It will lead to the above traceback.
This commit will add a fallback value for a null amount.
sentry-6703335051
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prOdoo now handles invalid or non-image files more gracefully when users try to set a Discuss channel profile image. This prevents an error from interrupting channel setup and improves reliability for users who accidentally upload the wrong file type.
Original PR description
Currently, an error is encountered on uploading non-image files(e.g .txt, .csv) rather than image file, in the discuss channel. **Steps to reproduce:** - Install Discuss module - Navigate to Discuss channels. - Create new Channel and upload [this](https://docs.google.com/spreadsheets/d/1k_s_V7Q-zA9uQUaQblsJtBHC4VlEFM-w/edit?usp=drive_link&ouid=101212513075316114369&rtpof=true&sd=true) file as group's profile image. **Error:** `ValueError: Compute method failed to assign discuss.channel(<NewId origin=4>,).avatar_128` **Root Cause:** On uploading a file compute method expects a `Id` and here we are receiving `temporary id` as `<NewId origin=4>`, on using this id at [1] raising an error. [1]- https://github.com/odoo/odoo/blob/44a9831f125800743504a5cc55b395980ddc9ce7/addons/mail/models/discuss/discuss_channel.py#L126 **Solution:** This commit handles error on uploading a corrupt image in the discuss channel. Sentry- **6690968543**
This fix helps Odoo handle Twilio connection problems more cleanly when network issues or request timeouts occur. It reduces unexpected failures in mail-related services by identifying the type of connectivity problem more accurately.
Original PR description
The error occurs when the Twilio API call fails due to network issues. This commit ensures that a ConnectionError is raised when a connection issue occurs with the Twilio API, and a TimeoutError is raised in case of a request timeout. sentry-6541206983 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Website contact forms no longer show an unnecessary blank space before the reCAPTCHA privacy line when labels are positioned at the top. This makes forms look cleaner and more professional for visitors without changing how reCAPTCHA works.
Original PR description
Steps to Reproduce: 1. Go to _Settings_ and search for reCAPTCHA. 2. Add the required keys. 3. Go to _Website_ and enter edit mode. 4. Drop any _Contact Form_ snippet. 5. Make the labels to top. 6. Enable the _Show reCAPTCHA_ option. 7. Notice an unnecessary blank space before the privacy policy line. Issue: The reCAPTCHA line created unnecessary blank space when aligned to the left. Reason: The line was placed inside the form block, which reserves space for a label. Since reCAPTCHA has no label, an empty placeholder space appeared. Fix: Hide the unused label by setting its visibility to `none` for the reCAPTCHA line, removing the extra blank space. Before: <img width="1464" height="406" alt="image" src="https://github.com/user-attachments/assets/b5fc0fc2-104d-4a3e-a6c9-fab34992ee0d" /> After: <img width="936" height="772" alt="image" src="https://github.com/user-attachments/assets/8d721d90-b7fa-45a5-8d0c-a750ec504a12" /> task-4756289
Maintenance equipment pages no longer fail when imported maintenance requests have no request date. The system now fills in a sensible default and handles missing dates safely, improving reliability for teams importing maintenance data.
Original PR description
Currently, an error occurs when accessing equipment if the maintenance request data is imported with an empty request date. **Steps to reproduce:** - Install Maintenance app. - Create new equipment…
Currently, an error occurs when accessing equipment if the maintenance request data is imported with an empty request date. **Steps to reproduce:** - Install Maintenance app. - Create new equipment (e.g; laptop) - Import [this](https://docs.google.com/spreadsheets/d/1QDwpRtbHemXJLpZRf0eLM2mN_58tfsTA/edit?usp=drive_link&ouid=113889705772170635141&rtpof=true&sd=true) file in Maintenance Requests. - Open the newly created equipment form view. **Error:** `TypeError - unsupported operand type(s) for -: 'datetime.date' and 'bool'` **Cause:** Here at [1], it tries to subtract a `False` value (i.e., no `request_date`) from a `datetime.date`, which causes a traceback. [1] - https://github.com/odoo/odoo/blob/ffd9c0f96bda1bad1ad2059d9be2fae54b60eace/addons/maintenance/models/maintenance.py#L109 **Fix:** This commit ensures a default `request_date` (today's date) is assigned during maintenance request creation if none is provided and ensures proper computation when the request date is not set. sentry-6734276358
This fix prevents the command palette from crashing when a status field has no available choices, such as in certain Field Service task flows. Users can continue working normally; the unavailable command is simply hidden instead of causing an error.
Original PR description
**Steps to reproduce:** - Installed industry_fsm (Field Service) module - Navigate the menu Field Service -> Configuration -> Project - Create a new project - Then Navigate the menu My Tasks -> Tasks…
**Steps to reproduce:** - Installed industry_fsm (Field Service) module - Navigate the menu Field Service -> Configuration -> Project - Create a new project - Then Navigate the menu My Tasks -> Tasks - Create a new task with the new created project - Then using the keyboard shortcut ctrl + k for command search, an error occurs **Cause:** - When the `stage_id` statusbar had no possible values, `this.getAllItems()` returned an empty array. - The command `isAvailable` unconditionally accessed `this.getAllItems().at(-1).isSelected`, which is undefined, causing a crash.[see](https://github.com/odoo/odoo/blob/17.0/addons/web/static/src/views/fields/statusbar/statusbar_field.js#L147-L148) **Fix** - Add safe check in the command action so it does not attempt to select a non-existent "next" item. **Result** - The command palette no longer crashes when the `stage_id` field has no available items. Instead, the command is simply unavailable. opw-5084130 upg-3130405 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
This fixes an issue where the Cloudflare Turnstile verification code could be added more than once on website forms. The change helps avoid duplicate checks and potential form behavior problems for visitors.
The Peppol status column is now correctly hidden on vendor bill lists. This removes irrelevant information from the bills view, making it clearer for accounting users.
Original PR description
Was supposed to be fixed in related commit but done incorrectly. Related: https://github.com/odoo/odoo/commit/d5a2a802c911994294bdd9ef739232e54fb7358e#diff-85bbebe496014ea47e573d3c54aa4b37ba32991e51f06e20e5a40d632602b5afR64 opw-livechat-886115213
Timesheet reports now include the related helpdesk ticket information when time is logged through Helpdesk. This helps teams connect reported work back to the customer issue, improving visibility and follow-up.
Original PR description
backport of https://github.com/odoo/enterprise/pull/95179 opw-5002650