Friday, February 6, 2026
14 changes · saas-18.3
Resolved issues and error corrections
This update adds support for commodity codes (Intrastat, UNSPSC, and CPV) within the account_edi_ubl_cii module. This enhancement ensures accurate reporting and compliance with international trade regulations, particularly for export and import transactions. The change addresses a technical requirement to properly classify goods for reporting purposes.
Original PR description
task-5890887 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247025
This update fixes a visual issue in the Expenses app where the layout would become distorted when no expenses were present. The fix ensures a consistent and stable appearance of the 'Upload or Drop Your Receipt' helper, preventing misalignment and overlapping elements. This improves the user experience for all users.
Original PR description
Steps to reproduce: 1. Open the Expenses app and navigate to 'Expenses to Process'. 2. Ensure no expenses are present so that the 'Upload or Drop Your Receipt' helper appears. 3. Remove filters. 4.…
Steps to reproduce: 1. Open the Expenses app and navigate to 'Expenses to Process'. 2. Ensure no expenses are present so that the 'Upload or Drop Your Receipt' helper appears. 3. Remove filters. 4. The layout becomes 'disturbed'—the upload overlay misaligns and overlaps the dashboard. Issue: The issue occurred because the SCSS selector was incorrectly targeting the combination of .hr_expense and .o_list_view. In the Odoo DOM structure, the hr_expense class is added to the Renderer via XML, while o_list_view is assigned to the main Controller. Because the selector never matched an actual element, the min-height: 100% rule remained inactive. Without a stable minimum height, the Renderer container collapses when empty. This prevents the 'Pink Overlay' from having a stable anchor point, leading to layout shifts and visual interference with the Search Panel and Dashboard headers. Solution: Update the SCSS selector to target &.o_list_renderer and &.o_kanban_renderer. This ensures the rule correctly matches the element carrying the hr_expense class. By forcing a min-height: 100% !important on the renderer itself, the container remains stable regardless of the data count. This provides a consistent workspace for the 'No Content' helper to render without disrupting the surrounding flexbox layout. opw-5452618
This update resolves an issue where portal users couldn't properly close recurrent tasks. The fix utilizes a temporary bypass of access restrictions during task creation to ensure the state change is applied correctly. This improvement allows portal users to manage their recurring tasks effectively.
Original PR description
to reproduce: ============= - create a project with recurrent task and share it with a portal user - log in with the portal user and open the recurrent task - change the state to 'Done' and save -> the state is not changed to 'Done' and the task is not closed problem: ======== the method responsible for creating the next occurrence of a recurrent task executes some operations that portal users are not allowed to do, causing the whole operation to fail and preventing the task from being updated. solution: ========= use sudo() to bypass access rights checks when creating the next occurrence of the recurrent task. This is safe because the operations being performed do not involve any sensitive data or actions that could compromise security. opw-5442919 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a bug where formatting the signature field in user preferences could cause issues with message sending, specifically related to the 'Full Composer' feature. The fix adds a specific data attribute to ensure consistent handling of quotes and formatting within signatures.
Original PR description
**Steps to reproduce:** - Go to the current user preferences - Go to its signature field - The current state should be something like: ``` -- Mitchell Admin ``` - Apply bold formatting on the text -…
**Steps to reproduce:** - Go to the current user preferences - Go to its signature field - The current state should be something like: ``` -- Mitchell Admin ``` - Apply bold formatting on the text - Save the changes - Refresh - Remove the bold formatting - Press enter between the two lines (at the end of `--`) - Save the changes - Go to the Contact app - Select any record - Go to its chatter - Click on `Send Message` and then the `Full Composer` expand button - Send the mail - In the chatter multiple `Read More` are added for the same signature (I think it can appears in multiple operations, this is just an example related to the `<strong>` element becoming `<span>` on removal) **Issue:** Playing with the html editor on the signature field can break the `tag_quote` flow due to the added elements. **Fix:** Explicitly add `"data-o-mail-quote"` to the signature container which is added when opening the `fullComposer`. It could also be an issue related to the html_editor but this seems cleaner to fix it here. This issue was fixed in 19.0 in a similar way by adding a common div around the signature and adding the same attribute. related: https://github.com/odoo/odoo/commit/6eb55c42158b08652c4c533bf56b5333c162bd3a opw-5149505 Forward-Port-Of: odoo/odoo#246982 Forward-Port-Of: odoo/odoo#231954
This update corrects a broken link used by Odoo to connect with Poland's KSeF (tax reporting) system. The previous URL was outdated, preventing proper data transmission. This change ensures Odoo can now correctly process and submit tax information required by Polish regulations.
Original PR description
The production URL for the Polish EDI (KSeF) was incorrect. This commit updates the endpoint to the current valid URL to ensure proper connectivity. 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 Forward-Port-Of: odoo/odoo#247424
This update corrects how task titles and descriptions are generated from sales orders. Previously, task titles were inconsistent. Now, the task title uses the product name or sales order line description, ensuring accurate and informative task details are created when a service product generates a task.
Original PR description
Steps to reproduce: - - Create a sales order with a service product that generates a task. - Add a multi-line description to the sales order line. - Confirm the order to generate the task. - View the generated task’s title, description. Issue: - - Task titles were generated in the format sales order name + first line of the product description, and the description contained only the remaining lines. Fix: - - If the sales order line has a single-line description, it is used as the task title. - If the sales order line has a multi-line description or no description, the product name is used as the task title, and the sales order line description is used as the task’s description. Commits 588c3be420a542d8594b26ecc200ca68e35d15fc, c3877b2acd74f1f798d0046b168418300f9e27ca, and 18edce4d859935bd1425144e4c835acabc5f68f4 previously attempted to fix this issue. task-4903208 Forward-Port-Of: odoo/odoo#217035
A bug was causing the 'New Task' button to incorrectly change task priorities instead of creating new tasks. This has been resolved by changing the button's shortcut from Alt+R to Alt+C, ensuring the correct functionality is now triggered.
Original PR description
Steps to Reproduce: - - Open Project → Tasks. - Press Alt key to view shortcut hints. - New button control show Alt+R. - Pressing Alt+R triggers priority change instead of creating a new record. Issue: - Pressing the shortcut displayed on the New button (Alt+R) does not create a new task but instead changes the task priority. Cause: - The New button and the Priority widget share the same shortcut (Alt+R), causing the wrong action to trigger. Solution: - Changed the shortcut for the New button from Alt+R to Alt+C to avoid conflict and ensure correct behavior. task-5270075
This update resolves an issue where the opening date field in the tax returns wizard remained uneditable after posting an opening move. The fix ensures the date is always editable, aligning with the current workflow and maintaining user familiarity. It also updates the opening move date if the move is still in draft.
Original PR description
To reproduce the issue (in enterprise): - Go to accounting > configuration - click on "Review Manually" (under Accounting Import) - add a balance to 1 or 2 accounts - Search for the created draft opening move in the journal entries, and post it - On the dashboard, click on "Tax returns" ====> The opening date is not set in the wizard, and still, it's not editable. You're stuck The opening date was originally introduced in the setup bar flows, years ago. Today, this field isn't really used anymore, except for creating the returns, and it then does not especially always correspond to the date of the opening move. To solve the issue, we just always allow editing it in the wizard. To keep things comfortable for users who would be used to the previous way it worked, we still modify the date of the opening move when doing so if it's still in draft.
This update fixes an issue in the French P&L report where accounts 65 were incorrectly categorized. The accounts have been moved to the 'Other Expenses' line, ensuring accurate financial reporting. This improves the clarity and reliability of financial data for French users.
Original PR description
On the french P&L, accounts 65 are refferenced in the line 'Other purchases and external charges' but this is not where those accounts need to be, they need to be part of the line 'Other Expenses' task-5446018 Forward-Port-Of: odoo/enterprise#106465 Forward-Port-Of: odoo/enterprise#103357
This update resolves an issue where folded (closed) tickets were incorrectly displayed in the helpdesk mail plugin, causing confusion for users. The fix filters out tickets in the 'folded' stage, ensuring that only active tickets are shown, improving the plugin's accuracy and usability.
Original PR description
**Steps to reproduce:** - Install Mail_plugin - Setup the outlook mail plugin in Outlook - Once connected, click on a mail from a contact on the database - Click on the Odoo Inbox Addin. action - Under the contact 5 related tickets are showed - Create 5 tickets with priority and put them in folded stage (closed) - Create new normal tickets - User can't see new tickets in the plugin **Issue:** The search is done on priority and then id ordering, this means that tickets in folded stages (closed) which have a high priority are always showed first. Tickets in a folded stage are considered as closed, so they should not appear anymore in the contact data to avoid displaying them indefintely. **Fix:** Adapted search domain and removed fold attribute in the answer. opw-5075477 Forward-Port-Of: odoo/enterprise#100883
This update fixes a misleading error message displayed when validating Argentine electronic invoices (ARCA). The message has been corrected to accurately reflect the issue: the invoice date must be after the last validated invoice, not before. This ensures proper compliance with AFIP regulations and prevents incorrect invoice processing.
Original PR description
WSFE error 10016-1 must be "The invoice date cannot be before the last invoice validated in AFIP." instead of "The invoice date cannot be after the last invoice validated in AFIP". Steps to reproduce: validate argentinean customer electronic invoice with invoice date before than the last invoice date validated in ARCA. Task Adhoc side: 44290 Task latam: 1376 Forward-Port-Of: odoo/enterprise#106305
A bug preventing infinite scrolling of recent VoIP calls in the softphone has been fixed. This issue was specific to Chrome browsers and has been resolved by adding a minimal width and height to the scrolling element, ensuring all calls are displayed correctly. This improves the user experience for accessing call history.
Original PR description
Since [1], the voip calls infinite scrolling does not work anymore. Steps to reproduce: - Make sure to have at least 14 recent calls - Open the softphone - Go to the recent/history tab - Scroll to…
Since [1], the voip calls infinite scrolling does not work anymore. Steps to reproduce: - Make sure to have at least 14 recent calls - Open the softphone - Go to the recent/history tab - Scroll to the end => You are stuck seeing only the 13 last calls. This was a Chrome-only issue, it works on Firefox. Weirdly, the infinite scrolling works on the contact tab on Chrome too, although this is the exact same implementation and configuration. This is due to the unreliable behavior of IntersectionObserver regarding 0x0 elements. The infinite scrolling implementation in VoIP relies on the visibility of a "dummy" `<span/>` added at the end of the tab. That element has no width or height, making the implementation unreliable. As a stable minimal fix, this restores the feature by making the element have a width and height, without any visual/behavior changes thanks to negative margins and no pointer events on the item. Note that [1] disabled a test that was testing the feature. This commit of course re-enables it. [1]: https://github.com/odoo/enterprise/commit/52b3065993c41c6b7c65dda586a66fdd865b3afd
This update resolves a technical issue that caused a SQL error when creating invoices with non-deductible tax values in Studio. The fix ensures the system handles unsaved invoice lines correctly, preventing the error and improving stability. This change primarily impacts users working in Studio mode.
Original PR description
**Steps to reproduce:** * Install **account_asset** and **l10n_be**. * Enable **developer mode**. * Using **Studio**, add the field **non_deductible_tax_value** to invoice lines. * Create a new invoice. * Select a partner and add a product with **21% VAT** applied. * Do not save the invoice before adding the line. **Observed behavior:** * A **SQL syntax error** occurs: `WHERE tdq.base_line_id IN ()`. * The error is triggered when accessing the non-deductible tax value on unsaved records. **Cause:** * `_compute_non_deductible_tax_value()` executes SQL query with `tuple(self.ids)`. * For unsaved records, `self.ids` is empty, creating invalid SQL `IN ()` syntax. * This path is only reached for **non-deductible taxes**. **Fix:** * Skip the SQL query when no record IDs are available. * Return a default value for unsaved records. opw-5896716 Forward-Port-Of: odoo/enterprise#106655 Forward-Port-Of: odoo/enterprise#106470
Documentation and clarification updates
This pull request updates the Adhoc Corporate Legal Agreement (CLA) membership list. This ensures Odoo continues to comply with legal requirements and maintain a robust contributor agreement. The change is purely a legal update and does not impact Odoo's functionality.
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 Forward-Port-Of: odoo/odoo#247183