Monday, July 6, 2026
18 changes · saas-18.2
Resolved issues and error corrections
The accounting account type dropdown now uses the correct dark mode background. This fixes a visual inconsistency so users creating account records have a clearer, more consistent interface when dark mode is enabled.
Original PR description
Steps to reproduce: - Install `account` module - Enable dark mode - Open `view_account_form` to create a record - On the Accounting page, open type dropdown - The dropdown background remains in light mode This commit applies $dropdown-bg on `o_field_account_type_selection` as in odoo/odoo@0cd148eb389078c896aaa719af5733d05377fd1c Forward-Port-Of: odoo/odoo#273980 Forward-Port-Of: odoo/odoo#271352
The WIP Accounting Entry wizard now handles an empty Date field without crashing. This lets manufacturing users temporarily clear or edit the date smoothly while preparing WIP accounting entries.
Original PR description
Issue Before This PR: When clearing the Date field in the WIP Accounting Entry wizard, an error was raised during the re-computation of dependent fields. This prevented from temporarily emptying the…
Issue Before This PR: When clearing the Date field in the WIP Accounting Entry wizard, an error was raised during the re-computation of dependent fields. This prevented from temporarily emptying the date field while editing the wizard. Steps to Reproduce: - Open the list view of Manufacturing Orders. - Open the Post WIP Accounting Entry wizard by either: - Selecting one or more Manufacturing Orders and choosing Actions ,click Post WIP Accounting Entry - Or, opening a Manufacturing Order form and selecting Post WIP Accounting Entry from the Actions & Reports menu. - Clear the Date field. - Observe that an error is raised. Cause of the Issue: The compute methods _compute_reversal_date() and _compute_line_ids() assumed that wizard.date was always set. When the Date field was cleared, its value became False, but the compute logic still attempted to compare or use the date, resulting in an error. With This PR: The compute methods now verify that wizard.date is set before performing date-dependent computations. This prevents errors when the Date field is temporarily cleared, allowing the wizard to behave correctly during user input. Issue reference: https://github.com/odoo/odoo/issues/246547 Forward-Port-Of: odoo/odoo#273002
A mobile self-order test now consistently uses the table created during its own setup instead of relying on demo data. This prevents false test failures on databases without sample data, improving release confidence without changing customer-facing behavior.
Original PR description
Fixes `test_mobile_self_order_preparation_changes` failing on non-demo databases by selecting the table created during the test. Runbot: [232944](https://runbot.odoo.com/odoo/runbot.build.error/232944)
This fixes an error that could appear when opening the information popup on a purchase order if the selected user or vendor had no email address. Users can now continue reviewing purchase confirmation details without the page breaking.
Original PR description
This error occurs when user click on "**i**" (information) icon. Steps to reproduce: --- - Install `Purchase` module (without demo) - Open PO > Add `Vendor` (eg: Administrator) - Enable `Ask confirmation` and click on "**i**" icon Traceback: --- `TypeError: Cannot read properties of undefined (reading 'toast_message')` This error occurs because the user has an empty `email`, which results in a `False` value at [1]. By adding a condition, we bypass the `toast_message` assignment, but at [2], the code still attempts to access `toast_message`. [1]: https://github.com/odoo/odoo/blob/b1a007e4db9f6f844c6d6cee6963d6bc3ba024b8/addons/purchase/models/purchase_order.py#L988-L996 [2]: https://github.com/odoo/odoo/blob/b1a007e4db9f6f844c6d6cee6963d6bc3ba024b8/addons/purchase/static/src/toaster_button/toaster_button_widget.js#L22 No task ID --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Event template question lists now support drag-and-drop reordering. This makes templates easier to manage and keeps their behavior consistent with regular events.
Original PR description
In the even template, on the questions page, we can't drag and change the order of the questions. To fix it, we'll add the sequence field with handle widget to event.type questions list view to enable drag-and-drop reordering matching the behavir in event.event. Steps to reproduce: 1.Go to event templates 2.Select any templates 3.Go to questions page 4.We can't drag and drop questions opw-6260478 Forward-Port-Of: odoo/odoo#270576
This update fixes an automated test for the Italian electronic invoicing withholding module after a previously merged change. It helps keep validation checks reliable without changing day-to-day product behavior for users.
Original PR description
This commit just want to correct a test of a PR already merged. Original commit: 78ffb5a2e63401123e4506056493e52cf3e69953 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#274062
Chat messages sent by the current user now size more naturally when they contain short text or long mentions. This removes awkward empty space on the right side of message bubbles, making conversations easier to read and visually cleaner.
Original PR description
Before this commit, when a user posts a message in chat window with a single sentence, this message was displayed with lost of spacing on the right. Steps to reproduce: - As Mitchell Admin, open…
Before this commit, when a user posts a message in chat window with a single sentence, this message was displayed with lost of spacing on the right. Steps to reproduce: - As Mitchell Admin, open "general" channel in normal-sized chat window - Type `@Marc Demo asjdoiasjdoiajsoidjsddasd` without backquote, and mentioning Marc Demo - Send the message => message body text is wrapped with lots of wasted spacing on the right. This happens because message body is a `div` that contains a `span`. The `span` has `work-break` so it is squished, but the `div` does not adapt its width. Strangely, there's no CSS feature to solve this issue. The visual of self-messages do not look good in such scenario, which happens quite frequently. This commit fixes the issue by computing the width of parent container in JS. Code doesn't look very nice, but functionally this solves an annoying issue, therefore the "ugly" code is worth the cost. Before / After  
On mobile devices, pressing Backspace at the start of a list item now moves the item out to the normal text level in one step. This makes list editing on mobile more intuitive while keeping the existing desktop behavior unchanged.
Original PR description
### Purpose of this PR: - On mobile devices, pressing Backspace at the start of a list item now completely outdents the item into a base container instead of first removing the list marker. - Desktop behavior remains unchanged, keeping the two-step interaction (marker removal followed by outdent). task-5485529 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Discuss sidebar now keeps conversations and section labels more evenly spaced when switching between compact and expanded views. This makes the interface feel steadier and easier to follow, reducing visual jumps during navigation.
Original PR description
Before this commit, when expanding/collapsing the discuss sidebar, the translated position between items were not the same: some move a bit below, while some move further distance below. This comes from: - mailbox items are bigger in compact mode than expanded mode. - category headers are bigger in compact mode than expanded mode. This commit fixes the issue by reducing icon size of mailboxes and categories, so that the translate move is constant among all discuss conversations. Before (See how "Odoobot" moves significantly)  After (See how "Odoobot" moves less) 
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
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
The demo employee contract dates were adjusted so payroll examples no longer fail in January. This keeps testing and demonstrations of Mexican payroll running reliably without affecting normal customer payroll use.
Original PR description
The mx l10n module uses contract data to determine the holiday days included in a payslip. If an employee's earliest contract starts after a payslip's end date, the code throws an exception. See: https://runbot.odoo.com/odoo/error/237666 This should not happen during regular use, but the demo data for `hr_contract` and `hr_payroll` do not account for interactions between them. The first contract for Mitchell Admin was generated to start at the start of current year, while one of his payslips is set to end about a month ago. This caused an exception if the current month was January. This PR adjusts the date of the contract to avoid this discrepancy. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix closes a loophole that allowed users to delete the last skill or skill level from a skill type through the record form. It helps keep HR skills data valid and prevents incomplete skill type configurations.
Original PR description
A skill type needs to have at least one skill and one level, however it is possible to bypass this constraint by deleting skill/skill level in their view form. Example on how to delete a skill that shouldn't be deleted from the from view: - Activate dev mode - Add the view button and then click it - <img width="1405" height="783" alt="Screenshot 2025-10-07 at 14 56 17" src="https://github.com/user-attachments/assets/f1537547-4ea3-4fcb-a657-8090af6f70e0" /> - Delete 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 link editor now keeps URL autocomplete suggestions within the visible screen on mobile devices. This prevents awkward horizontal overflow, making it easier for users to add or edit links in Notes and other editor areas.
Original PR description
Step to reproduce: - Open Notes - Open the link popover - Type a URL in the URL input field Description of the issue/: - On mobile devices, URL autocomplete suggestions overflow the viewport. Cause: - The autocomplete suggestions container has a max-width of 600px. - On smaller screens, the container does not shrink to fit the available width, causing it to overflow the viewport. Solution: - Add width: 100% to the autocomplete suggestions container so it adapts to the available screen width on smaller devices while still respecting the existing max-width on larger screens. task-6201175 Forward-Port-Of: odoo/odoo#269493
This update fixes automated test checks for Web Studio's report editor. It helps keep internal quality controls reliable so future changes can be validated with less risk of hidden regressions.
Original PR description
https://github.com/odoo/odoo/pull/210144
Chilean export invoice PDFs now keep the customs information table columns aligned even when origin or destination ports are not provided. This prevents package quantities from appearing under the wrong headings, improving document accuracy for exports.
Original PR description
### Issue: On Chilean export invoices, the customs information table may display data in the wrong columns When `Origin Port` or `Destination Port` is not set, the corresponding `td` is omitted by…
### Issue: On Chilean export invoices, the customs information table may display data in the wrong columns When `Origin Port` or `Destination Port` is not set, the corresponding `td` is omitted by QWeb, causing the remaining columns to shift left This results in `Qty of Packages` appearing under `Origin Port` or `Destination Port` in the printed document ### Cause: `l10n_cl_port_origin_id` and `l10n_cl_port_destination_id` have no default value and are optional fields `t-out` on a falsy value omits the `td` entirely in QWeb, breaking the column alignment Adding `or ''` ensures an empty `td` is always rendered, preserving the table structure regardless of whether the fields are set ### Steps to reproduce: - Install `l10n_cl_edi_exports` and switch to CL Company - Create an Invoice (any customer, any line) - In the gear menu, select Print > Invoice PDF copy (Chile) Before the fix, `Qty of Packages` appears under `Origin Port` when neither port field is set opw-6304670 Forward-Port-Of: odoo/enterprise#121923
This fix changes how accounting-related demo data is prepared so it can work more reliably across multiple companies. It also gives better control over which accounts and journals receive demo records, avoiding unwanted setup requirements before the system is ready.
Original PR description
It gives more flexibility in various aspects: * we can install the demo on multiple companies, like already done for invoices etc * we have a finer choice on which accounts and journals we want to select (i.e. no asset on the Tax Adjustment journal) * we don't force installing a chart of accounts for the main company before the registry is loaded
The EU IoT scale certification module is no longer available for installation in this version. This avoids customers enabling a certification feature that will only be supported in major releases.
Original PR description
This PR makes the module non installable as the scale certification will only be available in major versions Upgrade PR: https://github.com/odoo/upgrade/pull/8537
Fixed an issue where the option to request signatures could disappear on some forms depending on how users opened them. The change ensures the option is shown whenever the form has the activity and message area needed to track signature requests.
Original PR description
### Issue: In #61250, the `SignRequestCogMenuItem` allowing for signature requests was removed from forms that did not have a chatter to track the actual requests. In 18.1, the method used to do this no longer works, so the button is now hidden on certain Views depending on how you access them. ### Solution: The conditions to meet haven't changed, so we can instead use the `chatter` itself. On form views with a chatter, the `Chatter` component will set the `fetchThreadData` to false, which we can check for. opw-4817423