Daily updates from Odoo
Navigate
Branch
Saturday, August 30, 2025
26 changes
New functionality added to Odoo
Users can now choose where documents go when moving, duplicating, creating shortcuts, or creating documents from attachments. This makes document organization more flexible, including support for destinations like My Drive and Company, while simplifying how the system handles document locations.
Original PR description
### Purpose Allow users to choose the location when * moving documents * creating shortcuts * duplicating files * creating a document from attachment (from chatter) ### Implementation choices…
### Purpose Allow users to choose the location when * moving documents * creating shortcuts * duplicating files * creating a document from attachment (from chatter) ### Implementation choices motivation As "My Drive" and "Company" are valid destinations for these operations, As these are not folders, As we do not want to repeat ourselves, We here introduce the `user_folder_id` a computed `Char` representing a virtual folder (matching a real folder if its value is a number, or a special sections from documents otherwise, such as "MY" and "COMPANY"). This allows to concentrate the logic about what constitutes these "virtual" folders on the `documents.document` model and simplify lots of webclient code. Additionally, a new and more convenient `user_can_move` will replace `is_company_root_folder` in the views-required computed fields to further help centralize logic on the models. For example, we can allow moving documents from different places at once. See details in individual commits. Task-4685403
The ESG app now includes IPCC greenhouse gas data and updated warming potential values, giving businesses a broader and more reliable basis for carbon reporting. Users can import supported emissions databases more smoothly and are guided directly to emission factors after a successful import.
Original PR description
task-4812645
Enhancements to existing features
Norwegian tax reporting now includes a guided step that explains how users should submit their tax return, making the closing process clearer. The company data setup also captures the Register of Legal Entities information needed for Norwegian compliance.
Original PR description
- Add instructions wizard for users on how to submit the tax return. - Add Field: Register of Legal Entities (Brønnøysund Register Center) to company data wizard. task-4893971
Belgian payroll holiday attestations have been redesigned to include clearer employee details, occupation periods, and more accurate remuneration calculations. Payroll teams also get a simpler workflow and a new setting to define the legal time off type used in these attestations.
Original PR description
task-5011670
AI-powered prompts and automation can now include relevant web information when generating responses, improving the usefulness of AI outputs. The update also fixes several reliability issues around prompt editing, relational fields, document sorting, and language consistency so users encounter fewer errors and interruptions.
Original PR description
Purpose: ------- Allows to use web grounding when using the `_request_llm` method in the llm api service. Updated ai_fields so that it uses the `_request_llm` method now that web grounding is supported. Also fixing an JSON serialization error occurring when adding relational fields with ir.attachment as comodel. Now, newIds will always be converted to their string representation.
This update changes how request results are matched to the original request, avoiding reliance on an internal insertion order that may not be consistent. This helps prevent incorrect results from being returned and prepares the system for more efficient request batching in the future.
Original PR description
*: cloud_storage,im_livechat Before this commit, results of the insertion of data in the store were used, this could lead to issues later on, since the insertion does not keep the order of the data. To avoid this, we send back in the result of the rpc's the IDs linked to the request. In the future, we could use this to batch requests together and retrieve the result of the request with the given ID. task-4982525
The VoIP softphone now automatically receives focus when opened using the keyboard shortcut. This makes it easier for users to start interacting with the phone immediately and avoids an extra click or lost keyboard input.
Original PR description
This commit ensures the VoIP softphone is automatically focused when opened with keyboard. Previously, the softphone would lose focus when opened with keyboard. Task-4936059
Automated website sales checks for rental and subscription products now look for the updated "Checkout" button label. This keeps internal validation aligned with the current shopping flow and helps avoid false failures after the interface wording changed.
Original PR description
- Updated tour step triggers from `Proceed to Checkout` to `Checkout` in product configurator tours to reflect the recent UI label change. - Prevents tour failures due to mismatched button text. See Also: - Community PR: https://github.com/odoo/odoo/pull/213288 task:4731022
Payments now carry a unique end-to-end reference as soon as they are created, and incoming bank transactions can use it for reconciliation. This should reduce manual matching work and improve accuracy for SEPA, ISO 20022, and online payment flows.
Original PR description
*: accountant, iso20022, online_payment Before, an end_to_end_id was generated when creating a batch payment for every payment. This information was never used when receiving transactions later. Now, this ID is generated after each payment creation, and is used to match with bank transaction lines. task-4210735
Employee contract offers are easier to access and update, with offer details now changing automatically based on the selected contract template. Several payroll and employee menus were simplified, attachment information is clearer, and a Belgian salary package installation issue was corrected.
Original PR description
- removed generate offer button and made the smart button for offers always visiable to generate offers if there are none - added a computed fileld for attachment running amount to show it in attachments smart button instead of their count - changed the place of the contract template menu item to be in configration under job positions - removed salary attachment menu item in hr_payroll - removed bank account menu item in Employee - made offer values change automatically according to the contract template - fixed a bug preventing from installing l10n_be_hr_contract_salary because of wrong assignment of canteen costs task id: https://www.odoo.com/odoo/project/1251/tasks/4988659
The Belgian SD Worx payroll export now checks data before starting the export instead of interrupting the export with user error messages. This makes the process clearer and helps users resolve issues earlier, reducing failed exports.
Original PR description
Removed User errors from the export process, and extracted the data check into a step prior to the exporting in hr.work.entry.export.mixin Task: 4968319
Payroll configurations for the UAE, Egypt, Jordan, Saudi Arabia, and Turkey now include an expense salary rule in regular pay structures. For supported accounting localizations, the related debit account mapping is also added so payroll expenses can be posted more consistently.
Original PR description
*: AE/EG/JO/SA/TR - add the expense salary rule to each loca regular pay structure Task: 4822631
Salary rule forms were made clearer and easier to use, with improved labels, helpful guidance, and fewer confusing display options. This reduces setup mistakes for payroll teams and preserves important guidance that users might otherwise delete.
Original PR description
- solved a bug with the color not changing in display tab - removed preview section in display tab - added placeholder and tooltips for fields in accounting tab - renamed some fields in accounting tab for better readablity - moved the python default comment to be an info panel so it doesn't get removed by the user task-id: 5043889
When an email creates a project task, any internal users included as recipients are now automatically added as assignees. This helps tasks reach the right employees without manual follow-up, improving routing and accountability.
Original PR description
From this commit, when we send mail to project email address to create a task if the same task has other recipients who are internal users will be set as assignees of such created task. Changes related to commuinity PR. task-4510316
Resolved issues and error corrections
Resending documents for multiple payslips no longer fails when the system prepares the related email templates. This helps payroll teams process batches reliably without needing to resend each payslip one by one.
Original PR description
since https://github.com/odoo/enterprise/commit/a2829976f5ec0c8c31fc63d931ce2bae44429560, if the action is called on multiple records, the ensure_one of _get_email_template of documents_l10n_ch_hr_payroll module will make it crash. This commit calls the get_template method on each payslip instead. Task-5051591
This fix ensures the correct company is used when applying exchange or rate information in bank statement processing. It helps prevent accounting calculations from using the wrong company context in multi-company setups.
Original PR description
In this commit: https://github.com/odoo/enterprise/commit/92b06bd5bf4084066a03f8b98e2c66e40bf9a64b we added a with company but at a wrong place since it should be on the rate. no task id
Website previews will temporarily stop generating footers because a supporting configuration option was removed. This prevents preview issues while the team prepares a longer-term replacement for footer customization.
Original PR description
Since `website.snippet_options` has been removed, we need an alternative to add a new option for the footer. In the meantime (for previews of 19.0) we temporarily fix this issue by disabling footer generation.
The rental sales return flow was adjusted so the 'Return for Exchange' button keeps the correct visibility rules. This helps prevent users from seeing or using the button in situations where it should remain hidden.
Original PR description
Adapt the xpath to make sure the invisible condition on the 'Return for Exchange' button is not overriden. tasks 4748294 & 4778066 Forward-Port-Of: odoo/enterprise#93456 Forward-Port-Of: odoo/enterprise#89090
Invoices created after customers pay subscriptions through the portal now correctly generate the required signed electronic documents. This restores compliance-related invoice processing for affected localizations, including Mexican electronic invoicing, and prevents missing government signatures after online payments.
Original PR description
## Steps to reproduce: - Make sure the Mexican localization is installed and properly set up for signing invoices - Make sure the payment providers are set up (it can be demo, the customer uses…
## Steps to reproduce: - Make sure the Mexican localization is installed and properly set up for signing invoices - Make sure the payment providers are set up (it can be demo, the customer uses Stripe but it can be reproduced with any - Make sure the online payment setting is active - Go to subscription module - Do a new order - In other info, add the online payment checkmark - Confirm the order - Generate the payment link or go into the preview - Make the payment ## Issue: The invoice is generated, but is not signed by the government (no edi is generated), as it used to. ## Cause: The flow works in 17.0 but for the wrong reason. Before this [commit](https://github.com/odoo/enterprise/pull/70562), two mails were sent. And during the chain of triggers of the second email, edi document was generated with `orders._send_success_mail(tx.invoice_ids, tx)`. https://github.com/odoo/enterprise/pull/70562/files#diff-8778c8dce7ca1c24de19f26f11ac0c5410c6c2a4d121c3815682a2323cbb09c2L177 After the removal of the method, it should still work since we still have `payment.transaction._send_invoice` which calls `_generate_and_send_invoices` and should trigger the sub calls necessary for generating the edi stuff. But in `_create_or_link_to_invoice`, we check that the transaction has no invoice_ids linked (make sense with the name of the method). However, at this stage, we already created the invoice in https://github.com/odoo/enterprise/blob/2f3698b250092ad376344e959d46bdc0eebf1a81/sale_subscription/controllers/portal.py#L419-L424 And unfortunately, it will be effectively possible to "let the post process of transaction create" the invoices only in Master (the code is not ready yet). For now it would be too risky for a stable version to make such change. ## Solution: We ensure EDI documents are generated whenever a `subscription_action` is set. To achieve this, modify the `_post_subscription_action` hook to call `_subscription_post_success_payment` for any `subscription_action`, including `assign_token`. From `_subscription_post_success_payment`, we can call `_generate_and_send_invoices` on any invoice that has an EDI associated with it, which sends & signs the required EDI documents. opw-4648189 Forward-Port-Of: odoo/enterprise#93231 Forward-Port-Of: odoo/enterprise#84815
Stopping a timesheet timer now matches entries using the user's local date instead of UTC. This prevents time from being added to the previous or next day's timesheet for users in different time zones.
Original PR description
Before this commit, if you were to log time on a timesheet using the timer start and stop buttons, you could potentially log time for the previous day's or the upcoming day's timesheet entry. This is because we were searching for previously-created timesheet entries based on the UTC Date of the timer's "stop" time. This fix uses the client's local time to get the Date of the timer stop. With this, we'll only find timesheet entries with the `date` field matching the client's local Date. opw-4967487 Forward-Port-Of: odoo/enterprise#93356 Forward-Port-Of: odoo/enterprise#92569
Switching a server action away from “update with AI” no longer triggers an irrelevant validation warning. This prevents confusion and keeps action configuration smoother for users changing action types.
Original PR description
Bug === When setting a server action "update with AI", and switching to a different type of action, the validation error could be raised because we didn't check the `state`. Task-4989962 Forward-Port-Of: odoo/enterprise#92516
The Hong Kong payroll IR56B report now works more reliably by restoring XML generation and allowing the populate action to be run more than once. This helps payroll teams complete required tax reporting without errors caused by disabled or outdated report fields.
Original PR description
Fixes a few issues with the IR56B report: - Fix the populate button so that it can be pressed multiple times without errors. - Add back the generate XML button in the view. - Fixes an issue in the IRD report model where a renamed field wasn't updated. This re-adds the existing functionality that was wrongly disabled; other improvements are planned for the next version. task-5027501
This fixes Swiss payroll sheet calculation so it no longer unnecessarily recalculates wage-related values after occupation periods are recomputed. As a result, manual adjustments entered by payroll teams are preserved instead of being overwritten.
Original PR description
Following changes in 18.4, compute sheet introduces a recomputation of occupation period which introduces a recomputation of wages, this recomputation is not necessary as it overrides all introduced manual change. Forward-Port-Of: odoo/enterprise#93367
Features or functions removed from Odoo
The Payroll Master Report has been removed because its previous Excel export purpose is now covered by the payslip lines report. This simplifies the payroll menu and avoids maintaining a duplicate reporting option.
Original PR description
It had a previous need but not any longer referenced to the task PURPOSE: "We previously needed the master report to be able to extract details from the payslip lines as columns in Excel format, with the ability to specify which lines to be selected on the Excel export, but since we now have the payslip lines report, we can drop the Master Report." So dropped the whole model and all related: views, menu item, security, access, calls from manifest/__init__ files. task-5039576
Code cleanup and technical improvements
This change removes an unused internal variable from the Manufacturing Work Orders module. It has no effect on users or business processes, but helps keep the codebase simpler and easier to maintain.
Original PR description
The variable `main_employee_connected` was previously used inside the `_set_default_time_log` method, but it is no longer used since it was removed in this [PR](https://github.com/odoo/enterprise/pull/84790). As a result, the variable is redundant and has no functional impact. This commit removes the dead code to keep the codebase clean and maintainable.
The AI and live chat apps now identify AI agents directly instead of relying on their linked contact records, simplifying internal handling and reducing unnecessary checks. This also improves access handling for AI agents and fixes cases where removed website snippets or archived agents could leave live chat configuration inconsistent.
Original PR description
In the AI app, there are multiple functions that receive the partner_id of the ai.agent as a parameter. This complicates the code and results in unnecessary checks on the partner_id to make sure it is connected to an AI Agent. This commit replaces the usages of partner_id of ai.agent (unless actually needed) with the id of the agent. To do so: 1. ai_agent_id is stored on discuss.channel model. 2. All rpc calls to AI Controllers are changed to pass ai_agent_id instead of partner_id. 3. All functions inside AI app are changed to use ai_agent_id instead of partner_id. However, there are some functions that actually require partner_id. These functions are left without modification. Community PR: https://github.com/odoo/odoo/pull/223008 task-4991208