Daily updates from Odoo
Monday, July 6, 2026
32 changes
3 changes
Enhancements to existing features
The timesheet timer now opens with the project the employee has most recently and consistently used, making repeat time entry faster. If the user is already viewing a specific active project or task, that context still takes priority, while archived or template records are no longer suggested.
Original PR description
When opening the timesheet systray, the timer is now prefilled with the project to which the employee's three most recent timesheets are all linked, since they are most likely to keep logging time on it. The currently viewed project or task takes precedence over the favorite project, and viewing a project form now prefills the timer as well, just like task views already do. task-6290859 Forward-Port-Of: odoo/enterprise#120028
The payroll data update process is now configured for the Philippines payroll module. This helps keep standard, non-customized salary rules automatically up to date, reducing manual maintenance and improving reliability for payroll users.
Original PR description
Currently, the "Payroll: Update data" cron doesn't work for HK payroll as we never set up the _get_data_files_to_update. We can set up the list of data files to keep up to date to better support our users by automatically keeping non-edited salary rules up to date. task-6360470
Budget reports now use the same profitability basis as analytic profitability views when selecting analytic accounting entries. This helps finance teams see more consistent budget figures across reports and profitability analysis.
Original PR description
Use the new field analytic_profitability in the conditions of the query to get the account analytic lines of the budget report task-4959636 Forward-Port-Of: odoo/enterprise#121898 Forward-Port-Of: odoo/enterprise#121760
4 changes
Enhancements to existing features
Uzbekistan financial reports now include Russian translations alongside Uzbek. This helps businesses in Uzbekistan use the reporting module more easily in a market where Russian is commonly used for business communication.
Original PR description
Uzbekistan's business environment requires Russian in addition to the official Uzbek language to ensure adoption. While localizations typically activate only statutory languages, Central Asian market realities justify this exception. task-6229114 -- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/enterprise#122717 Forward-Port-Of: odoo/enterprise#120250
Budget reports now use the same profitability criteria as analytic profitability reporting. This helps ensure budget figures include the right analytic entries and stay consistent with profitability views.
Original PR description
Use the new field analytic_profitability in the conditions of the query to get the account analytic lines of the budget report task-4959636 Forward-Port-Of: odoo/enterprise#121760
This update ensures that restaurant staff can now always access course management features, even when Course Allocation is enabled. A helpful message has also been added to guide users through the course creation process. This improves the overall functionality for restaurants using the Odoo Point of Sale system.
Original PR description
Before this commit: ======================= The Courses menu was always hidden because it was restricted to `base.group_no_one`, making course management inaccessible even when Course Allocation was enabled in a restaurant PoS. After this commit ====================== The Courses menu now always visible. A help message is also added to the Courses action to guide users when creating courses. Task-6317914 Forward-Port-Of: odoo/odoo#271308
This update adds a 'Profitability' field to account analytic lines, enabling a clearer breakdown of revenue and loss within the Analytic Report. This enhancement provides better visibility into profitability trends, helping businesses understand the financial performance of their operations.
Original PR description
[IMP] account: group analytic items by profitability This commit add a new field 'Profitability' on the account analytic line model, this will allow to visually split analytic line items in 2 categories: 'Revenue' and 'Loss' in the Analytic Report task-4959636 Forward-Port-Of: odoo/odoo#262962
2 changes
Enhancements to existing features
Budget reports now use the same profitability criteria as analytic profitability views when selecting analytic accounting lines. This helps make budget figures more consistent with profitability reporting, improving confidence in financial analysis.
Original PR description
Use the new field analytic_profitability in the conditions of the query to get the account analytic lines of the budget report task-4959636 Forward-Port-Of: odoo/enterprise#121760
This update enhances the error messages related to leave validity checks, particularly when creating public holidays. This improves the user experience for both customers troubleshooting issues and our support team, reducing the need for manual debugging.
Original PR description
The current message is pretty useless as of now when a lot of leaves are being written to, notably when creating a public holiday, which sets the state of all the leaves overlapping the public holiday's day to be reevaluated, and if an error occurs, you have to go through every employee's leave allocation and leaves taken to hopefully find one who might have to many days taken/not enough allocated. This extra information will be a huge QOL improvement, for the customer who will be able to troubleshoot his issue himself more easily, but also for our support team as the only way to debug those kind of issues now is to put a breakpoint there and see what employee has an issue. opw-4411999 Forward-Port-Of: odoo/odoo#270888 Forward-Port-Of: odoo/odoo#200376
3 changes
Enhancements to existing features
UK VAT returns now guide users to file from the correct tax unit when their company belongs to one. When a tax unit is included in the return, Odoo uses the tax unit VAT number for HMRC connection and submission, reducing filing errors.
Original PR description
BEFORE: - Before this commit, when the current company is a member of the tax unit, there is no blocking level error for the user to select the tax unit. - And the vat used while creating a connection to the HMRC or while sending a tax report to the HMRC is of the current company. AFTER: - After this commit, there is one blocking level error, which tells the user that the current company is part of a tax unit, and on confirmation, the tax unit will automatically be selected for the current report. - And if the return contains the data of a tax unit, then the vat set on the tax unit will be considered while establishing the connection and sending the tax report to HMRC. Task-5865605 Forward-Port-Of: odoo/enterprise#122908 Forward-Port-Of: odoo/enterprise#107253
This update adds Russian translations for the Chart of Accounts data within the Odoo localization module for Uzbekistan. Recognizing the widespread use of Russian in local accounting practices, this change expands Odoo's reach and improves adoption among Uzbek users. This supports a key market and enhances the overall user experience.
Original PR description
This change adds Russian translations for the Chart of Accounts data in the l10n_uz module. Standard practice is to enable only a country's official statutory language in localization modules However, the business reality of Central Asia particularly Uzbekistan justifies an exception: Russian is widely used in accounting practice there, and supporting it will significantly improve adoption among local users. task-6229114 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#269320
This update introduces a new 'Profitability' field to account analytic lines, enabling a clearer separation of revenue and loss items within the Analytic Report. This enhancement provides better visibility into the financial performance of each analytic line, improving reporting accuracy and decision-making.
Original PR description
[IMP] account: group analytic items by profitability This commit add a new field 'Profitability' on the account analytic line model, this will allow to visually split analytic line items in 2 categories: 'Revenue' and 'Loss' in the Analytic Report task-4959636 Forward-Port-Of: odoo/odoo#262962
2 changes
Enhancements to existing features
Budget reports now use the same profitability criteria as analytic profitability reporting. This helps finance teams compare budget and profitability views more consistently and reduces discrepancies in reported analytic line data.
Original PR description
Use the new field analytic_profitability in the conditions of the query to get the account analytic lines of the budget report task-4959636 Forward-Port-Of: odoo/enterprise#121760
UK VAT return filing now warns users when their company belongs to a tax unit and automatically switches the report to that tax unit after confirmation. When filing to HMRC, the system uses the tax unit's VAT details instead of the individual company's, reducing filing errors for grouped companies.
Original PR description
BEFORE: - Before this commit, when the current company is a member of the tax unit, there is no blocking level error for the user to select the tax unit. - And the vat used while creating a connection to the HMRC or while sending a tax report to the HMRC is of the current company. AFTER: - After this commit, there is one blocking level error, which tells the user that the current company is part of a tax unit, and on confirmation, the tax unit will automatically be selected for the current report. - And if the return contains the data of a tax unit, then the vat set on the tax unit will be considered while establishing the connection and sending the tax report to HMRC. Task-5865605 Forward-Port-Of: odoo/enterprise#122908 Forward-Port-Of: odoo/enterprise#107253
2 changes
Enhancements to existing features
Budget reports now use the same profitability classification as analytic profitability reporting when selecting analytic accounting entries. This helps businesses compare budgets and profitability with more consistent figures across reports.
Original PR description
Use the new field analytic_profitability in the conditions of the query to get the account analytic lines of the budget report task-4959636 Forward-Port-Of: odoo/enterprise#121760
This update adds a 'Profitability' field to account analytic lines, enabling a clearer breakdown of revenue and loss within the Analytic Report. This enhancement provides better visibility into profitability trends and improves financial analysis capabilities.
Original PR description
[IMP] account: group analytic items by profitability This commit add a new field 'Profitability' on the account analytic line model, this will allow to visually split analytic line items in 2 categories: 'Revenue' and 'Loss' in the Analytic Report task-4959636 Forward-Port-Of: odoo/odoo#262962
1 change
Enhancements to existing features
UK VAT returns now warn users when the selected company belongs to a tax unit and guide them to file from the correct tax unit. HMRC connections and submissions use the tax unit VAT number when the return includes tax unit data, reducing filing errors.
Original PR description
BEFORE: - Before this commit, when the current company is a member of the tax unit, there is no blocking level error for the user to select the tax unit. - And the vat used while creating a connection to the HMRC or while sending a tax report to the HMRC is of the current company. AFTER: - After this commit, there is one blocking level error, which tells the user that the current company is part of a tax unit, and on confirmation, the tax unit will automatically be selected for the current report. - And if the return contains the data of a tax unit, then the vat set on the tax unit will be considered while establishing the connection and sending the tax report to HMRC. Task-5865605 Forward-Port-Of: odoo/enterprise#107253
10 changes
Enhancements to existing features
Belgian payroll reporting now includes pool cars in both vehicle lists and related employer contribution calculations. This helps companies keep fleet-related payroll declarations more complete and aligned with Belgian reporting requirements.
Original PR description
. Add pool cars in vehicles list . Add pool cars in vehicles contribution task-6147532
Australian payroll data has been reorganized to make setup and leave handling clearer, with updated demo employees and contracts for easier demonstrations. Payroll and reporting wording has also been adjusted to better match Australian business terminology, improving usability for local teams.
Original PR description
## [IMP] l10n_au_hr_payroll{_{account,api}}: Revamp tooltips, master and demo data This revamp ensures AU-specific payroll and leave handling is more organized and demo-ready. Update…
## [IMP] l10n_au_hr_payroll{_{account,api}}: Revamp tooltips, master and demo data
This revamp ensures AU-specific payroll and leave handling is more organized and demo-ready.
Update hr_work_entry_type_data:
- Group work entry types by global/AU categories.
- Set default working schedule for AU companies to 38-hour resource calendar.
- Add time off types and convert paid time off to annual leave (avoid delete/create; update in place).
Demo data enhancements:
- Add employee images.
- Include country_id (AU) in hr_employee_demo.
- Revamped demo employee and contract data (9 employees in total)
Additional fixes and improvements:
- Add tooltips for improved UX in payroll/leave interfaces.
task-[5112796](https://www.odoo.com/odoo/all-tasks/5112796)
odoo/odoo#233335
odoo/upgrade#10302
## [I18N] account_reports, hr_payroll: revamp AU translations
We update some translations to be more aligned with local lingo.
task-[5112796](https://www.odoo.com/odoo/all-tasks/5112796)
odoo/odoo#233335
odoo/upgrade#10302Saudi payroll now supports a 30-day pay schedule so salary calculations can follow local legal requirements more accurately. The update also improves unpaid leave, GOSI contribution, allowance, and deferred amount calculations, helping reduce payroll discrepancies across different month lengths.
Original PR description
Purpose: Calculations in SA localization are done based on 30-day month basis accourding to the law. So, in this task we add 30 day pay schedule to allow 3 options: - Wroking days => Set schedule pay…
Purpose:
Calculations in SA localization are done based on 30-day month basis accourding to the law.
So, in this task we add 30 day pay schedule to allow 3 options:
- Wroking days => Set schedule pay as monthly and calendar as a normal one
- Calendar days => Set schedule pay as monthly and calendar as a full week one
- 30 days => Set schedule pay as 30_monthly and calendar as a full week one
Current behavior:
- changed the hardcoded value of 30 in salary rules to use number of days in the month accourding to the schedule pay
- corrected the computation of gosi rules to include all unpaid days in calculation
- changed some rules to use the correct category of `SA_ALW` instead of all allowances
- added a rule for deferred amount for the cases where the the employee took a full unpaid month in a non 30-day month
- added tests for 30-day pay schedule
Note that changes in tests are mainly because we are using working days instead of hardcoded 30 days per month
task-id: 6102084The UrbanPiper POS test order wizard can now validate discounts applied to individual products, not just the full order. Test order data also includes product taxes, making trial orders better match real customer orders and reducing the chance of configuration issues going unnoticed.
Original PR description
### Before this commit: - Test order wizard only supported order-level discount. - No way to validate line discount behavior from the test order flow. - Product Taxes were not included in the test order payload. ### After this commit: - Added `line_discount` field in the test order wizard. - Updated test order payload to include item-level discounts. - Added taxes in the test order payload based on the product taxes. - Updated test case to use the new `line_discount` field instead of passing it through context. Task:5240346
The timesheet timer now opens with a likely project already selected based on the employee's recent timesheets, while still prioritizing the project or task currently being viewed. It also avoids preselecting archived or template records, reducing mistakes and making time logging faster.
Original PR description
When opening the timesheet systray, the timer is now prefilled with the project to which the employee's three most recent timesheets are all linked, since they are most likely to keep logging time on it. The currently viewed project or task takes precedence over the favorite project, and viewing a project form now prefills the timer as well, just like task views already do. task-6290859 Forward-Port-Of: odoo/enterprise#120028
Payment users can now start individual or batch payments directly from the payment list, with clearer grouping, clickable batches, and visible Payment Initiation Service status. This reduces navigation and helps users understand which payments will be included before launching a bulk payment.
Original PR description
This commit makes the payment initiation workflow more intuitive
and accessible with the following UX improvements:
- Group payments by batch by default (since the batch list view
is restricted to debug mode).
- Add inline "Pay" buttons directly to standalone payment rows
and batch group-by headers.
- Make batches clickable directly from the list view.
- Display the PIS (Payment Initiation Service) status directly
in the list view for better visibility.
- Allow users to initiate a bulk payment from any single payment
within a batch. This includes a confirmation screen showing
all related payments in the batch before execution.
PS: Adding conditional buttons in the groupby batch_payment_id will
raise a traceback for empty lists if sample data is enabled. Turning
it off here to avoid the traceback. Will be reverted after the JS
team makes a fix.
task-6123868Budget reporting now uses the same profitability setting as analytic profitability views when selecting analytic lines. This helps ensure budget figures are consistent with profitability analysis, reducing confusion when comparing reports.
Original PR description
Use the new field analytic_profitability in the conditions of the query to get the account analytic lines of the budget report task-4959636 Forward-Port-Of: odoo/enterprise#121760
Online delivery order cancellations are now recorded in the point-of-sale order history with who cancelled them and why. This gives teams clearer visibility into cancellation patterns and makes support or operational investigations easier.
Original PR description
Before this commit: ------------------- - Online delivery order cancellations were not logged, making it difficult to determine the cancellation source and reason. After this commit: ------------------ - Added logs for online delivery order cancellations in the PoS order chatter. - The logs now capture both the cancellation source (Odoo POS or UrbanPiper) and the cancellation reason, improving traceability and debugging. Task-6244499
Planning reports now show time-based figures in hours and use clearer business-friendly labels such as Actual Time, Actual Revenue, and Time Variance. Report names and empty-state guidance were also improved, making it easier for users to understand planned versus actual work and project progress.
Original PR description
* _ = project_timesheet_forecast, project_timesheet_forecast_sale - Format all time-based measures in hours for better readability and consistency - Rename measures for clarity: | Initial Value | New…
* _ = project_timesheet_forecast, project_timesheet_forecast_sale - Format all time-based measures in hours for better readability and consistency - Rename measures for clarity: | Initial Value | New Value | |-----------------------------|-----------------------------------| | Effective Billable Time | Actual Billable Time | | Effective Margin | Actual Margin | | Effective Non-Billable Time | Actual Non-Billable Time | | Effective Revenues | Actual Revenue | | Effective Time | Actual Time | | Effective Costs | Actual Costs | | Planned Revenues | Planned Revenue | | Time Remaining | Time Variance (Planned − Actual) | | Time Difference | Time Variance (Planned − Actual) | - Rename reports: | Initial Value | New Value | |--------------------------------|-----------------------------------| | planning / timesheets analysis | Planning & Timesheets Analysis | | planning / attendance analysis | Planning & Attendance Analysis | - Improve empty state helper message: `No data yet! Track your projects’ progress by comparing planned hours with actual hours recorded` Task: 6042556
French fiscal declaration reports now let users choose a year with a date picker instead of typing it as plain text. This reduces entry mistakes and makes the reporting workflow clearer for users completing the declaration.
Original PR description
For the french fiscal declaration, a line of the report needed a year to be enter by the user. Instead of using a string, we think it would be better to use a datetime picker with the precision of the year. This commit will introduce that. task-6159852
4 changes
Enhancements to existing features
UK VAT returns now guide users to file through the relevant tax unit when their company belongs to one. This helps ensure HMRC connections and submissions use the tax unit’s VAT number instead of the individual company’s VAT number.
Original PR description
BEFORE: - Before this commit, when the current company is a member of the tax unit, there is no blocking level error for the user to select the tax unit. - And the vat used while creating a connection to the HMRC or while sending a tax report to the HMRC is of the current company. AFTER: - After this commit, there is one blocking level error, which tells the user that the current company is part of a tax unit, and on confirmation, the tax unit will automatically be selected for the current report. - And if the return contains the data of a tax unit, then the vat set on the tax unit will be considered while establishing the connection and sending the tax report to HMRC. Task-5865605 Forward-Port-Of: odoo/enterprise#122908 Forward-Port-Of: odoo/enterprise#107253
GSTR-1 JSON generation for Indian tax reporting has been optimized to use less memory and complete faster. This should improve performance when preparing GST filings, especially for larger datasets, without changing the report's business purpose.
Original PR description
This PR intends to improve both memory and time performance by using precomputing required values for GSTR-1 JSON generation. task-3941950 Community PR - https://github.com/odoo/odoo/pull/273087
Hong Kong payroll now participates in the automatic payroll data update process. This helps keep standard salary rules up to date for users, reducing manual maintenance while preserving rules that have been edited.
Original PR description
Currently, the "Payroll: Update data" cron doesn't work for HK payroll as we never set up the _get_data_files_to_update. We can set up the list of data files to keep up to date to better support our users by automatically keeping non-edited salary rules up to date. task-6360339
Budget reports now use the same analytic profitability criteria as profitability reporting. This helps ensure budget figures are based on the right analytic entries, improving consistency for financial review and decision-making.
Original PR description
Use the new field analytic_profitability in the conditions of the query to get the account analytic lines of the budget report task-4959636 Forward-Port-Of: odoo/enterprise#121760
1 change
Enhancements to existing features
Budget reports now use the same profitability criteria as analytic reporting when selecting analytic entries. This makes budget figures more consistent with profitability views, helping teams compare performance with greater confidence.
Original PR description
Use the new field analytic_profitability in the conditions of the query to get the account analytic lines of the budget report task-4959636