Monday, July 7, 2025
19 changes · saas-18.3
Resolved issues and error corrections
Saving a new timesheet now keeps custom plan fields added through Studio instead of overwriting them with account distribution defaults. This prevents users from losing manually entered timesheet planning details and improves reliability when using customized timesheet views.
Original PR description
### Steps to reproduce: - Navigate to a Project > View (Timesheets) - Open studio and add x_plan2_id for example to the view - Try creating a new timesheet and set a value for the field we added using studio - Save and notice the field doesn't keep its value ### Cause: This is mainly happening because when getting the plan_ids for the account we are gonna fill we just get the account in the distribution and ignore if the user is setting another value ### Fix: We check the create vals_list if a plan has value we set it before setting the account in the distribution opw-4716041 Forward-Port-Of: odoo/odoo#214865
Fixes an issue where removing the Validity Period while creating a time off allocation caused the form to crash. Users will now see the normal required-field warning when saving, helping them correct the form without disruption.
Original PR description
An error occurs if the Validity Period is removed while creating a new allocation. Steps to reproduce: --- - Install the `hr_holidays` module - Time Off > My Time > My Allocation - Open New and remove the `Validity Period` Traceback: --- `AttributeError: 'bool' object has no attribute 'strftime'` This commit ensures that changing the date won't cause an error, but instead will display a warning upon saving the form, as it is a required field. sentry-6709097746 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Japan tax number example used for VAT validation was duplicated with conflicting values. This fix keeps the correct example in the right place, reducing confusion for users and maintainers.
Original PR description
The dict contained 2 different examples for a tax number in Japan. Keeping the one that is correctly positioned in the dict.
The wording in the intercompany rules settings was corrected to say that vendor bills are created, not customer invoices. This avoids confusion for users configuring intercompany transactions and better reflects the actual accounting behavior.
Original PR description
This commit: https://github.com/odoo/odoo/commit/e2a0c6edb8c9c1fd0aba2f92f9187678e68971a9 change a help in the intercompany rules. The help sentence is wrong since we don't create invoice but bills. task-4907810 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update applies small follow-up fixes requested after a previous change to accounting-related demo data. It helps keep sample Belgian accounting data accurate and consistent for testing or demonstration purposes, with no expected impact on normal business operations.
Original PR description
After [this PR](https://github.com/odoo/odoo/pull/209628) was merged, a few last comments were made, this commit includes the changes suggested in those comments. --- task-none --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents Project reporting drill-downs from using report-only filters that are not available on the underlying task records. Business users can now click bars in Task Analysis grouped by tasks without running into errors caused by incompatible fields.
Original PR description
Step to reproduce - Go to Project - Go to Reporting > Task Analysis - Group by Tasks (not Task) - Click on any of the blue bars Issue: since odoo/odoo@c36ad1896 we now allow user to drill down to base model from report view, this causes issue when a field which is present in report model but not in base/main model. For now we directly pass the domain created for report view to base model. FIx: we only open the view, when the such fields are not present in domain opw-4798353 related : https://github.com/odoo/enterprise/pull/88356 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215167
This fixes an error that appeared when using the website editor to toggle Suggested Accessories in event sales and loyalty-related shop pages. The affected views now point to the updated template location, restoring normal editing behavior after the platform change.
Original PR description
Description of the issue/feature this PR addresses: This issue has happened because of the standard change in the module. Current behavior before PR: Traceback click on Suggested Accessories, the…
Description of the issue/feature this PR addresses: This issue has happened because of the standard change in the module. Current behavior before PR: Traceback click on Suggested Accessories, the toggle button through the website editor. in v18.2 the module [website_event_sale](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_event_sale/views/website_sale_templates.xml#L24) and [website_sale_loyalty](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_sale_loyalty/views/website_sale_templates.xml#L128) is inherit the cart_line and target the [node](https://github.com/odoo/odoo/blob/saas-18.2/addons/website_sale/views/templates.xml#L2087) is available in the view. But in version 18.3 this node is move to other [template](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale/views/templates.xml#L2341) that's why the node is not find. Desired behavior after PR is merged: After the change i target the new [template](https://github.com/odoo/odoo/blob/saas-18.3/addons/website_sale/views/templates.xml#L2435) so the node is now find. Issued PR-190720 [OPW- 4864959](https://www.odoo.com/odoo/project/70/tasks/4864959?debug=1) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes an automated website payment test for donations so it handles the payment processing redirect reliably. It helps keep donation checkout validation stable and reduces false test failures during releases.
Original PR description
In this commit, we fix the donation_snippet_use tour. At the end of the tour, when you click on submit donation, you are redirected to a page "Your payment has been processed." From this page, you are then redirected to a page with "Thank you". This intermediate redirection page can be a problem if there are several steps that concern it because we do not know when the redirection will be triggered (in the first or the second step?) Therefore, it is essential to have only one step for intermediate redirections. 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 Forward-Port-Of: odoo/odoo#217084 Forward-Port-Of: odoo/odoo#216558
This update makes automated tests for the HTML editor more stable by waiting properly for link preview popovers and splitting an overly long test. It helps reduce random test failures in Odoo's validation pipeline, making releases and fixes more dependable without changing user-facing behavior.
Original PR description
Forward-Port-Of: odoo/odoo#217434 Forward-Port-Of: odoo/odoo#215168
Printed invoice address blocks now remove unnecessary blank lines when optional address fields such as Street 2 or State are left empty. This makes customer addresses look cleaner and more professional on reports without changing the underlying contact data.
Original PR description
<b>Steps to Reproduce:</b> 1. Navigate to Invoice → Keep street2 or State value of customer address empty. 2. Print button. <b>Issue:</b> - There will be blank space in display of the address if you didn't complete Street2 field or the State field. <b>Cause:</b> - In cause is mentioned PR : [29f7475](https://github.com/odoo/odoo/commit/29f7475437586363e473955315d74aef7d80028c#diff-c4cf79d0ff0cb8f7ca865fdfac774ce8fd95c800471a0932d126acb6fd8e7c27L992) where Line `name = re.sub(r'\s+\n', '\n', name)` is removed. <b>Solution:</b> - Improved the `_compute_display_name` method to strip empty lines from the final address string. <b>opw-4879069</b>
This update makes automated point-of-sale tests for Brazilian electronic invoicing more reliable by waiting for the product search loading indicator instead of a notification that may not appear consistently. It helps reduce false build failures without changing the user-facing POS behavior.
Original PR description
The tours regularly fail in single app builds because the "No other products found" notification is not found. Waiting on that notification is necessary because the product search happens asynchronously. I was not able to reproduce the test failure locally. But in an attempt to improve the situation this changes the approach to use the little "loading" spinner to wait on the search to finish by using Chrome.isSynced(). This method is used elsewhere in POS tests and should hopefully be less flaky. builx_error-224202 Forward-Port-Of: odoo/enterprise#88300
The intercompany rules settings label for creating invoices was renamed to make its purpose clearer. This reduces confusion for users configuring automatic invoicing between companies.
Original PR description
This commit: https://github.com/odoo/enterprise/commit/4b57698670a7762bb206ccb24417d63c8edc1a46 change the ux of the intercompany rules, but the naming is confusing for users. task-4907810
Customer statement emails now respect the sender or reply-to address configured on the email template. This prevents statements from being sent from an unexpected user address and keeps outgoing customer communications aligned with company settings.
Original PR description
Steps to reproduce:
Go to Settings> Email templates
Open the template Customer statements
Change the value in email from or reply to
Go to Accounting > Customers > Customers
Open a customer
Send a customer statement
Issue:
The address in use is not the same as we specified in the customer template
Cause:
if no email_from is provided, we will use the current partner's use's email address https://github.com/odoo/odoo/blob/cc0aaff5f93d5332c60d5bd8097173326a0a12b3/addons/mail/models/mail_thread.py#L2863-L2864
We don't check if the template has any email_from address defined
Note:
As from this fix, if no address is defined, by default it will be the `{{ object._get_followup_responsible().email_formatted }}`
opw-4864155
Forward-Port-Of: odoo/enterprise#88262The VoIP softphone window now uses a minus icon instead of an X to hide it during calls. This makes users less likely to worry that clicking the button will end the call, improving confidence while managing the call window.
Original PR description
The "cross icon" (X) is believed to be too "scary"; people don't dare to click it in the middle of a call out of fear of hanging up, even though the softphone window might be in their way. The "minus icon" (-) might deceive one's expectations by hiding the window rather than minimizing it, but we decided that it was still better this way. Part of task-4891947.
The VoIP interface now displays better on smaller screens, ensuring users can scroll to and access all content. Spacing, alignment, and transfer button styling were adjusted for a more consistent and usable experience.
Original PR description
This commits fixes minor layout issues: - It adapts some views that had no scroll bar when the viewport was small. This prevented access to part of content. - It revises some spacing and alignment on…
This commits fixes minor layout issues: - It adapts some views that had no scroll bar when the viewport was small. This prevented access to part of content. - It revises some spacing and alignment on small screens. - It defines small transfer buttons in "outline" style to maintain consistency with the others tabs. task-4908502 | Before | After | |--------|--------| |  |  | |  |  | |  |  | |  |  | |  |  | |  |  | |  |  |
Opening Studio from Documents after creating a shortcut no longer causes an error. This keeps document management workflows uninterrupted for users who customize Documents with Studio.
Original PR description
Steps: - Install `documents` and `studio` - Open documents, go to list view - Select a random file and 'Create a shortcut' via the actions - Try to open studio - traceback opw-4900667 Forward-Port-Of: odoo/enterprise#89508
Studio now closes the New Model dialog as soon as users confirm their choice, instead of leaving it briefly visible while the system responds. This removes a small visual flicker and makes the model creation flow feel smoother.
Original PR description
This commit fixes a minor UX issue where the "New Model" dialog in Studio would remain visible briefly after confirmation, causing a flicker while waiting for the server response. The dialog now closes immediately upon confirmation, providing a smoother user experience. task-4809049
Fixes an issue in Helpdesk reporting where opening details from Ticket Analysis could fail after grouping by ticket. The report now removes filters that only exist in the analysis view before opening the underlying tickets, making drill-down results more reliable for users.
Original PR description
Step to reproduce - Go to helpdesk - Go to Reporting > Ticket Analysis - Group by `Ticket` - Click on any of the blue bars Issue: since odoo/enterprise@d64db03f we now allow user to drill down to base model from report view, this causes issue when a field which is present in report model but not in base/main model. For now we directly pass the domain created for report view to base model. FIx: we remove such fields from domain and then load the view opw-4798353 related: https://github.com/odoo/odoo/pull/215167 Forward-Port-Of: odoo/enterprise#88356
Fixed an issue that could stop customer follow-up processing when SMS reminders were enabled. The process no longer references removed customer data, helping finance teams complete overdue invoice follow-ups without unexpected errors.
Original PR description
When clicking the `Process Follow-ups` button after creating a due invoice, a traceback could occur due to missing data on the related records. Steps to reproduce: --- - Install `account_followup`…
When clicking the `Process Follow-ups` button after creating a due invoice, a traceback could occur due to missing data on the related records.
Steps to reproduce:
---
- Install `account_followup` module(without demo)
- Go to `Follow-up Levels` and enable SMS in `15 Days`
- Create an invoice with Invoice Date(2 months ago) and Payment terms: `15 Days`
- Now, click on the selected customer and fill in all important details
- In the action button, click `Process Follow-ups`
Traceback:
---
```
KeyError: 'mobile'
ValueError: KeyError('mobile') while evaluating
'if records:\n action = records.action_manually_process_automatic_followups()'
```
The mobile field was removed from `res.partner` (see related commit), but it was not removed from here. This commit cleans it up to avoid referencing a non-existent field.
commit- https://github.com/odoo/odoo/commit/6b820eb6fc6f782ba6a83d605d87b4a1dd2a87be
sentry-6720070075
Forward-Port-Of: odoo/enterprise#89241