Monday, August 11, 2025
13 changes · saas-18.2
Resolved issues and error corrections
This fixes an internal accounting test that was tied to the year 2025 and would have started failing in 2026. The change keeps automated checks reliable over time without changing behavior for end users.
Original PR description
The test test_resequence_change_payment_name had hardcoded 2025 in the sequence name, meaning that the test will fail in 2026. opw-4437481 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#222220
Invoice PDFs sent by email now use the same customized file name configured for printed invoice reports. This keeps customer-facing documents consistent and avoids confusion when businesses personalize invoice report names.
Original PR description
**Steps to reproduce**: - install the `accounting` module. - Go to `Settings -> Technical -> Actions -> Reports -> Invoice or Invoice without payment` - Change the printed report name - Try to print…
**Steps to reproduce**:
- install the `accounting` module.
- Go to `Settings -> Technical -> Actions -> Reports -> Invoice or Invoice without payment`
- Change the printed report name
- Try to print the report via the print menu (gear icon -> print) -> The report is shown with the new updated name.
- Try sending the invoice the regular way -> the attached invoice has the default name, Odoo ignores the changes.
**Observation**:
When printing the invoice manually, the file name correctly reflects the custom name configured in the report action. However, when sending the invoice by email, the attachment file name does not match the updated name and remains hardcoded.
**Issue**:
The email attachment file name is hardcoded in the mail sending logic. in the method:
```python
def _get_invoice_report_filename(self, extension='pdf'):
self.ensure_one()
return f'{self.name.replace('/', '_')}.{extension}'
```
It does not dynamically fetch the updated report name from the configured report action.
**Solution**:
When a custom report template is configured on the customer on field `(invoice_template_pdf_report_id)`, the system now dynamically uses the corresponding name from the report action for the email attachment.
opw-4923035
Forward-Port-Of: odoo/odoo#219279When a reply is deleted in Discuss, the original parent message reference is now hidden along with the deleted content. This keeps conversations cleaner and avoids showing outdated context for messages that have been removed.
Original PR description
**Current behavior before PR:** When a user replies to a message and then deletes it, the message body changes to 'This message has been removed.' However, the mention of the parent message remains visible. **Desired behavior after PR is merged:** The parent message mention is no longer shown if the message is deleted. Task-4593293 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Survey invitation emails now respect the subject set on the selected email template instead of reverting to the default survey subject. This helps businesses keep customized survey messaging consistent when sharing surveys by email.
Original PR description
Description of the issue/feature this PR addresses: When a user updates the subject on a template used for a survey, it does not pull the subject from the template. It uses the default subject that…
Description of the issue/feature this PR addresses:
When a user updates the subject on a template used for a survey, it does not pull the subject from the template. It uses the default subject that is used when computing the subject for a survey email that is sent out. This bug came as a part of [this commit](https://github.com/odoo/odoo/commit/220e0271bf43e914950b8ae0d4a1cca5f3ea6d9c).
I've used an elif condition over here as opposed to calling super which was being done before so that the default of Participate to X survey still becomes the default subject.
opw-4654411
Steps to reproduce on runbot:
1. Go to mail templates and search for Survey
2. Open the Survey: Invite template
3. Update the subject on this template
4. Open the Surveys app and select any survey
5. Click on Share and then enable send by email
6. The subject here will default to "Participate to {Survey Name}"
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#219122
Forward-Port-Of: odoo/odoo#211153This fix prevents an error when users click the "From WH" button on a project task in the community edition. The button now avoids opening an unavailable map view, keeping the workflow usable while allowing enterprise-specific behavior to be added separately.
Original PR description
* STEP TO REPRODUCE: go to task of a project, enable 'From WH' in top bar button. Click on it -> error because no map view * SOLUTION: in community version we should remove map view then in enterprise we can overide to add it 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#222003
The manufacturing unbuild form now respects the decimal precision configured for the product's unit of measure. This lets users reverse manufacturing orders with quantities such as 1.234 without the system rounding or limiting the value to two decimal places.
Original PR description
Steps to reproduce the bug:
- Set the decimal precision and rounding accuracy for the unit of measure to more than 2 digits (e.g. 3)
- Create a storable product “P1”
- Create a manufacturing order to produce 1.234 units
- Confirm and validate it
- Try to unbuild the MO
Problem:
The unbuild form does not respect the product's UoM decimal precision, allowing only 2 digits for product_qty.
opw-4818591
Forward-Port-Of: odoo/odoo#211944Incoming return slips now show the correct destination address instead of placeholder demo text. This helps warehouse and receiving teams rely on printed return documents without manual correction or confusion.
Original PR description
Issue ----- Incoming return slips have a "Demo Address and Name" text instead of the correct destination address. <img width="928" height="658" alt="image"…
Issue ----- Incoming return slips have a "Demo Address and Name" text instead of the correct destination address. <img width="928" height="658" alt="image" src="https://github.com/user-attachments/assets/6ff0a5e7-f1ee-4faa-a22b-76ec8f2f7a28" /> Steps to reproduce ----- - Create a receipt for a product - Print its return slip Cause ----- By default, the address is taken from the pickings location_id -> warehouse_id -> partner_id. For incoming pickings, the warehouse is the vendor one, with no associated partner. In such cases, the partner can be found directly on the picking itself with the partner_id field. Note ----- To render t-fields, qweb first applies a `rsplit` before evaluating the expression, see https://github.com/odoo/odoo/blob/cb1c761777e84d96f82c4f754586795509ce1b3d/odoo/addons/base/models/ir_qweb.py#L2015-L2016 With this in mind, using parentheses and moving `.partner_id` outside of them seems like the most readable way to go about it. ----- Ticket: opw-4660716 Forward-Port-Of: odoo/odoo#219011
This change makes an automated Point of Sale test wait until menu buttons are ready before trying to click them. It helps prevent false build failures caused by timing issues, improving confidence in release testing without changing the user-facing product.
Original PR description
steps to reproduce: 1. in multi enterprise 2. run the tour `test_02_others` added a wait step for the menu buttons before clicking the menu button in the `chrome_util.js` file. build_error-229618
The HTML editor’s remove formatting action now clears multiple styles, such as font size, color, and bold, with a single click. This avoids repeated user actions and makes editing formatted text more predictable.
Original PR description
**Current behaviour before PR:** Steps to reproduce: - Select a text - Apply font size - Apply color - Apply bold - Clicking on removeFormat button doesn't remove all formats User has to click on removeFormat button twice to remove the format. **Desired behaviour after PR is merged:** Now, all formats are getting removed at once when clicking on removeFormat button. task-4911199 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218093
The update recognizes pm.me as a generic email provider in Odoo's IAP-related email handling. This helps avoid treating Proton Mail short-domain addresses as company-specific addresses, improving consistency in automated email/domain checks.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#215290 Forward-Port-Of: odoo/odoo#214036
The US payroll leave type screen now includes the intended fields because the related view is properly loaded. This also corrects a label, helping payroll users see the right information when configuring leave types.
Original PR description
Before this commit, the modification of the leave type views was not introduced in the manifest, resulting in the fields being absent from the view. This commit corrects the label as well as introduces that view in the manifest
This change makes an automated barcode stock test wait for the destination location update to appear before continuing. It reduces random test failures, helping keep stock barcode quality checks stable without changing business workflows.
Original PR description
A non-deterministic error has been occurring across all versions starting from 18.0 when running the `test_split_line_on_destination_scan`. problem: The issue lies in one of the steps of the tour,…
A non-deterministic error has been occurring across all versions starting from 18.0 when running the
`test_split_line_on_destination_scan`.
problem:
The issue lies in one of the steps of the tour, where the destination location of the remaining quantity is changed from WH/Stock to shelf1 (LOC-01-01-00). Right after this change, the test proceeds to assertLineDestinationLocation. However, the test step was previously waiting for the presence of the .o_validate_page.btn-primary element — an element that is already visible before the destination location update is actually applied. As a result, the tour sometimes skips to the next step prematurely, without ensuring the location change has occurred, leading to test failure.
Fix:
We replaced the trigger .o_validate_page.btn-primary with a more reliable condition: waiting for an element containing the destination text .../Section 1 (.o_line_destination_location:contains(".../Section 1")). This ensures that the step only proceeds once the destination update has been reflected in the UI.
Runbot-145458
Forward-Port-Of: odoo/enterprise#91927The Swedish SIE import now skips accounting entries that contain no transaction lines. This prevents invalid empty entries from being created in Odoo, improving reliability when importing SIE4 files with unsupported transaction tags.
Original PR description
The aim of this commit is making sure that we don't import move without transaction in it. In SIE4, we can have moves with BTRANS and RTRANS tags that we are ignoring. It means that we could have move without any move lines. It's not an expected behavior in Odoo. This commit checks that the move data are created only if we have lines for that move. no task id Forward-Port-Of: odoo/enterprise#91783