Thursday, September 25, 2025
20 changes · 19.0
Enhancements to existing features
This update improves the accounting tax calculation tools used for global discounts and down payments. It helps keep document totals stable during tax recomputation and prepares the accounting module for upcoming product bundle improvements.
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#228440
Resolved issues and error corrections
General Ledger PDF footers now allow longer company names, preventing them from being cut off when reports are printed. The footer spacing was also increased so longer names display cleanly without crowding the page.
Original PR description
**Steps to reproduce:** 1. Install the Accounting module. 2. Set a company name longer than 24 characters. 3. Go to Accounting → Reporting → General Ledger. 4. Print the report → in the PDF footer,…
**Steps to reproduce:** 1. Install the Accounting module. 2. Set a company name longer than 24 characters. 3. Go to Accounting → Reporting → General Ledger. 4. Print the report → in the PDF footer, the company name is truncated. **Issue:** - The company name in the General Ledger report footer is cut off if it exceeds 24 characters. **Cause:** - The footer uses a static value limited to 24 characters: https://github.com/odoo/enterprise/blob/08564f3312c255f2f3ab95cef5a9bfc57727bd1f/account_reports/models/account_report.py#L5850-L5860 **Solution:** - Increased the footer text limit from 24 to 80 characters. - Adjusted page margin by changing `'data-report-margin-bottom': 15` → `'data-report-margin-bottom': 20` to ensure proper spacing for longer company names in the PDF. **After Apply Solution** <img width="1038" height="86" alt="After solution" src="https://github.com/user-attachments/assets/51ece47c-1950-4a54-8be3-f7ac2bbd8a0d" /> **Before Without Solution** <img width="1050" height="66" alt="Before Solution" src="https://github.com/user-attachments/assets/a13b9132-bf04-422a-8e32-1db5225afc33" /> opw - 5025972 Forward-Port-Of: odoo/enterprise#94535
Documentation and clarification updates
This pull request records that Fomasoft has signed Odoo's Contributor License Agreement. It is an administrative legal update that enables their contributions to be accepted under the project’s contribution rules.
Original PR description
Signed by CLA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update prevents an employee list from appearing empty for users who do not have HR permissions. It avoids loading an employee avatar field that can trigger an access error, helping manufacturing users keep working without disruption.
Original PR description
HR use an access right on field. However they have an issue with the avatar field that return an error while it should not. Until they provide a fix limit the avatar field when the user don't have the hr user group. Forward-Port-Of: odoo/enterprise#95424
Users can no longer try to send a WhatsApp message without selecting a template, preventing an error that interrupted the sending process. This makes the WhatsApp messaging flow clearer and more reliable for users.
Original PR description
Currently, an error occurs when the user attempts to send a whatsapp message without selecting a template. **Steps to Reproduce:** 1. Configure a WhatsApp Business Account and synchronize the…
Currently, an error occurs when the user attempts to send a whatsapp message without selecting a template. **Steps to Reproduce:** 1. Configure a WhatsApp Business Account and synchronize the templates. 2. Open any contact and click the **WhatsApp** button next to the phone number. 3. Remove the template and click **Send Message**. **Error:** `ValueError - Expected singleton: whatsapp.template()` **Cause:** At [1], it attempts to fetch the formatted body and header from the template ID. Since no template is selected, it results in an error. **Fix:** This commit makes the field `wa_template_id` required, preventing users from sending a whatsapp message without a template. In stable versions, raise a validation error if a user attempts to send a message without selecting a template. [1] - https://github.com/odoo/enterprise/blob/fff9ad7999d4ff13adf899b2517e750a36c1261a/whatsapp/wizard/whatsapp_composer.py#L319 sentry-6854466874 Forward-Port-Of: odoo/enterprise#93898
Czech localization demo accounting entries now use dates that stay consistent when company details are updated. This prevents validation errors so users can save changes to a Czech company's address when demo data is installed.
Original PR description
## [FIX] l10n_cz: prevent error with misaligned accounting date and sequence number of demo moves #### Description of the issue/feature this PR addresses: Editing CZ Company address while having demo…
## [FIX] l10n_cz: prevent error with misaligned accounting date and sequence number of demo moves #### Description of the issue/feature this PR addresses: Editing CZ Company address while having demo data throws Validation Error #### Current behavior before PR: When trying to change address of CZ Company while l10n_cz with demo data is present an error popup is displayed and it's not possible to to save the changes. Steps to reproduce: - Install l10n_cz with demo data - Open CZ Company in form view - Change address (e.g. change city Praha -> Brno) - Click Save #### Desired behavior after PR is merged: The address changes are saved without any error. #### Solution: This change adds `taxable_supply_date` date values for CZ demo moves that are compatible with `invoice_date` values to make sure that accounting date values are the same on each recomputatation and do not lead to new sequence numbers that are not aligned with the previous ones which would cause errors being raised by sequence mixin. Related to: #226152 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#228157 Forward-Port-Of: odoo/odoo#227847
This fix prevents an error when users tap the reconcile button from a mobile screen. The desktop-specific reconciliation behavior is now kept to desktop views, improving reliability for mobile accounting workflows.
Original PR description
When clicking on the reconcile button in mobile, the js_class of the custom list view is never triggered because, in small screens (aka. "mobile"), by default, kanban views are used instead of list views (or at least take precedence). To avoid having a traceback, we will keep the custom behavior in desktop only no task id Forward-Port-Of: odoo/enterprise#95145
Arrow keys used while navigating a dropdown now stay focused on that dropdown instead of triggering actions elsewhere on the page. This prevents unexpected navigation or behavior and makes the interface more predictable for users.
Original PR description
This commit prevents arrowleft and arrowright hotkeys to trigger on other parts of the UI when navigating a dropdown. Community: https://github.com/odoo/odoo/pull/226604 Task: [5048895](https://www.odoo.com/odoo/project.task/5048895)
This fix restores the ability to change icons in the Share snippet when it is placed after another website building block. It ensures website editors can customize social sharing elements reliably, avoiding a frustrating editing issue.
Original PR description
Steps to reproduce: - Add an "Image-Text" snippet on the page. - Drop the "Share" snippet below the image. - Double click on an icon to change it. -> Problem: the icon can not be changed Note: in the above steps to reproduce, an important think is that the "Share" snippet is not the first snippet that is dropped. The problem is that the icons and the title of the snippet were added in the `extra_contenteditable_handlers` resource. The handler of this resource takes the elements of `force_editable_selector` that are inside the `root` (that is the column of the snippet if the "Share" snippet is the second dropped snippet) and checks for other elements. Because they are no elements remaining after checking for elements of the `force_editable_selector` resource, the system does not correctly add the `contenteditable` attribute on those elements. task-5107669
This fix restores a missing database index for stock rules linked to companies. It prevents misleading upgrade messages and helps keep stock-related upgrade checks aligned with expected system behavior.
Original PR description
due to conflict on this forward port https://github.com/odoo/odoo/pull/113045 ``index=True`` was removed according to this pr https://github.com/odoo/odoo/pull/90531 So, adding it back during upgrade it shows misleading logs ``` 2025-08-26 22:19:25,039 23 INFO db_3112946 odoo.schema: Keep unexpected index stock_rule_company_id_index on table stock_rule ``` opw-5052223 upg-3112946 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#226268
Scheduled customer statement sends now skip partners that were deleted before processing. This prevents the automatic account report job from failing and helps ensure remaining queued reports continue to be sent reliably.
Original PR description
When a partner included in a batch send is deleted before the cron "Send account reports automatically" runs, the cron fails because the partner no longer exists. Steps to reproduce: 1. Create partner A and a draft invoice linked to it 2. Go to Partner Ledger and select Customer Statement report 3. Click on Send and validate - Ensure the scheduled action is not executed immediately (e.g. by deactivating it) 4. Delete partner A 5. Run the cron "Send account reports automatically" -> Cron fails with "Record does not exist or has been deleted" This fix ensures only existing partners are kept for processing. opw-5085571 Forward-Port-Of: odoo/enterprise#95127
This update makes an internal website theme test wait for asset reloading to finish before completing. This reduces random test failures and helps keep development and release validation more stable, without changing the customer-facing website experience.
Original PR description
The goal of this commit is to fix an undetermined bug in the theme tab palette tests. Sometimes, ‘reload assets’ occurred before the end of the test. We will therefore wait to go through ‘reload assets’ before the end of the test in order to make it deterministic. Error: https://runbot.odoo.com/odoo/error/232650 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#228175
This fix ensures timesheet reports correctly include helpdesk ticket information where intended. It corrects a previous report update that did not properly target the existing report field, helping users see complete ticket-related timesheet details.
Original PR description
Description of the issue/feature this PR addresses: The previous commit attempted to extend the timesheet report to display tickets by using position="attributes" on a new . This approach does not work in Odoo reports because position="attributes" can only modify existing elements. There is no indication that the behavior of not displaying tickets was intentional, so this PR corrects that implementation. Current behavior before PR: The previous fix did not correctly locate the existing element for task/project info. Desired behavior after PR is merged: The existing is correctly found and updated to include show_ticket in its t-if. Forward-Port-Of: odoo/enterprise#95206
Resetting an Odoo Calendar connected to Google Calendar no longer fails because of permissions on events the user cannot edit. This prevents an unnecessary error during calendar resets and lets users complete the reset process smoothly.
Original PR description
Before this commit, when resetting the Odoo Calendar of an user, it would trigger a ValidationError for updating events that the current user wasn't able to update, even though it was not an updated per se, but just a deletion of it in Odoo. After this commit, we no longer trigger that ValidationError during resets of Odoo Calendars, fixing the error. task-5103918 Forward-Port-Of: odoo/odoo#228195 Forward-Port-Of: odoo/odoo#227991
A small fix ensures Swedish ISO 20022 payment journal processing passes all needed information when other Odoo modules extend it. This helps avoid errors or missing details in payment file generation for customized setups.
Original PR description
Pass all arguments to super-call of _get_company_PartyIdentification32-method in account_iso20022/models/account_journal_iso20022_se.py so they can be passed correctly in other modules inheriting the method. Forward-Port-Of: odoo/enterprise#93883
This fix ensures the cash movement popup in Point of Sale uses the translated text instead of the original untranslated variable. It improves the experience for users working in languages other than the default by showing localized wording consistently.
Original PR description
Makes changes for translation Description of the issue/feature this PR addresses: Error variable code for translation Current behavior before PR: The original variable is used Desired behavior after PR is merged: The translated variable is used --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents accounting reports from trying to refresh after the report view has already been closed or replaced. Users are less likely to encounter an error when navigating away while a currency rate filter dropdown is open.
Original PR description
For the currency rate filter, applyFilters is called when the dropdown is closed. It might heppen that we have the dropdown open then we click on something that trigger the destruction of the report view but that still trigger applyFilters which try to apply filter on a destroyed component which is illegal. To prevent this we check if the component is destroyed before reloading the controller. Forward-Port-Of: odoo/enterprise#94313
The kiosk online payment page now shows a single background instead of duplicating it behind the QR code payment section. This improves the visual clarity and polish of the self-order payment experience for customers.
Original PR description
pos_online_* = pos_online_payment_self_order This commit ensures that only one background is displayed on the kiosk online payment page. The background is correctly displayed in 'pos_self_order.PaymentPage', and it should not be displayed again in the “Scan the QR code to pay” subcomponent. <img width="688" height="485" alt="Screenshot 2025-09-24 at 13 49 00" src="https://github.com/user-attachments/assets/e521ffce-82db-4900-828a-5d086fa9b4ac" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#228424
This fixes an issue where General Settings could crash if a company using GCC invoicing had no country set in its address. The system now safely checks that a country exists before applying GCC-specific invoice logic, allowing users to continue configuring company settings normally.
Original PR description
Steps to reproduce:-
- Install `l10n_gcc_invoice` module.
- Go to Companies and open current Company.
- Remove Country from company Address.
- Click on General Settings.
Error :-
Pastebin: https://pastebin.com/xWqVDWjB
```
File /home/odoo/odoo18/odoo/community/addons/l10n_gcc_invoice/models/res_company.py, line 13, in _compute_l10n_gcc_country_is_gcc
record.l10n_gcc_country_is_gcc = 'GCC' in record.country_id.country_group_codes
TypeError: argument of type 'bool' is not iterable
```
Root cause: At [1], `record.country_id.country_group_codes` is considered as iterable, but when no country is set on company it evaluates to False.
Solution: First check for `country_id` before checking `country_group_codes`.
[1]: https://github.com/odoo/odoo/blob/45fcd9716fe8cabd4db2ddbdf54caa8f69d5a013/addons/l10n_gcc_invoice/models/res_company.py#L13The web client now passes the action identifier into view settings so Odoo Studio can correctly tell whether an action can be edited. This prevents incorrect editability decisions in Studio and improves reliability without changing day-to-day workflows.
Original PR description
This information is required so that the studio can determine whether the action can be edited. opw-5066488 Forward-Port-Of: odoo/odoo#228371 Forward-Port-Of: odoo/odoo#227264