Daily updates from Odoo
Friday, September 12, 2025
28 changes
2 changes
Enhancements to existing features
Mexican CFDI e-invoices are now generated with totals calculated directly from invoice lines, matching how SAT validates them. This reduces the risk of rejected electronic invoices by automatically handling small differences through discounts or adjustment lines when needed.
Original PR description
Simplify the CFDI generation. Now the totals are always computed from the lines. That way, it's impossible for the SAT to refuse a CFDI since it's built in the way the SAT checks the validity of the file. The difference between the CFDI total and the original documents is put using the discount if available. If not, we add a fake line in the CFDI. task-id: 4926200 Forward-Port-Of: odoo/enterprise#90434
This draft update adjusts how selection menus handle navigation callbacks in the website editing interface. It should make menu-based choices behave more consistently when users move through options, reducing friction in content editing workflows.
Original PR description
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
2 changes
Enhancements to existing features
This update adds automated checks for point-of-sale event workflows, including event popups, adding event products to orders, and preparing products for loaded events. These tests help reduce the risk of regressions and make event sales in POS more reliable over time.
Original PR description
In this commit: ------------ - We are adding hoot test cases to verify that components return values according to the passed parameters for components like `event_configurator_popup`, `event_registration_popup`, and `event_slot_selection_popup`. - Also, we are adding a test for the `addProductToOrder` method available in the `product_screen` component to ensure the order line is added to the order seamlessly. - Then, we are adding a test for the `createDummyProductForEvents` method available in the `pos_store` service to verify that the products are created for all the loaded events in the POS. task-4945631
Italian fiscal position mapping now includes separate service taxes, preventing a single base tax from being converted into multiple EU zero-rate taxes. This makes tax application more accurate for businesses handling domestic and intra-EU goods or services.
Original PR description
Due to service taxes missing from the domestic fiscal position, when using the base tax on a product and the intracom fiscal position, it is mapped to both the 0% EU G and 0% EU S taxes. This happens with multiple taxes. By adding service taxes and splitting the mapping from default to goods and from services to services, the fiscal position only ever applies one tax per origin. task-none
16 changes
Enhancements to existing features
Adds a warning when an uploaded or scanned vendor bill appears to use a GSTIN that does not match the selected company, helping users catch company selection mistakes before proceeding. It also improves GSTR-2B matching so duplicate invoice references in draft purchase documents no longer block automated processing.
Original PR description
Use Case 1 – Bill Upload/Scan - Issue: When scanning or uploading vendor bills, system allows upload even if the bill’s GSTIN does not match the company GSTIN. This can happen when multiple companies share the same name but have different GSTINs under the same PAN. - Solution: Add a warning if the bill’s GSTIN doesn’t match the company GSTIN: *"It seems Bill’s GSTIN doesn’t match this company. Please verify before proceeding.”* Use Case 2 – Duplicate IRN in GSTR-2B Matching - Issue: Cron job gets stuck when duplicate IRN exists in both draft purchase documents and fetched GSTR-2B data. - Solution: Include draft purchase documents having IRN in the matching process for the current period, so duplicate warnings are skipped and processing continues smoothly. Task ID: 4862214 Forward-Port-Of: odoo/enterprise#92948
The Accounting Reports area now again offers access to financial budget records, but only when debug mode is enabled. This helps administrators and support teams inspect or import budget data without adding clutter for everyday users.
Original PR description
This menuitem was removed with the idea to clean the view, but we now have second thoughts. Having a means to access a tree view of those objects is interesting for debugging purposes and in order to import them. We now put in debug mode only, though. Forward-Port-Of: odoo/enterprise#94155
This update refreshes Belgian payroll demo data and related setup so it better supports the “Running your payroll yourself” Odoo Experience presentation. It helps presenters show a more realistic payroll flow, including employee salary data, payslip inputs, work entries, and accounting demo information.
Original PR description
prepare some demo data for the oxp talk "Running your payroll yourself"
The rental date picker on product pages has been redesigned and moved into the product header. This keeps date selection visible and accessible while customers review rental products, improving the shopping experience.
Original PR description
This commit revises the UI of the date picker and moves it from the side bar to the `product_header` to always be available. task-4903754 Part of task-4252024 Requires: - https://github.com/odoo/odoo/pull/217272 - https://github.com/odoo/upgrade/pull/8028 
The VoIP softphone now shows a clear visual indicator when it is running in demo mode. This helps users understand why calling behavior may be limited or simulated, reducing confusion during trials, demos, or testing.
Original PR description
[Task-5055883](https://www.odoo.com/odoo/project/5778/tasks/5055883) Forward-Port-Of: odoo/enterprise#93610
Payroll contract templates now better preserve country-specific information when creating new employee contracts. This helps HR teams avoid missing localization details and adds checks to ensure templates work consistently across supported payroll localizations.
Original PR description
This commit implements _get_whitelist_fields_from_template() method across all HR payroll localizations to ensure that localization-specific fields are properly copied when creating contracts from templates. Additionally, tests has been added for all localizations to validate the whitelist functionality and ensure proper template loading behavior. task-4954283 Forward-Port-Of: odoo/enterprise#92093
The home menu has been refreshed with new light and dark backgrounds and updated visual styling. This improves the first-screen experience for users and keeps the Enterprise interface aligned with the upcoming v19 design direction.
This update refines how spreadsheet borders are handled when working with list and pivot spreadsheet features. It should make spreadsheet behavior more consistent and easier to maintain, with minimal direct impact on day-to-day users.
Audit report PDFs now avoid adding page titles for template sections that do not contain meaningful printable content. This reduces unnecessary blank or cluttered pages and makes exported audit reports easier to read.
Original PR description
Previously, the algorithm that generated the audit report PDF would create a page title for empty articles using the article name. This often resulted in unnecessary pages, since many template articles are considered empty (because they contain elements that should not be printed). To reduce page clutter, we are revising the algorithm and introducing a new heuristic: a page title will be generated only if the article contains a single heading (h1, h2, or h3) and no other text elements. In such cases, the heading itself will be used as the page title. Task-5079472 Forward-Port-Of: odoo/enterprise#94327
Knowledge articles linked to audit reports now keep the standard Download PDF option visible. The separate audit report export action is renamed to Download Annual Report, making it clearer which document users are downloading.
Original PR description
Previously, when an article was linked to an audit report, the "Download PDF" button was hidden and replaced with a button to generate the audit report PDF. This commit restores the default "Download PDF" button and renames the button for generating the audit report PDF to "Download Annual Report", improving the clarity of the interface. Task-5079472 Forward-Port-Of: odoo/enterprise#94328
The barcode app's demo sheet now includes the new "OBTWREV" barcode command. This helps users and testers access the latest barcode action from the standard reference sheet, making demonstrations and training more complete.
Original PR description
This commit adds the newly created barcode command "OBTWREV" introduced in #88614 to the barcode demo sheet. Forward-Port-Of: odoo/enterprise#94324
The pull request adjusts internal performance test expectations for the Knowledge app after a change in how HTML content is cached when records are created. This helps keep automated performance checks accurate without changing day-to-day user workflows.
Original PR description
Adapting query count, due to not putting html fields in cache upon creation. task-4962646 Forward-Port-Of: odoo/enterprise#93741 Forward-Port-Of: odoo/enterprise#93171
Users now manage their light, dark, or system-based color scheme from their personal preferences instead of the main user menu. This keeps the menu simpler while preserving theme choice, and reduces first-load flicker when the system preference is dark.
Original PR description
As the backend now supports the browser/system/device color scheme, having a directly accessible switch in the UserMenu is not as necessary as before. This commit moves it to the user's preferences instead. task-5074720 Forward-Port-Of: odoo/enterprise#94223
Studio no longer includes the outdated date delay setting when configuring calendar views. This reduces confusion and helps keep calendar setup aligned with the current behavior of Odoo views.
Original PR description
This commit removes the attribute "date_delay" from calendar view arch. task-4609678
Gantt views now keep the cursor consistent while users drag, drop, or create multiple items. This makes scheduling interactions feel clearer and less distracting because the cursor no longer changes unexpectedly when hovering over different elements.
Original PR description
In multi create mode, the cursor on a cell will now be cell. We also make the cursor be more consistent. Before this commit, start an interaction (i.e. a drag & drop) and hover various elements during that interaction would change the cursor according to the type of hovered elements. Now the cursor is constant through the duration of the interaction and related to the type of interaction. Task ID: 5076037
Spreadsheet border handling was reworked to make list and pivot spreadsheet behavior more consistent and easier to maintain. This should support a more reliable editing experience without introducing major user-facing changes.
7 changes
Enhancements to existing features
The German tax report has been restructured to work without the previous balance column. This keeps the report aligned with the updated layout and helps ensure tax reporting remains accurate for German localization users.
Original PR description
After removing the `balance` column, we need to refactor the code that depends on it task-5046641
The German tax report has been reorganized to better match the official VAT advance return structure used in ELSTER guidance. This makes the report easier for German businesses to follow and helps align Odoo's tax reporting layout with local filing expectations.
Original PR description
Rework the structure of the German Tax Report according to the very well detailed structure https://sevdesk.de/ratgeber/buchhaltung-finanzen/ustva/formular-elster/ task-5046641 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Auditors can now get Audit Working Files in PDF format when reviewing completed internal audits. This makes audit verification easier by providing the required working-file documentation beyond the existing Trial Balance export details.
Original PR description
When verifying internal audits that have been done, auditors may request reports of Audit Working files. The working file must be available in PDF. The export currently only contains the Trial Balance with the audit state and last comments (more recent annotation) during the audit. task-id: 4993075
This change reorganizes internal repair module tests by separating shared setup logic so it can be reused by other modules. It does not change user-facing repair workflows, but it helps developers maintain and extend related tests more efficiently.
Original PR description
Split out the classSetUp + its methods into separate class so it can be used in other modules Supports task: 5067457 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
The Point of Sale mobile interface now remembers the customer display selected by the cashier. When Point of Sale is opened again, the same display is launched automatically, saving setup time and reducing repeated manual steps.
Original PR description
- Save the selected display in cookie - Open the selected display automatically when open the PoS
US accounting templates now include account groups so financial reports can show clearer hierarchy and subtotals. This reduces confusing ungrouped lines and makes reports easier to review when hierarchy options are enabled.
Original PR description
There's no standard account numbering in the US, so this was initially left out. But without these the financial reports look quite messy when enabling the "Hierarchy and Subtotals" option (lots of "(No group)"). task-5068369
VoIP user preference settings have been improved to make configuration clearer and more consistent for users. This helps administrators and employees manage calling-related preferences more easily across VoIP and OnSIP setups.
Original PR description
Task-5075195
1 change
Enhancements to existing features
The point of sale system now cleans up old record links more efficiently during bulk update operations. This helps prevent slowdowns when many related records are involved, improving reliability for busy sales environments.
Original PR description
When the “set” command is used, we will manually clean up the indexes to avoid performance issues when there are too many associated records.