Odoo Release Updates
Every commit to Odoo Community and Enterprise, parsed and categorized. Never miss a bug fix, improvement, or new feature.
Activity
2026-03-20
Fixed a Colombian POS EDI receipt template where CSS classes were incorrectly applied to Qweb template tags instead of HTML elements. The `mt-3` margin utility class is now properly moved from the `<t>` template tags to the wrapping `<div>` element, ensuring correct styling is applied to the large taxpayer status display on receipts.
[FIX] l10n_co_edi_pos: unused attribute in template
This fix corrects the automated tour testing for the overtime ruleset flow in hr_payroll_attendance by updating DOM selectors that were failing in the runbot environment. The changes replace non-existent or overly specific element triggers with the correct button names and list view selectors, including adding two additional "Continue" button clicks that are now required in the actual workflow sequence.
[FIX] hr_payroll_attendance: fix overtime ruleset flow tour
This fix corrects the Spanish Facturae EDI XML generation to aggregate multiple invoice line items into a single tax node per tax type rather than creating separate tax entries for each line, and enables proper rounding during this aggregation. The changes consolidate tax bases and amounts across all lines sharing the same tax, reducing XML redundancy and improving accuracy when applying global rounding methods, as validated by updated test cases.
[FIX] l10n_es_edi_facturae: XML structure and rounding fixes
This commit adds a test case to verify that the sequence mixin properly clears its internal cache when a database savepoint is rolled back. The test ensures that if a transaction is partially reverted, cached sequence data doesn't persist in an inconsistent state, preventing subtle bugs from being introduced by future code changes.
[FIX] databases: sequence.mixin add test - savepoint rollback
This fix corrects a bug in im_livechat where the livechat channel name was incorrectly duplicated when an agent initiated a self-chat (talking to themselves). The issue occurred because the visitor_user variable was being set even when the visitor and agent were the same person, causing the agent's name to appear twice in the channel name. The fix prevents visitor_user from being assigned when the current user equals the agent, ensuring the channel displays with a single name instead of duplicated entries.
[FIX] im_livechat: duplicated name in self livechat
This commit enhances Chrome browser debugging in Odoo's test framework by capturing Chrome's native debug logs instead of stderr, which was producing confusing and unhelpful dbus errors. The logs are now saved whenever Chrome completes (successfully or unsuccessfully) and controlled via a new ODOO_BROWSER_LOG_VERBOSITY environment variable, providing developers with detailed information about tab crashes, network requests, and other Chrome-level events to diagnose test failures more effectively.
[IMP] core: save chrome debug logs
This commit adds test coverage for the manual tracking of date_finished field changes on manufacturing orders in Odoo MRP. The test verifies that when the date_finished is modified without changing the production order state, the system correctly records and tracks this change with proper tracking values logged to the mail message history. This ensures that future modifications to the tracking model will not break the date_finished change tracking functionality.
[IMP] mrp: test date_finished manual tracking
This fix modifies the local_user_id computation in the databases module to include archived users when linking database users to local res.users records. By adding with_context(active_test=False) to the _read_group query, archived users are now properly referenced instead of being excluded from the lookup, enabling database user associations to persist even after user archival.
[FIX] databases: show local_user_id even if user is archived
This refactoring removes the 'archive' presence state from the HR module since it provided little practical value, and instead hides the presence status icon entirely when an employee is archived. The change simplifies presence state management by eliminating redundant state tracking while still preventing display of presence information for inactive employees, addressing usability issues where archived employee status was being confused with actual presence states.
[REF] hr: remove archive option from presence, hide icon when employee archived
This fix corrects the serialization library calls across multiple localization modules (Argentina, Belgium, Mexico) to properly pass bytes objects instead of string objects when loading PEM-formatted private keys. The changes ensure that certificate-based signing operations for EDI document submission and government API authentication work correctly by accessing the .content property of private key fields, which returns the properly encoded bytes format that cryptographic serialization functions expect.
[FIX] l10n: serialization expects bytes
Fixed the Saudi Arabia EDI certificate generation process by correcting how the private key is passed to the serialization module. The code was passing a string object when the cryptography library's load_pem_private_key function expects bytes, which was causing failures in CSR (Certificate Signing Request) generation for Saudi localization.
[FIX] l10n: serialization expects bytes
This improvement fixes the vertical alignment of sandwich leave policy configuration fields in the Indian HR module by replacing a row-based layout with a flexbox container and adjusting field widths. When users toggle the sandwich leave checkbox, the policy selection field now displays without causing the adjacent labels to shift vertically, providing a more stable and professional user interface.
[IMP] l10n_in_hr_holidays: align sandwich policy fields
[FIX] resource: make sure resource without calendar set is flexible one
This commit fixes a CSS class name selector in the website_sale product design panel by removing erroneous quote marks that were being included as literal characters in the class attribute string. The typo caused the CSS selector to be malformed, preventing the correct theme preset styling from being applied when users selected design options in the website builder.
[FIX] website_sale: fix classname typo
This fix corrects a crash in the Saudi Arabian payroll module's automated data update process by ensuring salary rule category data is refreshed before salary rules that depend on them. The issue occurred because the category_id field was made optional in a prior change, allowing users to delete categories that salary rules still referenced, causing external ID lookup failures during the scheduled cron job.
[FIX] l10n_sa_hr_payroll: prevent error when Payroll Update data cron runs
This fix resolves unintended layout spacing issues in the FileUploader component by applying the CSS class "d-contents" to the wrapping div element. The div was previously added to prevent click propagation but caused misalignment of UI elements, such as edition buttons appearing on separate lines in forms like Employee Work Permit uploads. The fix preserves the click propagation prevention while neutralizing the layout impact through CSS, restoring proper button alignment throughout the interface.
[FIX] web: prevent FileUploader from taking extra space
2026-03-19
[FIX] documents_account_peppol: add documents widget to settings
[FIX] l10n_it_stock_ddt: display DDT information in dropship
[IMP] website_generator_sale: Add product sku vals
[FIX] l10n_be_reports: ensure 281.50 pdf templates takes only 1 page by default