Daily updates from Odoo
Thursday, March 12, 2026
21 changes · master
New functionality added to Odoo
This update introduces a new refund reason (13) specifically for credit notes in the Peruvian localization. This allows businesses to accurately correct pending payments, due dates, and installment schedules when issuing credit notes, ensuring proper accounting and compliance with Peruvian regulations. The change maintains monetary neutrality by updating payment operation information in the exported XML.
Original PR description
In the Peruvian localization, credit notes use a predfined list of refund reasons. This commit adds a new reason 13, used for correction of pending payment amount(s), due date(s), and/or installment(s). When using reason 13, the credit note must remain monetarily neutral, and the correction is expressed via new payment operation information (pending amount + installments schedule) in the exported XML. task-5828119
Enhancements to existing features
This update adjusts the default height settings for appointment snippets. Previously, a 50% height option was offered, which users rarely utilized. The change now defaults to 75% height, providing a more intuitive and visually appealing experience for visitors while ensuring sufficient content is always visible.
Original PR description
Users rarely want to define a 50% height, either they want Auto, or 100% or something that's close enough to show the visitor there's still content below the snippet. We replace all occurrences of 50% height snippets with 3/4 height, except for the cover (e.g. Blog Cover) as I don't find replacing Half Screen Size with 75% Size useful there. task-5921163
This pull request focuses on cleaning and streamlining the tracking code across several Odoo modules. The changes enhance code readability and maintainability, which will contribute to more reliable and efficient tracking of key business processes. This is an internal improvement to ensure long-term stability.
Original PR description
Task-
This update allows sales teams to create pricing rules that require rentals to last a minimum number of hours and/or a minimum quantity. Previously, a pricing rule designed for 5-hour rentals wouldn't work for 1-hour rentals, which is now resolved by increasing the test duration to 10 hours. This improves flexibility and accuracy in setting rental prices.
Original PR description
Enable creation of pricing rules with minimum periods and minimum quantity requirements The test was originally designed to apply a price list valid for 5 hours to a rental lasting only 1 hour, which made it invalid and thus rightfully excluded. Adjusting the rental duration to 10 hours allows the test to work correctly. task-5062426
This update streamlines the process of displaying sign items within Odoo, reducing complexity and improving efficiency. Previously, a redundant process was required to handle different types of sign items, but this change simplifies the data retrieval and presentation. This results in faster and more reliable sign generation.
Original PR description
Before this commit, `getContext` was copy-pasted across three classes because template items had `type_id` as an ORM tuple `[id, name]` while signing items used a plain id, so `SignTemplateIframe` had to reimplement the whole thing instead of just extending it. After this commit, `type_id` gets unwrapped on-the-go alongside `radio_set_id` and `document_id`, and `SignTemplateIframe.getContext` only adds the useful of template-specific fields on top of `super`. task-5972886
Resolved issues and error corrections
This update resolves a technical problem preventing timesheet slots from displaying correctly in the planning module. The fix ensures that the timesheet information is accurately reflected in the slot tree view, improving the usability of the planning feature for sales teams. This was a minor bug fix.
Original PR description
Steps to reproduce: - Install sale_timesheet & planning; - Install planning_field_service_sale_timesheet; Traceback: Element `'<xpath expr="//field[@name='project_id']">'` cannot be located in parent view This commit fixes the inheritance of the planning.slot tree views. Forward-Port-Of: odoo/enterprise#110102
This update resolves a bug where the 'Previous Asset' shortcut in the asset management module was incorrectly directing users to the 'Posted Entries' view. The shortcut has been changed to ALT + SHIFT + P to align with existing navigation shortcuts, ensuring smoother asset browsing.
Original PR description
# How to reproduce - Have atleast two assets - Go to the last asset - Type ALT + P on your keyboard # The problem We enter the Posted Entries view instead of going to the previous asset # Why This PR (https://github.com/odoo/enterprise/pull/67840) added shortcuts to the asset form view, but used ALT + P for the Posted Entries. This shortcut is already used on all form views for the "previous page" button. After consulting with the developer of the original PR, we decided to move the Posted Entries shortcut to ALT + SHIFT + P opw-5948523 Forward-Port-Of: odoo/enterprise#110078 Forward-Port-Of: odoo/enterprise#109022
The 'Today' button in the Gantt view was not functioning correctly when navigating to yesterday. This update fixes a bug where clicking 'Today' didn't return the view to the current date. The fix ensures the Gantt view accurately reflects the user's current day selection.
Original PR description
**Version:** 18.0 **Steps to reproduce:** - Install Attendance modules. - Navigate to yesterday using the arrow button. - Then click on Today button. **Issue:** The view does not return to the current day when Today button is clicked. **Cause:** The condition to check this scenario fails for this case. **Fix:** Updated the condition to include the this scenario. task-5451384 Forward-Port-Of: odoo/enterprise#110053 Forward-Port-Of: odoo/enterprise#103139
This update fixes an issue where payslips weren't being generated accurately for employees with flexible working hours. The system now correctly creates work entries for these employees when a payslip is created, ensuring accurate payroll calculations. This resolves a previous error impacting employee pay processing.
Original PR description
**Version:** - 19.0 **Steps to reproduce:** - Create an employee. - Leave the Working Hours field empty. - Set the contract dates and a wage. - Create a payslip using the smart button. **Issue:** - Worked day lines are empty for flexible employees when the payslip is created from the smart button. **Cause:** - Flexible employees were being skipped because their working hours were empty, which results in work entries not being generated. **Solution:** - Updated the condition to also generate work entries for flexible employees. Task-5431870 Forward-Port-Of: odoo/enterprise#109729 Forward-Port-Of: odoo/enterprise#103101
This update corrects a visual issue in the Helpdesk team settings where email alias fields would overflow due to a design change. The fix adjusts the layout to fit the narrower settings panel, ensuring a clean and usable interface for managing team email aliases. This improves the overall user experience for Helpdesk administrators.
Original PR description
Steps to reproduce: 1. Go to Helpdesk > Configuration > Teams 2. Open any team with Email Alias enabled 3. Observe alias fields overflowing Issue: The alias copy feature introduced by odoo/enterprise#88111 (related to odoo/odoo#215128) changed this row from a simple inline layout to a Bootstrap grid. That grid works correctly in regular form `<group>` sections, where fields have more horizontal space. But in Helpdesk, this row is rendered inside a `<setting>` block, which lives in the narrow two-column settings layout. In that context, the grid's negative side margins make the alias row overflow Fix: Replace the grid layout with a flex row adapted to the settings panel while keeping the newer alias input pattern and copy button. This prevents overflow and keeps the fields balanced. task-6005002
A previous error was preventing the automated update of POS price tags. This fix corrects a misconfiguration in the scheduled task that was causing a system error. The update process is now reliable and ensures accurate price tag synchronization.
Original PR description
Currently, an error occurs when the scheduled action "POS Pricer: Tags Update Synchronization" runs. **Steps to Reproduce:** - Install the `pos_pricer` module. - Go to `Scheduled Actions` and run…
Currently, an error occurs when the scheduled action "POS Pricer: Tags Update Synchronization" runs.
**Steps to Reproduce:**
- Install the `pos_pricer` module.
- Go to `Scheduled Actions` and run `"POS Pricer: Tags Update Synchronization"`.
**Error:**
`
ValueError: TypeError("PricerStore._update_pricer_tags() got an unexpected keyword argument 'update_all'") while evaluating 'model.search(([("pricer_tag_ids", "!=", False)]))._update_pricer_tags(update_all=False)'`
This error occurs because, after this [recent commit], `_update_pricer_tags` was changed to
no longer accept the `update_all` argument and now relies on the `needs_pricer_update` instead.
However, the scheduled action still passes the `update_all` argument [1], which causes the
error when the cron job runs.
This commit removes the unexpected `update_all` argument from the tag update synchronization cron.
[recent commit]: https://github.com/odoo/enterprise/commit/166a8a240d0588f4e908ce09c4639da1216ba3b7
[1]- https://github.com/odoo/enterprise/blob/0ef7643bba5b3fa3d22ab122ef3b65f0d67c8fb7/pos_pricer/data/pricer_ir_cron.xml#L9
sentry-7324339777
Forward-Port-Of: odoo/enterprise#110242This update resolves a problem that prevented users from successfully loading demo data for the 'account_asset' module. The fix corrects an error related to incorrect field definitions during the demo data loading process, ensuring the demo data can now be loaded without causing errors.
Original PR description
This error occurs while loading the demo data for the `account_asset` module. Steps to reproduce: - Install `account_asset` module without demo data - Active debugger > Settings > load Demo data Traceback: `ValueError: Invalid field 'depreciation_model_id' in 'account.asset'` - The error occurs because `depreciation_model_id` is a field of the `account.account` model, but while loading the demo data we are defining it on the `account.asset` model in the `_get_demo_data_asset` [method]. - Another error occurs in the `account.depreciation.model` model because it does not have a field named `name`, the correct field is `display_name`. [method]: https://github.com/odoo/enterprise/blob/9d4424088bfda7e89d454a8bd642715a9281913d/account_asset/demo/account_demo.py#L37-L47 sentry-7321811436 Forward-Port-Of: odoo/enterprise#110066
This update corrects a display issue in WhatsApp signature requests. Previously, the Certificate of Completion showed 'Email Verification' instead of the correct information for WhatsApp participants. This change ensures accurate and consistent reporting for all signature requests, regardless of the channel used.
Original PR description
When a signature request is sent via WhatsApp (`send_channel == 'whatsapp'`), the Certificate of Completion PDF currently still displays "Email Verification" in the participants table and the legal footnote.
This update corrects a minor CSS error that was causing incorrect styling within the timesheet grid component. The fix ensures the grid displays correctly, improving the overall user experience. This was a routine maintenance update.
Original PR description
This commit fixes the generation of the `display` CSS rules.
Before:
```scss
//...
.aw_nca_step_1 .aw_nca_d-block_from_step_1 {
display: "block";
}
//...
.aw_nca_step_1 .aw_nca_d-inline-flex_from_step_1 {
display: "inline-flex";
}
```
After:
```scss
//...
.aw_nca_step_1 .aw_nca_d-block_from_step_1 {
display: block;
}
//...
.aw_nca_step_1 .aw_nca_d-inline-flex_from_step_1 {
display: inline-flex;
}
```
Doc:
> In Sass, elements in lists can be separated by commas (Helvetica, Arial, sans-serif), spaces (10px 15px 0 0), or slashes as long as it’s consistent within the list.
https://sass-lang.com/documentation/values/lists/
Forward-Port-Of: odoo/enterprise#110246This update corrects a technical issue where an unnecessary character was added to the social templates, preventing proper display. The previous commit mistakenly included this character within the HTML code, and this fix removes it, ensuring correct formatting and functionality. This resolves a minor display problem.
Original PR description
in this commit https://github.com/odoo/enterprise/pull/109772/changes/a093f3150b1b0fc92e8555bbab042e83d230bb5e this. was mistakenly added to `>` due to an issue in the script. I have removed it. Script PR: #247965 task: OWL3 prep - add this. to template variables
This update adjusts the financial reporting tests for Mexico to align with the latest accounting standards (CoA). The changes ensure accurate trial balance reports are generated, reflecting the most current Mexican accounting regulations. This improves the reliability of financial data for Mexican businesses using Odoo Enterprise.
Original PR description
Adapted trial balance tests to consider update on MX CoA task-4920083 target: 19.0 -> master Forward-Port-Of: odoo/enterprise#110024 Forward-Port-Of: odoo/enterprise#108200
Code cleanup and technical improvements
This update improves the consistency and maintainability of our Python code across several key modules. A new tool, Ruff, has been implemented to automatically format and lint the code, ensuring a clean and standardized style. This will streamline future development and reduce potential errors.
Original PR description
*: `payment_sepa_direct_debit`, `sale_(stock_)renting`, `sale_(amazon,lazada,shopee)`, `website_sale_renting(_*)` This PR introduces Ruff (lint and format) as the standard for all Python files within the R&D Sales scope (see `*`). The goal is to ensure a clean state for future development, reviews, and debugging by enforcing a code style via pre-commit hooks. This PR applies a one-time bulk format+lint pass to all existing files in our scope. task-5436779 See also: - https://github.com/odoo/odoo/pull/237354 Co-authored-by: Antoine Vandevenne (anv) <anv@odoo.com> Co-authored-by: Valeriya (vchu) <vchu@odoo.com> Co-authored-by: Louis <loti@odoo.com> Co-authored-by: Victor Feyens <vfe@odoo.com> Co-authored-by: Lionel Piraux (lipi) <lipi@odoo.com> Co-authored-by: livaois <liew@odoo.com>
This update is a preparatory step for Odoo's OWL3 upgrade, which requires changes to how template variables reference components. The team has added `.this` to template variables to ensure compatibility with the new OWL3 rendering context. This ensures a smooth transition to the next Odoo version.
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 task: OWL3 prep - add this. to template variables
This update prepares our Odoo system for OWL3 by modifying template variables to correctly target component elements using `.this`. This is a necessary step to ensure compatibility with the upcoming OWL3 rendering engine and avoid potential display 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 targeting the component. Script PR: odoo/odoo#247965 *targets: ["web_gantt", "web_grid", "web_hierarchy"] task: OWL3 prep - add this. to template variables
This update adds `this.` to template variables within several Odoo modules to align with upcoming OWL3 rendering changes. This preparatory step ensures compatibility and avoids potential issues when the new OWL3 rendering context is fully implemented, streamlining the transition.
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 modifies Odoo's templates to align with upcoming OWL3 requirements. Specifically, it adds `.this` to template variables that target component data, ensuring compatibility with the new OWL3 framework. This proactive step avoids potential issues when transitioning to the new OWL3 environment.
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 = ['stock'] task: OWL3 prep - add `this.` to template variables Community PR : https://github.com/odoo/odoo/pull/253047