Daily updates from Odoo
Wednesday, June 25, 2025
9 changes
Enhancements to existing features
Quote PDFs for subscriptions now show the subscription end date when one is set. This gives customers clearer contract timing and reduces the need for manual edits before sending quotes.
Original PR description
Before: The subscription end date was not displayed on the quote PDF, requiring users to manually adjust end of the subscription period. After: If a subscription end date is defined, it is now displayed next to the recurring plan on the quote PDF, reducing manual effort and improving clarity for customers. task-4801402
Recurring planning shifts now update more predictably when a user changes dates. Depending on whether changes apply to all or only future shifts, the system rebuilds the affected recurrence from the right shift, reducing inconsistent schedules and avoiding errors when deleted shifts are involved.
Original PR description
If the user doesn't change any date field, the recurrence should be impacted as expected. However, when at least one date field is changed, with option: - "all": the changes should be applied to the first shift, then all other shifts in the recurrence should be deleted and recreated, using the first one as template. - "subsequent": the previous shift's recurrence should be unset, the changes should be applied to current shift, the subsequent shifts should be deleted and recreated, using the current one as template. task-3765142
Salespersons can now view commission adjustment records when they are directly involved in the adjustment. This helps them better understand changes affecting their performance while keeping unrelated adjustment records restricted.
Original PR description
Purpose: Salespersons previously had no access to achievement adjustments, even when directly involved. This change introduces conditional read access so they can view adjustments related to their own performance. Before: - Salespersons could not see any adjustment records — not even those they were involved in (`add_user_id` or `reduce_user_id`). - Managers already had full access to all adjustment records. After: - Salespersons now have read access to adjustments only when they are involved (as `add_user_id` or `reduce_user_id`). - Added a record rule to enforce salesperson-level visibility. - Updated the security CSV to grant the Salesperson group read access to the adjustment model. task:4783916
Renewed subscriptions now carry over customer-facing notes and relevant section headings from the original order. This helps sales teams preserve important context and makes renewal documents clearer without manual re-entry.
Original PR description
Prior to this commit, it wasn't possible to keep the sections and notes when renewing a subscription. This commit modifies the behaviour to keep the notes and non-empty sections (sections that have at least one subscription product), in the renewed `sale.order`. task-4554471
Spreadsheet users can now open the filter search dialog directly from the filter control, making it quicker to find and apply filters. Filter creation and editing remain available in the side panel, preserving existing configuration options while improving day-to-day use.
Original PR description
This commit changes the behavior of the filter component (top right corner of the spreadsheet) to open the filter search dialog instead of the side panel to configure filters. Filters can still be created and edited in the side panel, but the search dialog provides a more efficient way to search and apply filters directly from the spreadsheet. Task: 4816193
The online sales experience for rentals, subscriptions, and appointments was updated to stay compatible with recent platform changes. This helps keep product selection, order handling, and related checkout tests working consistently for customers using these sales options.
Installing the main AI module now automatically includes AI Fields and AI Server Actions. This makes setup simpler and ensures users get the full AI feature set without needing to install related modules separately.
Original PR description
Improving UX by adding all of the AI related functionalities when AI module is installed. issue ticket task-4855178 Divagations --- In the future the ai_fields and ai_server_actions modules should be merged into the ai module. with ticket task-4889610
The budgeting app can now be used without installing the purchasing app, making it suitable for simpler budget management needs. Purchase-related committed amount tracking is moved into a separate add-on, so businesses can choose a lighter setup or keep purchase integration when needed.
Original PR description
Allow using budgets without installing purchase, for simple budgetting without committed amounts. Currently, there are two ways of doing budgets: * using accounting entries, using the budget feature of account reports: this works in some cases where we only need one plan, and that plan can be reduced to accounts or groups of accounts determined by the accounting reports * using `account_budget`: it gives a lot more flexibility, can be integrated with other apps/concepts, can use multiple plans, but it requires `purchase` to be installed. This gives the opportunity to use the budget feature for simpler use cases, including on the one-app-free plan of Accounting.
Resolved issues and error corrections
Assigned users can now open worksheets linked to their tasks, even when another user created the worksheet. This removes an access blocker in Field Service and related worksheet flows, helping teams collaborate without needing elevated permissions.
Original PR description
Steps to Reproduce
-----------
- Install field service
- Open project, create a task with worksheet enabled on project
- Assign two user A and B on the task
- Create the worksheet
- Login using user B
Issue
--------
- User B doesn't have access to the worksheet
- Similar issue in the quality app
Cause
----------
- User B not able to edit the existing worksheet because it triggers an SQL constraint making sure that 1 worksheet is related to only 1 task.
Fix
----------
- We remove this [('create_uid', '=', user.id)] record rule.
task-3891011