Daily updates from Odoo
Thursday, July 30, 2026
19 changes · master
Enhancements to existing features
The partner follow-up list now hides the Last Reminder column by default because it is not useful for most users. This reduces visual clutter and helps users focus on the information they typically need.
Original PR description
The `Last Reminder` column is not relevant for most users and its position in the partner list makes it unnecessary noise. Hide the column by default. Task-6420573
The TikTok Shop configuration is now located under the new Marketplaces menu. This makes marketplace setup easier to find and keeps related sales channel settings grouped together.
Original PR description
- Move tiktok shop configuration to the new 'Marketplaces' menu PR Ref: https://github.com/odoo/enterprise/pull/113307 Forward-Port-Of: odoo/enterprise#125953
This update standardizes how extra electronic invoicing options are handled when sending account moves for Mexican localization. It helps prevent inconsistent behavior caused by the same information being treated in different formats, improving reliability for affected invoicing workflows.
Original PR description
make extra_edis a list, as it was a list, a set or a dict depending on how we get datas task-4916311
Resolved issues and error corrections
The French FEC export tests were updated to align with recent changes in how entry labels are chosen when fallback values are needed. This helps ensure the reporting checks remain accurate and avoids false test failures after the related accounting logic update.
Original PR description
Adjust the FEC export test expectations to match the updated `EcritureLib` fallback logic introduced in the related community change. Related: https://github.com/odoo/odoo/pull/257242 task-5346068 Forward-Port-Of: odoo/enterprise#125684 Forward-Port-Of: odoo/enterprise#112822
This fixes errors in the Belgian payroll salary configurator caused by a recent change. It helps ensure the salary setup flow and related automated checks work reliably again.
Original PR description
-New changes that was introduced in odoo/enterprise#121196 cause errors in salary configurator tour.
After saving or resetting a timesheet timer entry, the description field now regains focus automatically. This removes an extra click for users entering multiple timesheets and makes repeated time entry smoother.
Original PR description
Steps to reproduce: - Install the timesheets application. - Open the timesheet timer menu from the systray. - Fill out the new timesheet entry. - Click the 'Save' or 'Reset' button (or use the keyboard hotkey). - Notice that the cursor focus is lost and the user must manually click back into the description field to start a new entry. Cause: - When a user clicks save or reset, the existing form is cleared via a DOM patch. Because the component is not remounted, the initial onMounted focus logic does not execute again. Fix: - Use onPatched to check if the save or discard button is the active element, and automatically re-focus the description input. task-6357438 Forward-Port-Of: odoo/enterprise#125578 Forward-Port-Of: odoo/enterprise#123697
Several automated checks for Point of Sale accounting and Peru electronic invoicing were corrected after recent accounting changes. This helps keep validation reliable and reduces the risk of future Point of Sale issues reaching customers.
Original PR description
*= pos_settle_due, l10n_pe_edi_pos In this commit: =============== - We have fixed several test cases that are impacted by pos accounting refactor. error-944320,944376,944377,944396,944397,944398,944399,944400,944322,944323, 944315,944319,944314 task-6401593 Related Community PR: https://github.com/odoo/odoo/pull/277655
When correcting a paid payslip from its Correct button, the wizard no longer asks users to choose between correcting one or multiple payslips. This prevents accidental bulk corrections and keeps the process focused on the payslip the user opened.
Original PR description
Steps to reproduce: - Validate and pay two payslips for the same employee - Change a payroll field (e.g. wage) on the employee form, flagging both payslips as having wrong data - Open one of the paid payslips and click "Correct" - The wizard shows the single/multi radio selection Hide the radio selection in the button flow, like the other button-flow-specific elements of the wizard view. The wizard then falls back to its default correction_choice 'single', correcting only the opened payslip. task-6391197 Forward-Port-Of: odoo/enterprise#124468
This fix keeps Australian payroll accounting tests consistent by setting them to run against a fixed date. It prevents date-sensitive payroll reporting rules from causing false test failures, supporting more reliable releases without changing user-facing payroll behavior.
Original PR description
The new qualifying earning rule introduced was breaking the tests that were not frozen in the past as it changed over to the new reporting code. runbot-940160 related too [11736](https://github.com/odoo/enterprise/pull/117367#event-26694075694) Forward-Port-Of: odoo/enterprise#122576
Expense card authorization updates now better preserve the merchant currency instead of falling back to the company currency when currency matching is imperfect. This helps keep expense amounts accurate for international card transactions and reduces accounting confusion.
Original PR description
During updates of the authorization amounts the currency may revert to the company one Specifically, if the merchant currency cannot be found, it defaults to the company currency. We now broaden the search search on currency with the `ilike` operator Task [link](https://www.odoo.com/odoo/project.task/6345203) opw-6345203 Forward-Port-Of: odoo/enterprise#125971 Forward-Port-Of: odoo/enterprise#123772
The timesheet assistant test setup was corrected so test data is prepared before the screen is loaded. This helps prevent false test failures and supports more reliable quality checks for timesheet features.
Original PR description
Before this commit, the component was mounted in the `beforeEach` block before its `onRpc` mocks were registered. This caused the initial data fetch to fail because the mocks were not yet available during initialization. This commit fixes the test by moving the component mount (`doAction`) inside the test block, strictly after the mocks are defined. Forward-Port-Of: odoo/enterprise#123790 Forward-Port-Of: odoo/enterprise#123683
Fixes an issue in Australian payroll where clearing an employee's Tax Treatment Category could cause an error. The system now handles the empty value safely and recalculates correctly once the category is set again.
Original PR description
Currently, an error occurs when a user removes the Tax Treatment Category of an Australian employee. Steps to Reproduce: - Install the `l10n_au_hr_payroll` module with demo data. - Switch to an…
Currently, an error occurs when a user removes the Tax Treatment Category of an Australian employee. Steps to Reproduce: - Install the `l10n_au_hr_payroll` module with demo data. - Switch to an `Australian company`. - Open any `Employee` > `Payroll` > remove the `Tax Treatment Category` value. `UnboundLocalError: cannot access local variable 'code' where it is not associated with a value` After the [change] in selection field behavior, users can clear the value of the field. When the user removes the Tax Treatment Category value, the system computes the tax treatment code [1]. During this process, if no condition matches, the code variable is not initialized. Converting this uninitialized variable to a string [2] raises an error. This commit ensures that when the tax treatment category is not set, the tax treatment code is set to False with an early return. Since the tax treatment category is required field and compute the correct tax treatment code, once the category is set. [change]: https://github.com/odoo/odoo/pull/214422/changes/8d2a42ac419fdf7943a0c11beb8c5de6c6f85bef [1]- https://github.com/odoo/enterprise/blob/017743cbe97b629e9d9f1895b655014d4c3abbcb/l10n_au_hr_payroll/models/hr_version.py#L450-L451 [2]- https://github.com/odoo/enterprise/blob/017743cbe97b629e9d9f1895b655014d4c3abbcb/l10n_au_hr_payroll/models/hr_version.py#L515 No task ID Forward-Port-Of: odoo/enterprise#124067
Code cleanup and technical improvements
The spreadsheet chart type selection code was simplified to align with the latest spreadsheet engine update. This is an internal cleanup that helps keep chart editing reliable and easier to maintain, with no expected change to day-to-day user workflows.
Original PR description
With the latest o-spreadsheet version, the patch of `ChartTypePicker` needs to be modified, and it ends up being simpler than before. Task: [6116503](https://www.odoo.com/web#id=6116503&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
This update reorganizes how pivot table insertion is handled in Odoo spreadsheets. It should preserve the same user experience while making the underlying spreadsheet code easier to maintain and test.
The Documents PDF viewer now manages its behind-the-scenes page interactions more reliably and with less custom code. This is an internal cleanup that helps reduce maintenance risk while preserving existing PDF viewing, navigation, and drag-and-drop behavior.
Original PR description
Migrated the document-level event listeners (click, mousedown, mouseup, mousemove, keydown) to `useListener` (from `@odoo/owl`), which registers them and cleans them up automatically on component teardown. This replaces the manual `addEventListener` / `removeEventListener` pair that was split across `onMounted` and `onWillUnmount`, and drops the local `_onOutsideClick` holder that only existed to keep a stable bound reference for both calls. The PDF file loading in `onMounted` is now awaited. This code already had test coverage — below are some of the tests that failed when it was commented out, and are now passing again: - @documents/pdf_manager/Pdf Manager basic rendering - @documents/pdf_manager/Pdf Manager: arrow navigation - @documents/pdf_manager/Pdf Manager: drag & drop see commented-out runbot build: https://runbot.odoo.com/runbot/batch/2593682/build/114682467
This update modernizes internal appointment calendar code by replacing an outdated technical pattern with the newer recommended approach. It should not change day-to-day behavior for users, but it helps keep the system easier to maintain and safer to evolve.
Original PR description
- community: https://github.com/odoo/odoo/pull/277775 See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The way Odoo Enterprise manages color scheme behavior has been reorganized to make it easier to maintain and extend. Existing behavior is preserved for compatibility, so users should not see functional changes.
Original PR description
In this commit, we rewrite the color_scheme service as a plugin. For legacy purposes, we keep the color_scheme service (as a service). We also adapt the codebase to reflect the changes on the service.
This update standardizes the popover cards shown in Map, Gantt, and Calendar-style scheduling views. It reduces duplicated implementations across apps, making future maintenance easier and helping deliver a more consistent user experience.
Original PR description
This commit factorizes the code of the card popovers used in Map, Gantt and Calendar views. Those popovers have been recently introduced [1][2][3], but each with their own implementation. Now that we have a clear picture of the functional needs, we introduce a standard CardPopover component that can be used in the various usecases. [1] task-6310630 [2] task-6358615 [3] task-6310362 Task-6385983
Miscellaneous changes
The transition to Material Symbols broke many translations. These commits apply safe repair to translation where only icon-related classes and data attributes changed.
Original PR description
The transition to Material Symbols broke many translations. These commits apply safe repair to translation where only icon-related classes and data attributes changed.