Daily updates from Odoo
Tuesday, March 10, 2026
38 changes · master
New functionality added to Odoo
This update introduces a new 'Airfare Allowance' field for UAE employees within their salary information. The system now calculates and includes this allowance on payslips based on the number of 'Air Tickets' entered, streamlining payroll processing for UAE-based staff. This enhancement ensures accurate compensation for travel expenses.
Original PR description
*= l10n_ae_hr_payroll_account - Add the 'Airfare Allowance' field in employee under the 'Allowance' section - Update the 'Airfare Allowance' salary input by changing label name to 'Air tickets' and input type to quantity - Now 'Airfare Allowance' will be included in the payslip on based of the number of 'Air Tickets' in the payslip - Update the related test cases. task-4718019
This update adds a currency field to the online account view, allowing users to accurately identify the corresponding bank account based on its currency. This improves clarity and reduces the potential for errors when managing online transactions.
Original PR description
The aim of this commit is to add the currency_id field on the online account view to allow users to identify the right bank account by using the currency. no task id
Enhancements to existing features
This update introduces a new field to track whether an employee is retired. This change is necessary to accurately calculate tax exemptions for employees who remain active while meeting specific criteria. It also prepares the system for future flexi-job functionality.
Original PR description
Retired employees that are still working can qualify for tax exemptions. This commit adds a boolean field to check if the employee is retired. Will be used for tax reporting and when flexi jobs are introduced. Task: 5976320
This update addresses an issue where excessive Many-to-Many tags could create a cluttered user interface. The commit limits the displayed tags, enhancing the visual appeal and usability of forms. A default limit of 8 tags is now enforced, with the option to display all tags (0) for greater flexibility.
Original PR description
Currently we don't have a way to limit the number of m2m tags displayed, which can lead to ugly UI. This commit introduces such a limit, making it editable via studio. As for default values, we use 8 as a default number of m2m tags displayed (which is also the number of records we display in m2m dropdowns). Setting a value of 0 can be used to display all tags regardless of how many they are. Community PR: https://github.com/odoo/odoo/pull/251159 Documentation PR: odoo/documentation#16667 task#5799365
This update streamlines invoice reports for Ecuador by removing redundant information previously displayed in the standard header. The changes also adjust the report formatting to ensure proper spacing and avoid overlapping with required legal headers. This improves the clarity and compliance of the reports.
Original PR description
The standard report header contains info that the legally required headers already contain. We hide the standard headers by using the custom_header mechanism in l10n_latam_invoice_document. This also changes an `<h4>` to an `<h5>` to avoid it overflowing the standard header_spacing of the A4 report.paperformat. task-5949275
Resolved issues and error corrections
This update fixes an issue related to managing private cities within the payroll system. A new module, `hr_address_extended`, has been added to handle this functionality, particularly when the ‘enforce_cities’ setting is enabled. This ensures accurate city data is captured and utilized for payroll calculations.
Original PR description
. Add new module hr_address_extended to handle M2O private_city field if enforce_cities is enabled . Add hr_address_extended to l10n_us_hr_payroll dependencies . Add Corresponding tests task-5877610
This update prevents the payslip validation process from failing if the wkhtmltopdf dependency is not present. The system now automatically generates PDFs via a scheduled task (cron) instead, ensuring payslips can still be processed without requiring the user to install wkhtmltopdf. This improves usability and avoids unnecessary disruptions.
Original PR description
You don't want to block the payslip flow if wkhtmltopdf is not installed. This commit avoids that by redirecting the pdf generation to the cron if not installed. That way, it won't affect the state of the payslip. task-6013936
This update allows users to directly edit the name of a Pay Run within its Kanban view, providing greater flexibility in managing payroll records. Previously, changes were only possible when viewing the Pay Run details. This enhancement simplifies the process of updating Pay Run names and improves user workflow.
Original PR description
This change restores inline editing of the Pay Run name in their (default) kanban view. task-5981049
This update adds a toast notification to the payslip view when a PDF is generated. Previously, users weren't informed about the progress of PDF creation, leading to uncertainty. This change provides clear feedback, ensuring users know the PDF generation process has started and completed successfully.
Original PR description
[IMP] hr_payroll: toast notification during PDF generation In payslip views, there were no toast notifications when we press to generate PDF. It was not clear whether they are generated or not and that's why we implemented this feature. task - 5975715
This update corrects a display issue within the tax return checklist. Previously, the system incorrectly flagged 'bill attachments' as an anomaly even when documents were attached to bills. Now, if all bills have attachments, the system correctly displays 'reviewed' instead of 'anomaly', streamlining the tax return process.
Original PR description
When going through checklist of tax return, anomaly is created for "bill attachments" even when a document is attached to bill. If all bills have attachment, state should not display "anomaly", but "reviewed" instead The reason of the bug is that the domain is looking for attachment to account.move which ignore the documents in the chatter, while the bill is actually attached in the chatter. task: 5408611
This update corrects a technical issue related to how the system accessed barcode target records, preventing performance problems. The change simplifies the process and avoids potential problems with future updates, ensuring consistent and reliable barcode scanning functionality. This resolves a bug that could impact user experience.
This update resolves a bug that caused the AI chat composer to crash when using the HTML editor. The fix ensures focus handling works correctly for both the text and HTML composer modes, preventing errors and improving the user experience.
Original PR description
*=ai_app In AI chat, focusing the composer used to call ev.target.select(). That works for the text composer (textarea), but not for the HTML composer (contenteditable), where select() doesn’t exist and causes a TypeError. This update makes focus handling respect the active composer mode: - text mode keeps the existing select behavior - html mode uses the editor focus path instead task-5981018 Forward-Port-Of: odoo/enterprise#109865 Forward-Port-Of: odoo/enterprise#109163
This update removes unnecessary customizations related to Swiss payroll calculations within the payrun process. The core logic has been corrected, making these overrides no longer required. This simplifies the system and ensures accurate payroll processing.
Original PR description
Not necessary anymore, standard logic has been fixed Forward-Port-Of: odoo/enterprise#108121
This update fixes a bug preventing warnings on the EC Sales List when customers don't meet specific criteria (e.g., location within Europe). Previously, the report didn't display these warnings for customers with 'Intra-Community' fiscal positions or those located outside of Europe. This ensures accurate reporting and compliance.
Original PR description
The warnings partner_same_country and partner_no_ec_country on the EC Sales List are never showed. To Reproduce (for partner_same_country warning): - Create a company in Belgium - Create a customer in Belgium with "Intra-Community" as a Fiscal Position - Create an invoice with this customer - Go to the EC Sales List - The customer doesn't appear in it, so the warning is not present. For the partner_no_ec_country, do the same but with the country of the customer being one outside of Europe. Forward-Port-Of: odoo/enterprise#109583 Forward-Port-Of: odoo/enterprise#107139
This update corrects a display issue where 'Confirm' buttons were visible even when payslips had been generated. The system now correctly hides these buttons when there are existing payslips, ensuring a cleaner user interface. This improves clarity and prevents confusion for users.
Original PR description
The 'empty_payslips' field is an Integer, but the view was treating it as a pure Boolean. This commit: - Updates 'Confirm' buttons to be invisible when payslips exist (> 0). Task: 5916154 Forward-Port-Of: odoo/enterprise#109926 Forward-Port-Of: odoo/enterprise#106957
This update corrects a visual imbalance in the layout of Knowledge articles within the Odoo system. The change ensures consistent horizontal spacing, resulting in a more professional and balanced appearance for all articles. This improves the overall user experience and presentation of our knowledge base.
Original PR description
The Knowledge article layout shows a visual imbalance due to asymmetric horizontal spacing in the editor content. This change makes the horizontal spacing consistent on both sides, improving the overall visual balance while maintaining proper spacing and layout consistency. Task-5222643 Forward-Port-Of: odoo/enterprise#108437
This update fixes a potential issue where changes to knowledge articles (sharing, favorites, editing) weren't reliably applied. The update ensures the correct article is loaded before any modifications are made, enhancing the user experience and data consistency. This improves the reliability of the knowledge base.
Original PR description
With this commit, We ensure we're in the correct article before making any changes (share, add to favorites, edit) using `waitUntil`. We've added a `checkArticle` function to ensure the article is in the correct place in the menu. runbot-error-id~234645
This update optimizes how Odoo calculates planning fields for sales orders. Previously, all sales order lines were processed, even those not directly involved in planning. Now, calculations are focused only on sales order lines linked to products with planning enabled or those included in a planning slot, improving efficiency and accuracy.
Original PR description
Before this commit, the compute of planning_hours_to_plan and planning_hours_planned fields computes for all SOLs even the ones which are not related to planning. This commit makes sure the both computes calcules the planning field for the SOLs which are related to planning, that is: - SOL is linked to a product with planning_enabled set to True - or at least one planning slot has the SOL set. Issue detected during a fix of migration script of task-5258989 Forward-Port-Of: odoo/enterprise#109715
This update fixes a potential issue where changes to knowledge articles (sharing, favorites, editing) weren't reliably applied. The update ensures the correct article is loaded before any modifications are made, enhancing the user experience and data consistency. This improves the reliability of the knowledge base.
Original PR description
With this commit, We ensure we're in the correct article before making any changes (share, add to favorites, edit) using `waitUntil`. We've added a `checkArticle` function to ensure the article is in the correct place in the menu. runbot-error-id~234645
This update resolves a technical problem where Odoo was crashing when displaying images due to incorrect handling of binary data in templates. The fix ensures images are properly encoded as base64 strings before being used, preventing errors and improving image display reliability.
Original PR description
Templates embedding binary images using data URIs expected base64 strings and crash when receiving raw binary values (UnicodeDecodeError) during QWeb rendering. Encode the binary values explicitly using to_base64() before embedding them in the image source. See also: - https://github.com/odoo/odoo/pull/252710
This update fixes an issue where payrun status bubbles appeared as solid black in dark mode due to a hardcoded color setting. The change now uses a dynamic background color, ensuring the bubbles always match the current theme and display correctly regardless of the user's chosen mode.
Original PR description
The status bubbles in the payrun view were using the literal 'bg-white' class. In dark mode, it automatically inverts 'bg-white' to solid black. This commit changes the hardcoded 'bg-white' to the semantic 'bg-view' class. This ensures the bubble background always matches the current theme's view background variable. Task: 5959361
This update fixes an issue where icons were incorrectly displayed on small screens within the VoIP form. The change ensures that icons are only shown on desktop views, aligning with the overall form layout and improving the user experience. This ensures consistent visual presentation across different device sizes.
Original PR description
We only want these icons on desktop, as the content is not aligned with the rest of the form view. On small screens, each field is displayed one below the other, regardless of whether it is inside a header_group or not. So icons have been replaced by the label (which doesn't appear on desktop). task-6010516
Code cleanup and technical improvements
This change removes unnecessary redirects from onboarding tours within the HR Contract Salary Payroll module. The previous setup caused wasted time and potential confusion for new users. This refactoring streamlines the onboarding process and improves user efficiency.
Original PR description
The URL key in a tour's JavaScript file implies a redirect to that URL once the browser opens. If this URL is the same as the one used in start_tour() (Python), then it serves no purpose. It's even detrimental because it implies a redirect (and therefore a waste of time). The URL key in the JS file is (for now) only used for onboarding tours. This key will be defined later in the .xml file for onboarding tours. That's why we're removing the URL keys from the registries here.
This update modifies Odoo's templates to align with upcoming OWL3 requirements. Specifically, it adds `.this` to template variables that reference components, ensuring compatibility with the new OWL3 rendering context. This proactive step ensures a smooth transition to the new OWL3 standard.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: https://github.com/odoo/odoo/pull/247965 THIS_TARGETS = ["social"] task: OWL3 prep - add this. to template variables
This update modifies Odoo's template variables to align with the upcoming OWL3 system. Specifically, it adds `.this` to target component variables, a necessary change for OWL3's functionality. This ensures seamless integration and avoids potential issues when transitioning to the new system.
Original PR description
In preparation for OWL3, where template variables will need to use .this to target component variables, we add .this to template variables that are targetting the component. Community PR: https://github.com/odoo/odoo/pull/249848 Script PR: https://github.com/odoo/odoo/pull/247965 task: OWL3 prep - add this. to template variables THIS_TARGETS = ["account", "accountant"] I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
This update simplifies how payslip properties are defined, moving from using IDs to using salary rule codes. This ensures payslips update correctly and prevents future issues with mismatched property definitions. An upgrade script automatically updates existing payslips and rules to align with this new standard.
Original PR description
Refactor payslip properties to user salary rule name instead of ID as a key in the json This includes: - Updating the logic to use salary rule code as a key in the input properties json - Adjust payroll structure to use the code as it will fail to update if the property definition does not match the json - Added a validation for newly added salary rules to follow the code naming convention - Upgrade script to update existing codes in salary rules and previous payslips that are labeled as property_input - Upgrade tests accordingly We change the salary rules that are property inputs and their codes don't follow the alphanumeric regex, currently those would be: ``` - EU.LEAVE.DEDUC - P.P.ADJ - DOUBLE.DECEMBER.BASIC - MOBILITY.PAYMENT - SPECIFIC RULES - SIMPLE.DECEMBER - SSCEMP.1 - N.P.BASIC - ATN.SOCIAL.CONTRIB ``` A condition was also added to validate that the codes of newly added rules follow the convention task-5366999
This update simplifies how Odoo handles chat conversations by removing an outdated method of accessing chat channels. This change streamlines the chat experience and aligns with the latest Odoo features. It ensures more efficient and reliable chat functionality.
Original PR description
This commit removes the last remaining access to the `discuss.channel` model through `getOrFetch` from `mail.thread`. PR community: https://github.com/odoo/odoo/pull/243488
This update modifies Odoo's template code to align with upcoming OWL3 requirements. Specifically, it adds `.this` to template variables that reference components, ensuring compatibility with the new OWL3 rendering context. This prepares the system for a smoother transition and avoids potential issues with future template development.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: https://github.com/odoo/odoo/pull/247965 THIS_TARGETS = [sign, sms, snailmail] task: OWL3 prep - add this. to template variables
This update prepares our Odoo Enterprise system for OWL3, a new rendering engine. It adds the necessary `.this` syntax to template variables that reference components, ensuring compatibility with the upcoming changes. This ensures a smooth transition and avoids potential issues with future functionality.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targeting the component. Script PR: odoo/odoo#247965 targets: ["product"] impacts: ["planning_field_service_sale_stock", "sale_subscription"] task: OWL3 prep - add this. to template variables
This update prepares our Odoo Enterprise system for OWL3, a new version of our template engine. We've updated template variables to include `.this`, which is now required to correctly reference component variables. This ensures continued compatibility and functionality with the upcoming OWL3 release.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: odoo/odoo#247965 task: OWL3 prep - add this. to template variables
This update prepares Odoo for OWL3, a new rendering system. It adds the `.this` syntax to template variables, which is now required to correctly reference component elements. This ensures compatibility with the upcoming OWL3 changes and avoids potential issues with future template development.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: odoo/odoo#247965 task: OWL3 prep - add this. to template variables
This update prepares the Web Studio module for the upcoming OWL3 release. It adds the `.this` syntax to template variables, which is now required to correctly target component variables within the rendering context. This ensures the Web Studio functionality continues to work seamlessly with the new OWL3 framework.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: #247965 task: OWL3 prep - add this. to template variables
This update prepares Odoo Enterprise for OWL3 by automatically adding '.this' to template variables that reference components. This change is necessary because OWL3 requires this syntax for correctly targeting component variables within templates, ensuring compatibility with the new rendering engine.
Original PR description
*project_enterprise In preparation for OWL3, where template variables will need to use .this to target component variables, we add .this to template variables that are targetting the component. Script PR: #247965 task: OWL3 prep - add this. to template variables
This update prepares Odoo for the upcoming OWL3 rendering system by automatically adding '.this' to template variables. This is necessary because OWL3 requires this syntax to correctly reference component variables within templates. The changes ensure compatibility with the new system and prevent rendering errors.
Original PR description
*web_studio In preparation for OWL3, where template variables will need to use .this to target component variables, we add .this to template variables that are targetting the component. Script PR: #247965 task: OWL3 prep - add this. to template variables
This update modifies Odoo templates to align with upcoming OWL3 requirements. Specifically, it adds `.this` to template variables that reference component data, ensuring compatibility with the new rendering context. This is a preparatory step for a larger OWL3 migration.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: odoo/odoo#247965 task: OWL3 prep - add this. to template variables
This update prepares our Odoo templates for OWL3, a new rendering engine. It adds the `.this` syntax to template variables that reference components, ensuring compatibility with the updated engine's variable targeting method. This is a necessary step to avoid future rendering issues.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: odoo/odoo#247965 task: OWL3 prep - add this. to template variables
This update prepares Odoo for a future upgrade (OWL3) that requires a specific syntax for referencing components within templates. The team has automatically updated template variables in the 'voip' module to include `.this`, ensuring compatibility with the new OWL3 rendering context. This change is a proactive step to avoid issues during the upcoming upgrade.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Script PR: https://github.com/odoo/odoo/pull/247965 THIS_TARGETS = ["voip"] task: OWL3 prep - add this. to template variables
This update modifies Odoo templates to align with upcoming OWL3 requirements. Specifically, it adds `.this` to template variables that reference components, ensuring compatibility with the new variable targeting method. This is a preparatory step for a larger OWL3 migration.
Original PR description
In preparation for OWL3, where template variables will need to use `.this` to target component variables, we add `.this` to template variables that are targetting the component. Community PR: https://github.com/odoo/odoo/pull/252725 Script PR: odoo/odoo#247965 task: OWL3 prep - add this. to template variables