Daily updates from Odoo
Wednesday, March 4, 2026
13 changes · master
New functionality added to Odoo
This update allows you to share documents with external websites through the Documents and Website module. Users can now specify a website domain when sharing, ensuring the shared link directs to the intended external site instead of the main Odoo platform. This enhances flexibility and control over document distribution.
Original PR description
PURPOSE When use Documents and Website, manage various websites not main odoo site. SPECIFICATIONS If Documents and Website are installed: - Add a new field "Website domain" on the share wizard. - When selecting a website in the list, the URL to share will be the URL of the website and not of the main odoo site. Task-2658985
Resolved issues and error corrections
This update corrects a minor issue in the Documents app where action names weren't consistently reflecting the type of account move being created. Specifically, 'Invoices' was used regardless of the document type. The fix now uses the account move type to display the correct action name (e.g., 'Vendor Bills'), improving clarity and usability.
Original PR description
Previously, creating account moves from the Documents app opened the account.move list view with a static `Invoices` title, which was not explicit for all move types. Steps to reproduce: 1. Select suitable PDFs in Document App. 2. Click on `Vendor Bill`. 3. See the name of action (below Breadcrumbs) should be `Vendor Bills` instead of `Invoices` This fix adds and uses a mapping based on move_type to set the correct action name (e.g., Vendor Bills) after record creation. task-5983372 Forward-Port-Of: odoo/enterprise#109307 Forward-Port-Of: odoo/enterprise#109180
This update corrects a technical issue where incoming VoIP calls weren't properly recording their creation date in the database. The fix ensures accurate tracking of call start times, improving reporting and analysis of VoIP activity. This change impacts the VoIP module.
Original PR description
For incoming calls in VoIP, they didn't have create date written in the database becasue we were using `self.env.cr._now`. The orm `create` method uses `self.env.cr.now()`, a method, and it's working fine for outgoing calls. This commit fixes it for incoming calls and changes `_now` to `now()`. Task-5979968 Forward-Port-Of: odoo/enterprise#109041
This update simplifies the salary simulator by hiding temporary offers from the user interface. These offers are automatically deleted after a month by a scheduled process, so this change prevents confusion for users while ensuring the underlying salary calculations remain accurate.
Original PR description
The salary simulator creates temporary offers to compute salary configurations. These offers must still exist for backend computations, as the configurator relies on them when updating results. Simulation offers are already cleaned up by a cron job after one month, so this change simply hides them from the list view to avoid user confusion. task: 5498873 Forward-Port-Of: odoo/enterprise#109329 Forward-Port-Of: odoo/enterprise#107340
This update corrects a minor issue preventing users from editing date input fields within the HR payroll module. The change ensures the relevant popover is displayed before the input field is cleared, restoring full functionality. This resolves a temporary disruption to payroll processing.
Original PR description
With this additionnal step in tour, we ensure the popover is opened before clear the input. If we not wait for this, the input can be no longer editable. runbot-error-id~234440 Forward-Port-Of: odoo/enterprise#109346
This update corrects a technical issue within the Odoo Enterprise payroll module that could cause inconsistencies between payslip data. The fix ensures that all payroll line codes are synchronized, preventing potential errors in payroll calculations and reporting. This improves the accuracy and reliability of payroll processing.
Original PR description
Forward-Port-Of: odoo/enterprise#109280 Forward-Port-Of: odoo/enterprise#108729
This update fixes a minor issue in the Gantt chart's date selection tool. Previously, date labels didn't update immediately when a new range was chosen. Now, the UI provides instant visual feedback as you select dates, leading to a smoother and more responsive user experience. This ensures accurate date selection and reduces potential confusion.
Original PR description
This PR improves the user experience of the Gantt Scale Selector when using a **Custom** range. Previously, the "Start" and "Stop" date labels in the UI remained static until the "Apply" button was clicked, as they were bound directly to `props.scales`. This commit switches those labels to use the component's internal reactive state (`this.pickerValues`). **Changes:** * Bind `t-out` directives to `this.pickerValues` instead of `props.scales`. * Pass reactive Luxon objects through `getFormattedDate` for immediate localized rendering. **Task-5926713**
This update enhances the user experience within Odoo's web_studio by changing the names of report customizations from technical keys to more descriptive, human-readable labels. This makes it easier for users to understand and manage their report customizations, improving overall usability. The change was a simple refinement to improve clarity.
Original PR description
Before this commit the name of a view customization for a report was basically its key. After this commit, the name is more human readable task-5945040
This update corrects a display issue on payslips. The "Error" status, previously shown, has been changed to "Blocked" to provide a clearer indication of payroll processing problems. This ensures accurate reporting and easier troubleshooting for HR and finance teams.
Original PR description
[IMP] hr_payroll: renaming status name
Shown status in payslip ("Error") is needed to be changed to Blocked.
task - 5969322This update resolves an issue where refreshing pivot tables caused unexpected delays. The fix ensures that related dynamic tables are also updated, improving the overall performance and stability of the pivot functionality. This change addresses a technical problem that impacts how users interact with data visualizations.
Original PR description
Refreshing the pivot will invalidate the datasource,which means that t dynamic table related to a pivot also needs to be invalidated. This usually occurs when we insert a new table but since [1], we create dynamic tables out of thin air. Pretty much every command that will invalidate the pivots will now need to invalidate the tables as well. [1]: https://www.odoo.com/odoo/2328/tasks/4552232 Counter-part of https://github.com/odoo/odoo/pull/250909 Task-5976773 Forward-Port-Of: odoo/enterprise#109325
This update corrects a display issue where upsell sale orders created from subscriptions incorrectly showed as "Quotation". The fix ensures that upsell orders now display as standard sales orders, aligning with the naming convention for initial subscriptions. This improves clarity and consistency for users.
Original PR description
## Issue When creating and confirming an Upsell SO from a Subscription, the preview still shows the Sale Order as a "Quotation", which is inaccurate. <img width="1330" height="296" alt="5489970"…
## Issue
When creating and confirming an Upsell SO from a Subscription, the preview still shows the Sale Order as a "Quotation", which is inaccurate.
<img width="1330" height="296" alt="5489970" src="https://github.com/user-attachments/assets/cfff4c7a-fff7-4859-861b-c190dab9097d" />
## Steps to reproduce
1. Install *Subscription* (`sale_subscription`)
2. Create a Subscription S00001
- Any Customer
- Any Recurring Plan
- Any Product
3. Create and confirm the invoice for the subscription S00001
4. On the subscription S, click Upsell and confirm the resulting Sale Order S00002
5. On the Sale Order S00002, click Preview
6. **The title of the Sale Order is "Quotation - S000002". In the sale.order list view, the Sale Order is shown as a Sales order, just like the initial Subscription.**
## Cause
The title shown in the preview is defined here:
https://github.com/odoo/enterprise/blob/a4e2c7c7d3aa50c8b57668c9ca73f523a31a5c41/sale_subscription/views/sale_subscription_portal_templates.xml#L187-L195
The initial subscription falls into the `if` condition, which only shows the name of the SO. The upsell sale order is not considered as a subscription, as explained and showed here:
https://github.com/odoo/enterprise/blob/6bfd057b3d17ce8b266aa6dbd88ffef70ca634aa/sale_subscription/models/sale_order.py#L193-L201
The word *"Quotation"* shown in the preview is the `sale_order.type_name`", computed here:
https://github.com/odoo/enterprise/blob/6bfd057b3d17ce8b266aa6dbd88ffef70ca634aa/sale_subscription/models/sale_order.py#L227-L237
The term "Quotation" was chosen in https://github.com/odoo/enterprise/commit/14e5cff65affa888f33d4008d10a32e6992d3a39.
## Fix
Before this commit, an upsell would always be named *"Quotation"*. With this commit, upsells are now added to the `other_orders` variable in `_compute_type_name` and follow the same logic as other SO:
https://github.com/odoo/odoo/blob/a3bf9264ca25ec11b0c9742e142d2404cac6d261/addons/sale/models/sale_order.py#L797-L803
<img width="1316" height="308" alt="5479900_2" src="https://github.com/user-attachments/assets/7cfeb578-2870-43a6-a48b-ba0898718641" />
## Alternative
An alternative to this fix would be to update the condition used to display the name of the subscription in the preview (cf. first code snippet). This would probably result in removing the `sale_order.is_subscription` from the condition, as it is the part of the condition that upsell SOs do not meet.
opw-5489970
Forward-Port-Of: odoo/enterprise#109268
Forward-Port-Of: odoo/enterprise#106767Features or functions removed from Odoo
This update removes a previously used field related to post-change contract creation within the l10n_be_hr_payroll module. This simplification streamlines data management and reduces potential complexity for payroll calculations. The change improves data consistency and reduces the risk of errors.
Original PR description
- Drop the “previous_contract_creation” field from the model, including its database column and all related references. task-5367812
Code cleanup and technical improvements
This update reorganizes how Odoo handles incoming requests, moving serving logic to a dedicated module. This change simplifies the system and makes it more efficient, ensuring requests are processed effectively. It’s an internal technical update that improves the underlying infrastructure.
Original PR description
Now that the http module has been split, it makes sense to move the serving logic to the `router.py` module. These functions do not need to be exposed from a `Request` instance. Task-5926433 Forward-Port-Of: odoo/enterprise#107416