Monday, September 1, 2025
16 changes · master
Resolved issues and error corrections
This fix makes the French VAT report wizard handle incomplete draft records safely, avoiding crashes during automated checks or setup flows. It ensures VAT amounts are recalculated when key report dates or report selections change, improving reliability without changing the visible reporting workflow.
Original PR description
steps to reproduce the issue : 1- install l10n_fr_hr_payroll_account without demo data 2- and run this test .test_computed_fields_without_dependencies Added a dependencies using…
steps to reproduce the issue :
1- install l10n_fr_hr_payroll_account without demo data
2- and run this test .test_computed_fields_without_dependencies
Added a dependencies using @api.depends('report_id', 'date_from', 'date_to') on the _compute_vat_amount method to ensure automatic re-evaluation when any of these fields change.
In test_computed_fields_without_dependencies, the record is created using model.new(), which means required fields like report_id, date_from, and date_to may not be set yet. This caused a crash due to ensure_one() on an empty report_id.
Even though these fields are required, they are not automatically filled when using model.new() (unlike saved records).
Also introduced early exits by setting default values (vat_amount = 0.0, is_vat_due = False) and skipping computation when any of the required fields (report_id, date_from, date_to) or result VAT lines are missing because of ensure_one() in options.
These safeguards prevent errors in the test
build_error-115299
Forward-Port-Of: odoo/enterprise#87608Bank statements can now be created even when a bank journal has no outstanding receipt or payment account configured. This prevents an error that blocked users during statement creation in Accounting.
Original PR description
**Steps to reproduce:** - Install Accounting - Make sure that no outstanding receipt/payment account is configured on the Bank journal - Go to the Bank journal - Create a new statement **Issue:** A traceback is raised while executing a SQL query. **Cause:** A IN condition is evaluated with an empty tuple: `AND aml.account_id IN ()` This is due to the fact that there is no outstanding account. **Solution:** Only execute the SQL query if there is an outstanding account. opw-5039931 Forward-Port-Of: odoo/enterprise#93091
The Estonian tax report XML export now avoids creating duplicate 22% tax transaction entries. It combines the relevant report line balances into a single XML entry, helping businesses submit cleaner and more accurate tax reports.
Original PR description
Before this pr: - There are two transactions22 entries were introduced because we are having two report lines for 22% tax computation, one with '1' tag, which is valid till 31 June 2025, and another one with '1_2' tag, which is valid from 1 July 2025. After this pr: - The balance computation during export to XML is now adding the balance of both line '1' and '1_2' into line '1' only. - So now we do not need an extra transactions22 entry in the XML tax report. - We are keeping both report lines for now, but the XML report will have only one entry with the total sum of balances in both report lines Related PR: https://github.com/odoo/enterprise/pull/91364 Forward-Port-Of: odoo/enterprise#93298 Forward-Port-Of: odoo/enterprise#92662
The French VAT reporting process now uses the correct account when creating reimbursement entries. This helps ensure reimbursement accounting is posted accurately and reduces the need for manual corrections.
Original PR description
This commit will change the account used for the reimbursement move. task-4932427 Forward-Port-Of: odoo/enterprise#91212
The timesheet leaderboard now correctly shows the tip of the day when the leaderboard feature is enabled. This restores expected guidance for users viewing leaderboard dialogs and timer grid screens.
Original PR description
Steps to Reproduce: -- - Open timesheet module - Go to setting and enabled leaderboard feature - Open leaderboard dialog and there you will be able to see tip of the day is not visible Issue: -- The issue was even after enabling the leaderboard feature the tip of the day was not visible inside the leaderboard dialog which is unexpected behaviour. Cause: -- The root cause was inside the getLeaderboardData method call where we were not fetching tip from the orm call and the issue is caused by this PR https://github.com/odoo/enterprise/pull/78541 Fix: -- To resolve this, I have include tip while making orm call also store that tip value inside leaderboardData task-4981767 Forward-Port-Of: odoo/enterprise#92811
Gantt popover cards now show standard labels such as Name, Start, and Stop in the user's selected language. This improves the experience for non-English users when viewing custom Gantt menus created through Studio.
Original PR description
Steps to Reproduce: - Change the language to something other than English. - Create a new menu in the Appointment module using Studio. - Link that menu with the existing model (Resource Time of…
Steps to Reproduce: - Change the language to something other than English. - Create a new menu in the Appointment module using Studio. - Link that menu with the existing model (Resource Time of Detail). - Save the changes and add the Gantt view - Save the changes and close Studio. - View this new menu in the Gantt view Issue: - When clicking onto the kanban popover card for any record, the labels will remain as "Name" , "Start" , and "Stop" in English, and it will not translate. Reason: - [1] changed the rendering of default kanban card templates from XML to JS. This changed the default template to be static. Fix: - Add a call to the translation core tool "_t" on the three labels upon their generation in _getKanbanViewParams(). This ensures that the arch template that is generated is translated correctly into the user's set language. [1] : b2e31239041e6b7850888a3ae070c3f8a40ea5ee [opw-4861899](https://www.odoo.com/odoo/my-tasks/4861899) Forward-Port-Of: odoo/enterprise#90605
The AI command palette now avoids repeated background lookups while a user types. This prevents flickering and makes the command palette feel steadier and more responsive.
Original PR description
Previously, when typing in the command palette with the AI module installed, the system called `get_ask_ai_agent` on every keystroke. This caused flickering in the command palette. Now, the rpc call is made only once to retrieve the id and name, avoiding repeated calls while typing. task-4997566
This update resolves an access problem that could prevent authorized HR users from viewing or using a UAE payroll salary field. The field is now limited to the appropriate HR user group, reducing errors during payroll work.
Original PR description
Issue: - Getting access error on l10n_ae_total_salary as no group defined in the field. Fix: - Added group hr.group_hr_user to this field. task-5028831
This update removes an unnecessary duplicate country field from account reports and restores the ability to edit the main country setting where needed. It also makes automatic generation default correctly for tax return types, helping reduce setup mistakes.
Original PR description
this field is no longer needed since the field country_id contains the necessary information. Also, makes the field country_id readonly=False, it was originally the case and got changed when switched to a computed field Finally, change the recently added field auto_generate to a computed field since we want the default value to be True if it is of category "Tax Return".
The automated purchase and rental comparison test now checks the redesigned comparison bottom bar instead of an old removed button. This keeps quality checks aligned with the current shopping experience and helps prevent false test failures.
Original PR description
This PR fixes an issue with the comparison tour, which was still looking for `product_comparison_button`, which was removed in the comparison redesign. It now uses the new bottom bar component instead. task-4911142
Sales commission reports now use the right database access mode when preparing report data. This prevents warnings or failures when users open commission reports, improving reliability without changing report content.
Original PR description
Since https://github.com/odoo/enterprise/pull/88646 a temporary table is created to speed up computation of commission report. As dislayng the report is creating and dropping the temporary table, it is not compatible anymore with a read only cursor. This commit ensure that a read write cursor is used to prevent warning and errors. task-4982555 Forward-Port-Of: odoo/enterprise#91352
This fix avoids unnecessary warning messages when automated tests create document records from reports that only look like PDFs. It keeps test logs cleaner and reduces noise for teams validating document and accounting workflows.
Original PR description
Following the activation by default of account document synchronization, a lot of tests now create indirectly documents. In test mode, IrActionsReport._pre_render_qweb_pdf renders pdf as html but with the pdf mime type leading to a warning when this fake pdf is provided to documents_document._get_is_multipage method. In odoo/enterprise#90662, we have prevented _get_is_multipage to emit a warning by turning it in an info log when in testing mode, and we detect that the document content is actually a html content. Unfortunately, at that time, pypdf was not emitting a warning so we have done that check when an error happens. To solve the problem we check the content before sending it to pypdf to avoid the pypdf warning. Task-5052041
Fixed an issue where users saw an Aadhaar warning popup unnecessarily when editing signer settings with multiple documents uploaded. Users can now assign roles and save signer changes without irrelevant interruptions.
Original PR description
**Vession:** - saas-18.5 **Steps to reproduce:** - Add Signer - Click three dot menu - Click Edit - Change something / nothing - Save **Issue:** - When multiple documents are uploaded, the Aadhaar popup always appears when opening the signer settings panel. **Solution:** - Added a condition to check for multiple documents and roles before showing the Aadhaar popup. **Impact:** - Now you can upload multiple documents, assign roles, and save without seeing unnecessary warnings. task-5051317
This fixes a payroll settings issue so Croatia-specific configuration options are tied to the correct country. It helps ensure businesses see the appropriate payroll settings for their localization and avoids confusion from incorrect country targeting.
Original PR description
ref - https://github.com/odoo/enterprise/pull/83609
Receipts now correctly show the order tracking number when a point-of-sale setup uses a preparation display or preparation printer. This helps staff and customers match receipts with prepared orders more reliably.
Original PR description
- Ensure the `tracking_number` is dipslayed on receipts for config which use a preparation dipslay or a preparation printer. task-id: 4922308 community PR: https://github.com/odoo/odoo/pull/222094 Forward-Port-Of: odoo/enterprise#93318 Forward-Port-Of: odoo/enterprise#91833
Payslip calculations for terminated employees in Egyptian payroll now continue even when the employee has no annual leave allocation. Instead of crashing, the system treats the remaining leave as zero, helping payroll teams process final payslips reliably.
Original PR description
When computing payslips for terminated employees (archived) with no annual leave allocations, the method `_l10n_eg_get_annual_remaining_leaves` raised a traceback due to missing allocation data. This fix ensures the method safely handles employees without allocations by returning 0 remaining leaves instead of crashing. This guarantees payslip computation works correctly for employees with no leave allocations. task-5026406 Forward-Port-Of: odoo/enterprise#92777