Daily updates from Odoo
Tuesday, July 1, 2025
24 changes · master
Enhancements to existing features
The accounting report test suite was adjusted to match the standard payment and receipt accounts now created automatically with the chart of accounts. This prevents internal test conflicts and helps keep accounting-related updates reliable without changing day-to-day user workflows.
Original PR description
In this PR: - As part of recent changes, the default Outstanding Payment/Receipts accounts are now always created when the Chart of Accounts is loaded, and several test cases were updated to avoid unique constraint errors. - Previously, these test cases manually created accounts with codes like `OSTR00` and `OSTP00`. Now that these accounts are created by default, attempts to redefine them or change their codes have led to conflicts. - This commit updates the affected test cases to: - Use the correct default account codes directly (101403, 101404) - Avoid reassignment of codes that are now created by the CoA template task-4826385 Forward-Port-Of: odoo/enterprise#88802 Forward-Port-Of: odoo/enterprise#88068
Duplicating a salary attachment no longer carries over the amount already paid. This prevents copied records from inheriting case-specific payment history, helping payroll teams start each duplicate with accurate values.
Original PR description
Task: 4825871
This update replaces an outdated stock picking date with the record creation date in related delivery, subscription, and reporting logic. It improves the reliability of stock picking filters and reports, with upgrade support handled separately.
Original PR description
This change was suggested by a contributor, but it requires an upgrade script, so a set of 3 new PRs was created. The original purpose was to improve the stock picking filtering in `simulate_period` test helper method. While working on this, it became apparent that the `date` field in stock picking is useless and it should be replaced by `create_date`. Related: https://github.com/odoo/odoo/pull/213949 https://github.com/odoo/enterprise/pull/87494 https://github.com/odoo/upgrade/pull/7852 Original community PRs: https://github.com/odoo/odoo/pull/171895 https://github.com/odoo/enterprise/pull/66084
Timesheet entries now rely directly on their linked project to determine timesheet behavior, instead of using a separate internal marker. This reduces duplicated logic and helps keep timesheet reporting, merging, and timer workflows more consistent.
Original PR description
- Previously, the `is_timesheet` field was set based on the project associated with the timesheet. In this commit, we removed the `is_timesheet` field and now manage the logic through `project_id`. task-4759383
The appraisal templates were updated with clearer, corrected wording based on feedback. This helps managers and employees see more accurate appraisal text, reducing confusion from awkward or incorrect phrasing.
Original PR description
Edited the template wording to fix some incorrect translations task: 4791321
Several website-related apps now use a newer, more consistent way to define filtering rules. This improves maintainability and helps keep behavior consistent across appointments, helpdesk, knowledge, live chat, sales, stock, and related website features.
Original PR description
odoo/odoo#206891
This update modernizes how inventory-related features define search filters across manufacturing, quality, barcode, accounting, rentals, and localization flows. It should make these areas easier to maintain and reduce the risk of inconsistent filtering behavior without changing day-to-day workflows.
Original PR description
task-4280707 odoo/odoo#216505
This update aligns enterprise online store components with recent community platform changes. It helps keep the eCommerce experience consistent and maintainable after upstream updates, with no major business process change expected.
Original PR description
Backport of 24e39d1a6169a36076e9dfcfba2200db8ab8748a (post-freeze) task-4485463 Forward-Port-Of: odoo/enterprise#88920
Resolved issues and error corrections
The Indian payroll demo data now uses payslip dates that fit within the employee contract period. This prevents installation errors when loading demo data, making setup smoother for evaluations and testing.
Original PR description
Issue: The demo payslip for employee had dates before the contract start date, leading to errors during demo data installation. Fix: Adjusted the payslip dates to be 3 months before the current date, ensuring they fall within the employee's contract period and allowing successful demo installation. Forward-Port-Of: odoo/enterprise#86794
This update fixes an issue in Payroll where editing payslip lines could fail when adding a new line. Payroll users can now complete this workflow more reliably without encountering a record creation error.
Original PR description
In this PR we add edit_payslip_lines_wizard_id in the view to prevent a new line record creation error. Forward-Port-Of: odoo/enterprise#88923 Forward-Port-Of: odoo/enterprise#88033
The ESIC report now shows a clearer warning when there are no payslips with a valid ESIC value. This helps payroll users understand why the report has no data and what condition is missing.
Original PR description
In this PR, we updated the warning message shown in the esi report view when no payslips with a valid ESIC value. **Before:**  **After:**  Related task: 4753033
This fix prevents AI mail rendering from changing settings passed in by custom modules. It helps avoid unexpected behavior when the same parameters are reused elsewhere, improving reliability for customized deployments.
Original PR description
In custom modules the caller parameters are reused, don't modify them in place as it is a bad practice and copy the dict. Forward-Port-Of: odoo/enterprise#88901
Removing a parent emission source no longer causes an error in the ESG app. This keeps emission source records editable and helps users maintain ESG data without interruption.
Original PR description
Currently, an error occurs when attempting to remove the parent emission source from an emission source. Steps to Reproduce: - Install the `ESG` module. - Go to `Emission Sources` and create a new…
Currently, an error occurs when attempting to remove the parent emission source from an emission source. Steps to Reproduce: - Install the `ESG` module. - Go to `Emission Sources` and create a new emission source with a parent emission source. - Remove the parent emission source. `ValueError: Compute method failed to assign esg.emission.source(<NewId origin=3>,).activity_flow_direct_indirect` This error occurs when the parent emission source is removed, causing the scope to become False in _compute_scope[1]. Subsequently, in _compute_activity_flow[2], none of the cases match, which results in a failure to assign the activity flow and raises an error. [1] https://github.com/odoo/enterprise/blob/1c7620d8de97757abda1993822f92590987bc46c/esg/models/esg_emission_source.py#L75 [2] https://github.com/odoo/enterprise/blob/1c7620d8de97757abda1993822f92590987bc46c/esg/models/esg_emission_source.py#L77-L78 This commit ensures that if the parent emission source is removed, the activity flow is properly maintained. sentry-6690968543 Forward-Port-Of: odoo/enterprise#88158
This update adjusts internal test expectations for Odoo's enterprise email features after a recent merge caused automated checks to fail. It helps keep the development pipeline reliable without changing customer-facing behavior.
Original PR description
Started to fail just after merge, weird. runbot-227060 Forward-Port-Of: odoo/enterprise#88947
The Journal Report now displays the account name in the Account column, making entries easier to recognize and review. This fixes a visibility issue and helps business users understand report lines without relying only on account codes.
Original PR description
The purpose of this pr is to add account name in the Account column of the Journal Report. Before this code changes:  After this code changes:  OPW : 4702276 Forward-Port-Of: odoo/enterprise#86113
Accounting report tests now use the correct setting so they remain stable when the US accounting localization is installed. This prevents automated checks from being redirected to a US-specific tax report, improving release reliability without changing user-facing behavior.
Original PR description
https://github.com/odoo/odoo/commit/174fda9bde8460df0d819100aed7974321d43a59 added a new US variant for the tax report. When running the tests, some failed, because the active company was then a US one, and calling the generic tax report actually rerouted to that new variant. We now ensure we don't reroute in those tests by using the appropriate option key. runbot-226719 Forward-Port-Of: odoo/enterprise#88642
Miscellaneous changes
Before this commit, the internal user without any access to planning app can no longer access to the calendar view of planning.slot model to see his shifts and the open shifts. The reason is because the new filter added is only accessible to planning user. This commit hides the new filter on resources when the user has no access to planning app. Steps to reproduce: ================== 0. install Planning app 1. Create an internal user without any access to planning app (or remove pla
Original PR description
Before this commit, the internal user without any access to planning app can no longer access to the calendar view of planning.slot model to see his shifts and the open shifts. The reason is because…
Before this commit, the internal user without any access to planning app can no longer access to the calendar view of planning.slot model to see his shifts and the open shifts. The reason is because the new filter added is only accessible to planning user. This commit hides the new filter on resources when the user has no access to planning app. Steps to reproduce: ================== 0. install Planning app 1. Create an internal user without any access to planning app (or remove planning access to Marc demo) 2. Log as Marc demo (or new user created in step 2) 3. Go to planning app and switch to calendar view Expected Behavior: ----------------- The user should be able to access to the calendar view without any issue. Current Behavior: ---------------- An access error is raised because the current user cannot access to `planning.calendar.resource` model which is only accessible to users with planning access rights. runbot-error-227622 Forward-Port-Of: odoo/enterprise#88325
In the Datev standard export, sales with foreign currency and currency indicator are exported to the wrong column. Steps to reproduce: - With a DE Company - Open Accounting / Reporting / Audit Reports / General Ledger - Click "Datev Data (ZIP)" - Open EXTF_accounting_entries.csv According to the documentation https://apps.datev.de/help-center/documents/1003221 Chapter 3. when a journal entry is in a foreign currency: - The amount in foreign currency should go into Column B - The c
Original PR description
In the Datev standard export, sales with foreign currency and currency indicator are exported to the wrong column. Steps to reproduce: - With a DE Company - Open Accounting / Reporting / Audit Reports / General Ledger - Click "Datev Data (ZIP)" - Open EXTF_accounting_entries.csv According to the documentation https://apps.datev.de/help-center/documents/1003221 Chapter 3. when a journal entry is in a foreign currency: - The amount in foreign currency should go into Column B - The currency code should go into Column C - The base currency amount (i.e. the company's local currency) should be shown in Columns E and F opw-4701001 Forward-Port-Of: odoo/enterprise#88406 Forward-Port-Of: odoo/enterprise#87002
Added new translated error messages: - "error_navigation_timeout" - "error_url_redirection" - "error_duplicated_request" Forward-Port-Of: odoo/enterprise#88821
Original PR description
Added new translated error messages: - "error_navigation_timeout" - "error_url_redirection" - "error_duplicated_request" Forward-Port-Of: odoo/enterprise#88821
Before this commit, when selecting all (ctrl-a) in kanban or list views the first document is shown in the detail panel but the focus is not set on it. This commit fix this issue, when no document is focused and we select all the focus is set on the first document, if a document is already selected when selecting all the focus will still be that document. Task-4813624 Forward-Port-Of: odoo/enterprise#88757 Forward-Port-Of: odoo/enterprise#88037
Original PR description
Before this commit, when selecting all (ctrl-a) in kanban or list views the first document is shown in the detail panel but the focus is not set on it. This commit fix this issue, when no document is focused and we select all the focus is set on the first document, if a document is already selected when selecting all the focus will still be that document. Task-4813624 Forward-Port-Of: odoo/enterprise#88757 Forward-Port-Of: odoo/enterprise#88037
When sharing a knowledge article with an embedded view to an external user. The view was loading indefinitely without saying that the user doesn't have access to that view. Steps to reproduce: ------------------- * Go to the Planning app * Click the 'gear' icon * Click 'Knowledge' * Click 'Inset view in article' * Select an article to add it to * Share the article with portal user > Observation: Embedded planning keeps loading indefinitely. Works with other views that require acce
Original PR description
When sharing a knowledge article with an embedded view to an external user. The view was loading indefinitely without saying that the user doesn't have access to that view. Steps to reproduce: ------------------- * Go to the Planning app * Click the 'gear' icon * Click 'Knowledge' * Click 'Inset view in article' * Select an article to add it to * Share the article with portal user > Observation: Embedded planning keeps loading indefinitely. Works with other views that require access rights. Why the fix: ------------ Embedded view was loading regardless of the error state. opw-4664036 Forward-Port-Of: odoo/enterprise#87589
With this PR: https://github.com/odoo/enterprise/commit/d0659e4bea162d52604910e86a93c38bc3769bf1 The field `totals_below_sections` became uncheckable. The cause was a missing readonly=False on the field task-4894698 Forward-Port-Of: odoo/enterprise#88544 Forward-Port-Of: odoo/enterprise#88491
Original PR description
With this PR: https://github.com/odoo/enterprise/commit/d0659e4bea162d52604910e86a93c38bc3769bf1 The field `totals_below_sections` became uncheckable. The cause was a missing readonly=False on the field task-4894698 Forward-Port-Of: odoo/enterprise#88544 Forward-Port-Of: odoo/enterprise#88491
Task: 4610586 If an operator is added in the side panel of Shop Floor, and an MO has multiple work orders, then after marking all of the steps as done, the selected user is assigned to all of them except the final one. This commit fixes the error, assigning the selected operator to all completed work orders. Forward-Port-Of: odoo/enterprise#88409 Forward-Port-Of: odoo/enterprise#84790
Original PR description
Task: 4610586 If an operator is added in the side panel of Shop Floor, and an MO has multiple work orders, then after marking all of the steps as done, the selected user is assigned to all of them except the final one. This commit fixes the error, assigning the selected operator to all completed work orders. Forward-Port-Of: odoo/enterprise#88409 Forward-Port-Of: odoo/enterprise#84790
The current implementation of the `startTimer` function incorrectly calculates the current time when the timer has been paused. For ex, if the timer started 24 hours ago and was paused 23 hours ago. Calling `startTimer` to resume the timerReactive component, would calculate the offset between the paused time and current time incorrectly. This change ensures that no extra time is added to the timer, when it is in a paused state, maintaining accurate tracking of elapsed time. opw-4658402 op
Original PR description
The current implementation of the `startTimer` function incorrectly calculates the current time when the timer has been paused. For ex, if the timer started 24 hours ago and was paused 23 hours ago. Calling `startTimer` to resume the timerReactive component, would calculate the offset between the paused time and current time incorrectly. This change ensures that no extra time is added to the timer, when it is in a paused state, maintaining accurate tracking of elapsed time. opw-4658402 opw-4824616 opw-4829820 Forward-Port-Of: odoo/enterprise#86831