Daily updates from Odoo
Tuesday, November 18, 2025
40 changes
2 changes
Enhancements to existing features
This update improves internal documentation for the website and HTML editor plugin system, including shared methods, services, and resource registries. It helps developers work faster with better code completion and clearer integration points, which should reduce implementation mistakes and maintenance effort.
Original PR description
Backport of https://github.com/odoo/odoo/pull/234203
SendCloud can now determine the sender warehouse name through customizable logic instead of relying on a fixed name in Odoo. This makes it easier to match the right sender address when the naming rules are more complex.
Original PR description
As choosing the proper sender address in SendCloud can be more complex than matching a name to a fixed name in Odoo we open up the freedom to inherit the retrieval of the warehouse name. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#97595
2 changes
Enhancements to existing features
The IoT Box technical information view now turns the displayed commit hash into a clickable link to the matching GitHub commit. This makes it faster to verify the exact software version running on the device and simplifies troubleshooting.
Original PR description
To ease checking the HEAD commit on the IoT Box, we now compute the github url to the commit, and redirect to it clicking on the hash in the technical information tab. Forward-Port-Of: odoo/enterprise#99607 Forward-Port-Of: odoo/enterprise#99422
SendCloud deliveries can now determine the warehouse sender name more flexibly instead of relying on a single fixed name in Odoo. This makes it easier to match the correct sender address when setups are more complex, reducing the risk of shipping labels using the wrong warehouse identity.
Original PR description
As choosing the proper sender address in SendCloud can be more complex than matching a name to a fixed name in Odoo we open up the freedom to inherit the retrieval of the warehouse name. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#97595
2 changes
Enhancements to existing features
This update brings back the ability to mark specific invoice lines as “No Follow-Up,” so they no longer trigger reminder workflows. It also improves follow-up reports and customer statements so excluded items are handled correctly in screens, exports, and reminder emails, reducing unnecessary or incorrect dunning messages.
Original PR description
During the rework of the follow-up report, we removed the "No Follow-Up" field from journal items, making it impossible to exclude individual journal items from triggering a follow-up. In this commit…
During the rework of the follow-up report, we removed the "No Follow-Up" field from journal items, making it impossible to exclude individual journal items from triggering a follow-up. In this commit we do the following: - Re-introduce a field for that, since it is a common requirement to be able to exclude individual items from the follow-up reports. The field is stored on the journal item, but can also be toggled from the journal entry. In case of multiple installments on the invoice, toggling the field on one installment will toggle it for all installments. - Adapt the Follow-Up Report and Customer Statement variants of the Partner Ledger to add a toggle for the "No Follow-Up" field on each report line, that toggles the field on the corresponding journal item(s). - Prevent the follow-up status on the partner to change when all of the overdue journal items are marked as "No Follow-Up". - Make sure users can toggle the "No Follow-Up" setting on the invoice level when opening the "Overdue Invoices" view from the partner's "Accounting" tab. - Make sure all receivable/payable lines without a due date (either from a manual miscellaneous entry or a PoS entry) are put under the "Due" section in the Follow-Up Report instead of the "Overdue" section. Since there is no due date, they can't be overdue. - Make sure the PDF and XLSX exports of the Follow-Up Report don't include the "No Follow-Up" lines, and the customer follow up email only includes the amount of the other lines. Backport of https://github.com/odoo/enterprise/commit/74b9d2ef17e4f9a217db8432d886de2eca4baef9 and https://github.com/odoo/odoo/commit/2789a0fbfa358c5c164e44380c2a4a10e5679615 Task: 5138378 Upgrade PR → https://github.com/odoo/upgrade/pull/8864 Forward-Port-Of: odoo/enterprise#96627
This change makes it easier to adapt how Odoo identifies the warehouse name when sending shipments through SendCloud. It helps businesses use the correct sender address when their warehouse naming does not match a simple fixed rule, reducing manual adjustments and integration issues.
Original PR description
As choosing the proper sender address in SendCloud can be more complex than matching a name to a fixed name in Odoo we open up the freedom to inherit the retrieval of the warehouse name. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#97595
22 changes
Enhancements to existing features
The Jordan payroll module was tidied up by removing unnecessary fields and making labels and tooltips clearer. This makes payroll setup and employee information screens easier to understand and reduces confusion for users.
Original PR description
In this commit, we made some general cleanup in the jordan payroll module, by removing uncessary fields, and improving naming of some existing fields in the UI + tooltips. task: 5176975
Payroll users can now set a priority order for salary adjustments, such as deductions or attachments. This helps ensure the most important adjustments are paid first when the available payroll amount cannot cover them all.
Original PR description
add priority to salary adjustments to but an order of which one should be paid first if the total amount paid does not cover all Task: 5114092
The yearly salary report by employee in Indian payroll has been simplified to make it easier to read and use. This helps HR and payroll teams review annual employee salary information more efficiently.
Original PR description
Simplified yearly salary report by employee format. task-5126551
The Gantt view’s date picker no longer uses an old display adjustment that was only needed for mobile fullscreen popovers. Since the picker now opens in a bottom sheet, this simplifies the experience without changing user workflows.
Original PR description
This was only used on mobile to display the date(time) picker in a fullscreen popover, to ensure that the picker had enough space to be fully displayed. The picker is now opened in a bottom sheet, so we can safely remove this. task-5131135
Point of Sale users in Belgium now see clearer error messages when the fiscal data module is disconnected or when required social security information is missing. The messages explain what action to take, helping staff resolve payment validation issues faster and reduce checkout disruption.
Original PR description
We now display an error when the FDM is disconnected, or when the user needs to fill in the social security number. We also advise what to do in such cases. Forward-Port-Of: odoo/enterprise#99546 Forward-Port-Of: odoo/enterprise#99285
Payroll users in Mexico can now generate a CFDI document for an entire pay run once it is ready, instead of handling payslips one by one. This streamlines payroll processing and helps teams complete required electronic payroll documentation more efficiently.
Original PR description
This adds a button to generate a CFDI for the whole payrun when ready. Task: 5224206 Forward-Port-Of: odoo/enterprise#98797
This update simplifies how the AI feature manages chat windows by removing an outdated internal closing mechanism. It helps keep the messaging experience more consistent and easier to maintain, with minimal visible impact for users.
Original PR description
PR community: https://github.com/odoo/odoo/pull/234289
The payroll screens now hide salary rules that are already assigned when users add inputs for employees or payslips. This reduces duplicate selections and makes payroll setup faster and less error-prone.
Original PR description
Previously the list shown when the "Add Inputs" button was clicked on an employee's payroll tab in their form view, it would show all the available salary rules that is available to the employee's salary structure even if they were already assigned to that structure. This commit hides the already existing rules from the list. The same concept applies to payslips. Task-5138584
UAE employee cost calculations now include housing, transportation, other allowances, and relevant employer contributions. This gives businesses a clearer view of the true total cost of employing staff in the UAE.
Original PR description
Before this commit: - The employer costs section (Yearly and Monthly cost) not considered allowances. - This led to an inaccurate calculation of the actual employer cost. After this commit: - Added l10n_ae_hr_contract_salary benefits so Housing, Transportation, and Other allowances are included in employer costs. - This provides a more accurate reflection of the employer's total cost for an employee. Task-5065776
The UrbanPiper point-of-sale enhancements have been merged into the main UrbanPiper POS module. This simplifies maintenance and keeps related restaurant ordering, store timing, and preparation display capabilities together in one place.
Original PR description
In this commit: === - Merged the `pos_urban_piper_enhancements` module into the `pos_urban_piper` module to consolidate features and ensure streamlined functionality. Related: https://github.com/odoo/upgrade/pull/7042
Payroll users can now open an email composer directly from a payslip to send or resend it by email. This makes the process more consistent with other Odoo actions and reduces manual steps when sharing payslips with employees.
The default VOIP call graph now organizes calls by the week they were created instead of by user. This makes the report faster and easier to read when there are many users, while showing the time-based view users are most likely to need.
Original PR description
By default, the graph view of voip.call should be grouped by week of create_date instead of by user. When it is grouped by user we risk to have something that is too heavy, whereas it is never too heavy when it is by week even with many users. And it is what the user would be the most likely to want to see. We are choosing to use create_date instead of start_date because there is no risk that create_date is empty. task-5266035
Payroll users can now start a group salary adjustment from a wizard, which automatically creates a separate adjustment for each selected employee. This reduces confusion and prevents partially completed shared adjustment records by ensuring every salary adjustment belongs to one employee.
Original PR description
Purpose: Creating Salary Adjustment for multiple employees is weird, can lead to half-finished lines. It would be more simple to adopt same flow as Time Off Multi-Request, a wizard that will create multiple 1-1 Salary Adjustment. Current behavior: - added button `New group Sal. Adjustment` to open the wizard for creating multiple salary adjustments. - trasformed the field `employee_ids` on `hr.salary.attachment` into many2one `employee_id` to have each adjustment linked to only one employee. - added `test_salary_adjustment_multi_wizard` to test the multi adjustment generation - removed test `test_action_split_preserves_all_values` as the split logic is removed because there will be always only one employee for each attachment task-id: 5173000
The VoIP call field previously labeled "Responsible" is now labeled "User". This makes the wording clearer and more consistent for people reviewing or managing VoIP call records.
Original PR description
Task-5266072
The VoIP keypad buttons have been refined to make them easier to use, especially on mobile devices. The “Show more” layout is now more consistent across VoIP views, creating a smoother and more predictable calling experience.
Original PR description
This commit refines the keypad button design to improve usability on mobile devices. It also harmonizes the layout of the "Show more" component across allviews. task-5172842  
The legacy QUnit test assets were reduced to only what is still needed for remaining older tests. This cuts bundle size substantially, making test assets faster to generate and load without changing business features.
Original PR description
As the QUnit test suite is now legacy and trimmed down to basically only test PublicWidget and alike, the asset bundle could be also dramatically reduced. This commit cleans it up to only let the requirements for the last QUnit tests to properly run. Note: in term of bundles sizes, it goes from 26MB to 1.5MB (faster to load but more so, faster to generate).
Turkish payroll now supports advance salary payments for employees going on regular or sick leave. This helps companies follow common local payroll practices and improves payroll accuracy for leave-related payments.
Original PR description
As companies in Turkey, should pay their employees an advanced salary when employees go on leave. Also, it is also a common practice that companies pay the employees an advanced salary when they go on sick leave. Task: 4910992
Website pages now automatically show helpful tooltip messages wherever they are configured. This reduces custom setup work and makes it easier to provide guidance to visitors consistently across online sales and rental pages.
Original PR description
* : website_sale_renting. Purpose: ====== This commit introduces default support for Bootstrap tooltips across all website pages. Before this commit: ======= Tooltips had to be manually initialized or handled case by case in JavaScript for each snippet/page with a specific Interaction. After this commit: ======= Any HTML node with the attribute `data-bs-toggle="tooltip"` automatically displays a Bootstrap tooltip without requiring custom initialization code. Task-5249371
Saudi payroll now calculates end-of-service benefits using actual service duration and legal year-based rules, improving accuracy for resignations, contract endings, and retirement. Payslip provisions also better reflect each employee's employment duration, with clearer labels and added validation tests.
Original PR description
- adjusted the calculation of end of service benefit to use actual number of days and changed the calculations to use total years instead of total days to be compatible with how it's stated by the law - changed the case of retirement to be handled the same as the case of contract ending and not resignation - changed the way eos provision is calculated on the payslip to account for the duration of employment of the employee - added test for eos benefit calculation which checks the cases of resignation and end of contract - changed the string and tooltip of `l10n_sa_number_of_days` to be more descriptive of what it does task-id: 4766060 Forward-Port-Of: odoo/enterprise#96404
Confirmation dialogs now use specific action words instead of generic labels like Ok or Cancel. This makes important decisions easier to understand and helps users avoid mistakes across several business workflows.
Original PR description
Improve the clarity of confirmation dialogs by replacing generic "Ok/Cancel" labels with descriptive, action-oriented verbs. This helps users understand the impact of their decisions and reduces ambiguity in critical actions. Task-5106240
When the Appraisals module is installed, users can now see the Details page where relevant job information is displayed. This makes appraisal-related job setup clearer and easier to access without changing broader HR workflows.
Original PR description
- Display the Details page if the hr_appraisal module is installed. task-5215960
The VoIP softphone now collapses automatically when users open the call history. This makes it easier to review past calls without the softphone panel taking up unnecessary screen space.
Original PR description
Task-5273218
7 changes
Enhancements to existing features
This change adds a debug-only action to retry payment post-processing directly from the transaction screen. It helps teams quickly see why a payment was not fully completed, reducing the risk of missed subscription updates or repeated payment attempts.
Original PR description
Before this commit: If there was any transaction that was not post-processed, we couldn’t see what was wrong. After this commit: Now we have button in debug mode only for post-processing so we can see error on UI and find exact cause of issue in logger. Reason: If a payment is not post-processed, it can cause major issues. For example, a subscription may not detect that the payment was completed, so the next invoice date is not updated. As a result, the system may attempt to charge the customer again the next day using the token, even though the payment was already completed. This repeats until the post-processing step is successfully executed or someone manually creates the invoice. To fix this, we need to know what the problem is without having to dig through large logs (which regular users, especially on SaaS, often don’t have access to). task-4936432
Users can now drag and drop an attachment directly onto a new expense form without being blocked by missing required fields. The duplicate attachment link in the expense list view was also removed, making the interface less confusing.
Original PR description
[IMP] hr_expense: enable attachment drop on expense form view Steps to reproduce the use case that is improved: - create a new expense (without writing anything) - drag and drop an attachment -> Some required field prevent this behavior Solution: Pre-fill values that are required when dropping an attachment. ---------------------------------------------------------------------------------------------- [FIX] hr_expense: remove duplicate attachment link remove an unnecessary link to the attachments of expenses in the list view. task-4684825 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The test cases for Philippine tax report generation were updated to match the latest description changes. This helps keep the reporting feature reliable and ensures future updates do not break expected report outputs.
Original PR description
Related PR: https://github.com/odoo/odoo/pull/235448 TaskID-5248240
This update improves the internal documentation of the website and HTML builder plugin system, including shared methods and reusable resources. It helps developers work faster and with fewer integration mistakes by making available features easier to discover in code editors.
Original PR description
Backport of https://github.com/odoo/odoo/pull/234203
This update adds missing tax entries for the Philippine localization and cleans up tax descriptions by removing unnecessary ATC codes. It helps ensure local tax data is more complete and easier to read in reports and forms.
Original PR description
Spec: Several taxes were missing in the Philippine localization. Existing tax descriptions were filled with unnecessary codes. IMP: Added additional taxes as per the provided specifications. Updated descriptions for existing taxes by excluding ATC code. Related PR: https://github.com/odoo/enterprise/pull/99354 TaskID-5248240
The Saudi payroll rules for end-of-service benefits were updated to better match legal requirements. The calculation now uses actual days and service duration more accurately, and retirement is treated like contract ending rather than resignation, which helps produce more accurate payouts and provisions on payslips.
Original PR description
- adjusted the calculation of end of service benefit to use actual number of days and changed the calculations to use total years instead of total days to be compatible with how it's stated by the law - changed the case of retirement to be handled the same as the case of contract ending and not resignation - changed the way eos provision is calculated on the payslip to account for the duration of employment of the employee - added test for eos benefit calculation which checks the cases of resignation and end of contract - changed the string and tooltip of `l10n_sa_number_of_days` to be more descriptive of what it does task-id: 4766060
This change makes it easier to determine which warehouse name is sent to SendCloud when preparing shipments. It gives businesses more flexibility to match the correct sender address, especially when the warehouse naming rules are not a simple one-to-one match.
Original PR description
As choosing the proper sender address in SendCloud can be more complex than matching a name to a fixed name in Odoo we open up the freedom to inherit the retrieval of the warehouse name. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#97595
5 changes
Enhancements to existing features
This change updates the Accounting area together with related project documentation and language files. It appears to improve the module setup and user-facing content so the product is easier to maintain and use in different languages.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The mail plugin can now identify the Odoo version it is connecting to. This lets the add-in show a clear message when it is used with an unsupported Odoo version, reducing confusion for users.
Original PR description
Purpose ======= The new addin has been refactored and doesn't work with older Odoo version, and so we add an endpoint to be able to show a message if we don't support that Odoo version. Task-4727609
The Point of Sale sales report now includes a clearer breakdown of payments by payment method. This makes it easier for businesses to review how customers paid and compare payment types in the report.
Original PR description
In this commit: ----------- - Enhances the PoS sales report by adding detailed breakdowns of payments grouped by payment method. task-5184319
Odoo Point of Sale and Self-Ordering now support Chrome’s Local Network Access feature, which allows the browser to reach local devices over HTTP without triggering mixed-content errors. In practice, this makes it easier to connect to Epson printers and the black box, removing the need for certificates in these setups.
Original PR description
*: pos_self_order, pos_epson_printer Feature: https://chromestatus.com/feature/5152728072060928 Since Chrome 142, a new feature called “Local Network Access” has been added, allowing local IPs to be contacted via HTTP without mixed content errors. This means that certificates are no longer required to contact Epson printers or the black box.
This update adds support for triangular taxes in the Finnish tax report so they can be used in the EC Sales List report. It also changes the company registry label from "Company ID" to "Business ID" for Finnish partners and companies, making the wording clearer and more locally appropriate.
Original PR description
The aim of this commit is adding the triangular taxes into the tax report to use it in EC Sales List report. task-5126664 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr