Friday, February 6, 2026
13 changes · saas-18.4
Resolved issues and error corrections
Fixes an issue where saving a website page could fail after hiding the header and then the footer. The editor now skips header-related settings when no header is present, helping users save page visibility changes reliably.
Original PR description
### Issue: - Saving the page after first hiding the header (from the Theme tab) and then the footer triggers an error. ### Steps to reproduce: 1. Open any website page and enter edit mode. 2. Make…
### Issue: - Saving the page after first hiding the header (from the Theme tab) and then the footer triggers an error. ### Steps to reproduce: 1. Open any website page and enter edit mode. 2. Make sure both the header and footer are visible. 3. From the 'Theme' tab, hide the header using the 'Show Header' option under 'Advanced'. 4. Select the footer and hide it using the 'Page Visibility' option. 5. Click on 'Save'. ### Reason: - Header related page options are always evaluated during save, even when the header has been fully removed from the page by the 'Theme' tab option. - This causes logic that depends on the header element to run while the element is no longer present in the DOM. ### Fix: - Only compute and save header related page options when a header element exists in the DOM. - This prevents header visibility, color, and overlay logic from running when the header has been removed, avoiding the error during save. task-[5135925](https://www.odoo.com/odoo/action-4043/5135925) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where editing a user email signature could cause multiple “Read More” expanders to appear when sending messages from the full composer. The change keeps signatures grouped correctly, making chatter messages cleaner and less confusing for users.
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
The Cyprus tax return now calculates VAT payable or refundable as output VAT minus input VAT. This prevents the report from showing the amount with the wrong sign, helping businesses review their VAT position accurately.
Original PR description
**Steps to produce:** - Install the l10n_cy and accountant modules - Switch to `CY Company`. - Go to accounting > reports > Tax return. **Issue:** - The formula for VAT payable or refundable (difference between box 4 and 3) is incorrect. - box 3 refers to `Total output VAT` and box 4 refers to `Input VAT`. - Current formula: `cy_4.balance - cy_3.balance` **Fix:** - Formula for VAT payable or refundable should be output VAT - input VAT. - Update the formula to: `cy_3.balance - cy_4.balance` <img width="769" height="86" alt="image" src="https://github.com/user-attachments/assets/923a92f9-fc57-465a-9592-771730ee6870" /> opw-5751369 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247309 Forward-Port-Of: odoo/odoo#246273
The Project app now uses a different keyboard shortcut for the New button, preventing it from conflicting with the Share Project action. This helps users trigger the intended action when using keyboard shortcuts in project views.
Original PR description
Steps to Reproduce: - - Go to Project → open any project. - Press Alt key to display shortcut hints. - Both New and Share buttons show the same shortcut. Issue: - The New button and the Share Project button use the same shortcut, leading to a conflict. Cause: - The New button and the Share Project button 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
Fixes a display issue in the Expenses app when there are no expenses to process. The upload receipt helper now stays properly aligned and no longer overlaps nearby dashboard or search areas, making the empty state clearer for 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 Forward-Port-Of: odoo/odoo#247366
Tasks created from sales orders now use clearer titles and descriptions based on the sales order line content. This prevents confusing task names when a line has a multi-line description, making generated project tasks easier for teams to understand and manage.
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
Group chat notification settings now show the chat name when opened from Discuss thread actions. This makes it clearer which conversation's notification preferences the user is editing and avoids confusion.
Original PR description
Before this PR, when a user opened a group chat in Discuss and accessed the notification settings from the thread actions, the thread name was missing in the dialog. This commit fixes the issue by correctly displaying the thread name in the notification settings dialog. Part of task-5910210. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
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 and alignment with French accounting standards. 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 showing in the Odoo Mail Plugin for contacts. The fix adjusts the search criteria to exclude folded tickets, ensuring users only see active, open tickets. This improves the accuracy and usability of the plugin.
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 translation error in the Odoo Enterprise system related to Argentine electronic invoices (ARCA). The error message was previously incorrect, leading to confusion for users. Now, the message accurately states that an invoice date before the last validated invoice will trigger an error, ensuring proper compliance with AFIP regulations.
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
This update corrects a technical issue where the user ID was missing during payment processing for the pos_iot_six module. The fix restores functionality previously broken by a recent update, ensuring accurate payment tracking and preventing potential errors. This resolves a minor disruption to the payment process.
Original PR description
This PR reinstates https://github.com/odoo/enterprise/pull/98021 broken by https://github.com/odoo/enterprise/pull/98203 This fixes user id being undefined for pos_iot_six payments
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 data integrity. This impacts users creating invoices through the Studio interface.
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 contributor license agreement records by adding new members. It keeps Odoo's legal contribution documentation current so contributions remain properly covered.
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