Monday, September 22, 2025
12 changes · 19.0
Resolved issues and error corrections
This fix ensures that running a full Odoo update properly refreshes all existing views, including those from modules that were already fully upgraded. This helps prevent update failures and missing-screen errors during maintenance or deployments.
Original PR description
Description of the issue/feature this PR addresses: --update=all fails because self.pool._init_modules is empty Current behavior before PR: when runnig with --update=all odoo fails to load some views because the corresponding module is not found Desired behavior after PR is merged: --update=all should upgrade all existing views [Runbot error](https://runbot.odoo.com/odoo/runbot.build.error/231527) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an issue where Saudi Arabia invoice PDFs could omit the company logo when another localization module was installed. This ensures printed invoices display the correct company branding for customers and compliance documents.
Original PR description
steps to reproduce: ------------------- 1. Install `l10n_sa_edi` and `l10n_latam_invoice_document` 2. Create and confirm an invoice. 3. Print the invoice PDF issue: ------ The company logo is not…
steps to reproduce:
-------------------
1. Install `l10n_sa_edi` and `l10n_latam_invoice_document`
2. Create and confirm an invoice.
3. Print the invoice PDF
issue:
------
The company logo is not printed on the invoice PDF.
cause of the issue:
-------------------
The `l10n_latam_invoice_document` hides the standard company logo if
`company_header` is set to true:
https://github.com/odoo/odoo/blob/0f6cb037e05db86e808682659a12442464b2cdd2/addons/l10n_latam_invoice_document/views/report_templates.xml#L6-L8
In the case of `l10n_sa`, the custom_header value is set because of this condition:
https://github.com/odoo/odoo/blob/0f6cb037e05db86e808682659a12442464b2cdd2/addons/l10n_sa/views/report_invoice.xml#L23
However, the condition in `l10n_latam_invoice_documnet` expects
a callable record instead of static XML data, which is incorrect:
https://github.com/odoo/odoo/blob/022fcbcf40a28afa56010f6130c26bb0503d5467/addons/l10n_latam_invoice_document/views/report_templates.xml#L9-L14
solution:
---------
Renaming the variable to `custom_header_sa` resolves the issue.
<details>
<summary>Click here to see:</summary>
Before:
<img src="https://github.com/user-attachments/assets/f4606a44-10ce-4038-92a3-2c8ec2a69edf"/>
After:
<img src="https://github.com/user-attachments/assets/70055155-63f2-4fec-aaf6-3bf5587f5591"/>
</details>
opw-4977422
Forward-Port-Of: odoo/odoo#225476This fixes bus notifications so users receive updates through both their direct groups and any groups they inherit. Administrators and other users with implied group membership will now see relevant Discuss channel updates immediately without needing to reload.
Original PR description
To target users of a group, bus notifications are sent on group records. To do so, user groups are added to its bus subscription. However, since odoo/odoo#179354, only explicit groups are added, not every implied group. It's incorrect. For example, sending on the user channel doesn't notify administrators while it should. Steps to reproduce (note that the steps are only working for admin): - Click the gear button on the sidebar in discuss page to navigate to the channel kanban view as admin - Click the `New` button and create a channel with an internal users group as `Auto Subscribe Groups` - Go back to the discuss main page. The new channel will not be pinned unless you reload the page See: https://github.com/odoo/odoo/pull/179354/files#r1954163704 Forward-Port-Of: odoo/odoo#217543
Bookkeeper and related accounting users can now open India tax returns without access errors on document summary lines. This keeps tax return review and navigation smooth for permitted users.
Original PR description
Before: - Bookkeeper users (`group_account_user`) encountered an access error of gstr document summary line when opening tax returns. - The error occurred because access rights were missing for the given model. Fix: - Added access rights for readonly, basic and accounting users. - Bookkeeper users can now view and navigate their permitted tax return records without errors. Impact: - Ensures smooth access to tax returns for Bookkeeper role.
This fixes an issue where changing an employee's check-in or check-out time could incorrectly reset approved extra hours to zero. Extra hours now recalculate when attendance times change, unless the user has intentionally edited the extra-hours value themselves.
Original PR description
**Steps to reproduce** - Automatically approved attendances. - Create an attendance and save it. - Note the "Extra hours" displayed. - From the form view, change the check in or check out and save…
**Steps to reproduce** - Automatically approved attendances. - Create an attendance and save it. - Note the "Extra hours" displayed. - From the form view, change the check in or check out and save it. - Issue: "Extra hours" are 0. Expected: they should be the same as "Worked extra hours", as the user has not manually modified the field. **Cause** Issue since cc81bb59f87540cf4dd8da65510417d8023ef65b The problem is that a 0 value for `overtime_hours` was computed for the `NewId` record used during edition in the interface. This meant `validated_overtime_hours` was also set to this value https://github.com/odoo/odoo/blob/cc81bb59f87540cf4dd8da65510417d8023ef65b/addons/hr_attendance/models/hr_attendance.py#L171 and sent on save, which meant the value was not further recomputed in `_update_overtime`. https://github.com/odoo/odoo/blob/cc81bb59f87540cf4dd8da65510417d8023ef65b/addons/hr_attendance/models/hr_attendance.py#L408 **Change** We avoid a recomputation of `validated_overtime_hours` in the interface (which wasn't useful anyway, it was set to 0) to avoid it being interpreted as a manual change by the user. opw-5003488 Forward-Port-Of: odoo/odoo#226393 Forward-Port-Of: odoo/odoo#222689
Duplicate records can now be found and merged in single-company databases even when their company value differs. This helps teams clean up data more reliably without needing multi-company settings or workarounds.
Original PR description
**Issue** In single company databases, it wasn't possible to find duplicate records with different `company_id` values to merge them (in multi company databases, it is possible to enable the "Cross-Company" option on the deduplication rule). **Change** Always ignore the company field in single company databases. opw-4794408 Forward-Port-Of: odoo/enterprise#94797 Forward-Port-Of: odoo/enterprise#93184
The Spanish Mod347 tax report now includes withholding tax lines when calculating report amounts. This prevents understated totals for affected customer or vendor transactions, helping businesses file more accurate Spanish tax reports.
Original PR description
Withholding taxes should be taken into account in mod347 tax report. Steps: - Create a bill for a spanish customer - Set the amount of 40000, tax 21% and 15% withholding tax - Go to mod347 tax report -> Line "B - Sales of goods and services greater than 3.005,06 €" is showing 42,400.00 instead of 48,400.00 (same goes for other lines with similar configuration) Before this commit, custom engines domains were only including aml with payable or receivable account. With this commit, we include tax lines that are of type 'retencion' in the custom engines domains. opw-4448662 Forward-Port-Of: odoo/enterprise#95066 Forward-Port-Of: odoo/enterprise#94338
This pull request resolves several user-facing issues, including payment checkout errors, invoice tax handling problems, and website editing layout glitches. It improves reliability for businesses using online payments, Indonesian e-Faktur invoicing, point of sale, events emails, and website snippets.
Customers using self-ordering will no longer see time slots that are already full or have passed. This prevents invalid selections and makes the ordering experience clearer and more reliable.
Original PR description
When selecting a preset in pos_Self_order the slots were not filtered. Issues: - Full slots were still displayed - Slots in the past were still displayed
This fix stops the Point of Sale restaurant flow from treating every product category as needing preparation when no kitchen printer or preparation display category is configured. Staff can now add and pay for orders without seeing an unnecessary “send to preparation” prompt, reducing confusion during checkout.
Original PR description
Steps to reproduce: - Open a pos restaurant config that has no prep printer/display. - Add an orderline. - The order button appear and if you try to pay the popup ask for send to preparation is shown. Issue: If there is no preparationCategories for a config getOrderChanges consider that all the available categories are the preparationCategories. Fix: If there is no preparationCategories, set the orderline uiState hasChange to false. Note: When no preparation printer category is defined, no categories is to be return by default. For the preparation display, if no preparation categories is selected preparationCategories will return all the available categories. Task-5016231 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#222950
The Danish minimal balance sheet and profit and loss reports were corrected so report formulas no longer include extra signs that could produce wrong values. Report line names and translations were also cleaned up for clearer presentation and consistency.
Original PR description
In the minimal reports of l10n_dk, it appears that some expression ended with a sign and the report engine was given wrong value. This commit will remove the extra sign to correct the report and also remove the letter or number before the name. This commit will remove the extra sign to correct the report and also remove the letter or number before the name. This commit will change the translation accordingly to the other commits task-4949062 Forward-Port-Of: odoo/enterprise#94350 Forward-Port-Of: odoo/enterprise#91135
Searching from the Help page now completes reliably instead of triggering an error. This prevents users from seeing a traceback and keeps the help experience smooth when looking for support content.
Original PR description
Steps to reproduce: 1. Navigate to the Help menu. 2. Search for any term in the search bar. - A traceback occurs. Issue: The search method did not wait for the RPC call to complete and returned a promise prematurely, leading to an unhandled traceback. Fix: Ensure the method properly awaits the RPC call before returning the result.