Friday, March 20, 2026
8 changes · 19.0
Resolved issues and error corrections
This update adjusts how Odoo automatically refreshes GST tokens, moving from a scheduled 5-hour interval to a permanent manual trigger. This change ensures compliance and reduces the risk associated with automated token updates. The process is now controlled by specific actions within the application.
Original PR description
With this PR, the GST token refresh cron interval is updated from 5 hours to 9999 months to effectively disable automatic execution. The cron will instead be triggered manually from `validate_otp` and `_cron_refresh_gst_token` based on the token expiration time.
This update resolves an issue preventing the creation of overtime attendance records across multiple days for employees. The fix addresses a technical error that caused a system failure when attempting to schedule overtime shifts spanning consecutive days. This ensures accurate overtime tracking and avoids disruptions to employee scheduling.
Original PR description
An expected singleton error is raised when we try to create an attendance on multiple days Steps to reproduce: 1. Install Attendances and Work Entries 2. Go to Employees and open Anita Oliver 3. Go to Settings tab and set the Overtime Ruleset to Default Ruleset 4. Go to Attendances and create a new attendance for employee Anita Oliver from Friday 12:00 AM to Saturday 2:00 AM 5. An error is raised Problem: ... Solution: ... opw-5946944
This update corrects an issue where Chilean VAT invoices (l10n_cl_edi) could generate negative folio numbers when no Chilean Fiscal Authority File (CAF) was configured. The fix ensures that folios are correctly assigned, preventing sequence corruption and costly database retries. This improves invoice accuracy and stability.
Original PR description
`l10n_cl_edi` overrides `account.move._get_last_sequence()` to ensure the folio belongs to an available in-use CAF. When no CAF exists at all, `l10n_latam.document.type._get_start_number()` returns 0 and the fallback builds a previous sequence using start_nb - 1. Formatting -1 as `:06d` yields “-00001”, which then propagates to “FAC -00002”, “-00003” and corrupts the sequence chain. In addition, returning an invalid “last sequence” may force `sequence.mixin` to search for a free number under the UNIQUE constraint by retrying increments inside a savepoint and rolling back on UniqueViolation, which is costly when many values are already taken see [ _locked_increment()](https://github.com/odoo/odoo/blob/18.0/addons/account/models/sequence_mixin.py#L352). Now we only reset to the CAF start when an in-use CAF actually exists (start_nb > 0). opw-5918758 Forward-Port-Of: odoo/enterprise#108909
This update resolves an issue where GS1 barcode filtering would fail due to an error when the barcode contained date information. The fix allows the system to correctly filter products based on GS1 barcodes, even if they include date components, ensuring accurate internal transfer tracking.
Original PR description
Steps to reproduce: - Activate the GS1 nomenclature - Create a product "P1" with the barcode: 15099590225865 - Create an internal transfer with one unit of P1 - Go to Barcode > Operations > Internal…
Steps to reproduce: - Activate the GS1 nomenclature - Create a product "P1" with the barcode: 15099590225865 - Create an internal transfer with one unit of P1 - Go to Barcode > Operations > Internal Transfers - Scan the barcode: 15099590225865 to filter transfers by this product barcode Problem: An validation error is raised: A ValidationError is raised: "A GS1 barcode nomenclature pattern was matched. However, the barcode failed to be converted to a valid date." Explanation: GS1 barcodes must follow a strict nomenclature based on well-defined rules. For example, a GS1 product barcode should start with the Application Identifier 01 followed by 14 digits. The GS1 parser processes the barcode rule by rule and applies the first matching rule. In this case, the barcode 15099590483921 is interpreted as a date because it starts with "15", which corresponds to a GS1 Application Identifier for a date. As a result, the parser attempts to convert the first six digits into a date and raises a ValidationError. Solution: Catch the ValidationError raised during GS1 date parsing in filter_on_barcode and explicitly reset parsed_results to False, allowing the normal filter on product resolution logic to continue. This prevents GS1 parsing errors from blocking valid barcodes and ensures that product is correctly filtered opw-5929064 Forward-Port-Of: odoo/enterprise#110679 Forward-Port-Of: odoo/enterprise#110636
This update corrects a visual issue where the live chat button in the edit mode on desktop wasn't correctly sized. The fix ensures the button takes up the appropriate space, and also resolves a related issue where a fallback button was incorrectly displayed when no live chat link was available. This improves the user experience for editing live chat configurations.
Original PR description
This is a small fixup of 55ade43b18e2896b8dbf0f3364b0f4956faee14b Scenario: in edit mode and desktop, add ai livechat snippet block with no fallback or livechat button. Result: only when editing, the livechat button doesn't take 100% of container width. Cause: the change of 55ade43b18e2896b8dbf0f3364b0f4956faee14b tried to be minimal and missed this use case in the merged 19.0 solution. Fix: in template ai_website_livechat.s_ai_livechat_edit, copy exactly the structure of ai_website_livechat.AILivechatComponentedition. Note: also fixes that the fallback button is shown even when there is no link since df05441e469157890253b5550b5f8735723b28fb. opw-5458575
This update resolves an issue where the topbar menu wasn't correctly updated after an AI Agent opened a menu option. The fix ensures that the topbar reflects the currently active menu, improving the user experience when interacting with the AI Agent. This change was driven by a task to address a specific UI bug.
Original PR description
Purpose: -------- When a menu (view) was opened through an AI Agent, the menu in the topbar was not updated. This commit fixes this behaviour by setting the menu when the menu's action has been loaded Task-6017607
This update fixes an issue where imported spreadsheets lost their connection to the original linked records. The change ensures that newly created spreadsheet documents maintain the same linked record as the source document during the import process, improving data consistency and workflow efficiency.
Original PR description
When importing an XLSX or CSV document into a spreadsheet, the linked record is lost on the newly created spreadsheet document. This happens because the conversion creates a new document through `copy()`, while `res_model` and `res_id` are computed fields and are not copied by default. This commit explicitly forwards the linked record values during the conversion so the created spreadsheet keeps the same linked record as the source document. Task: [6008920](https://www.odoo.com/odoo/project/2328/tasks/6008920)
This update resolves a minor typo within the industry_fsm_report module, specifically in the project task views. The corrected naming ensures proper functionality and avoids potential display issues within reports. This change improves the reliability of sales reporting.
Original PR description
the view name is incorrect and already used for this view https://github.com/odoo/enterprise/blob/60e9e0f3232c9cd1e9675cb2e5c4b054dc57bbda/industry_fsm_sale/views/project_task_views.xml#L358