Daily updates from Odoo
Thursday, November 6, 2025
22 changes
1 change
Enhancements to existing features
Odoo now uses a shared flow for settling customer accounts in point of sale test tours. This makes the tests more consistent and helps prevent cases where customer selection could be lost when dialogs are closed or reopened during the process.
Original PR description
In this commit: --------------- - We have introduced a common function for settlement of customer accounts and replaced it in existing tours. task: 5028009 related PR: [95156](https://github.com/odoo/enterprise/pull/95156) Forward-Port-Of: odoo/odoo#227971
2 changes
Enhancements to existing features
The Live Chat report now groups days of the week using the first day configured in each user’s language settings. This makes report views more consistent with local expectations and avoids confusing weekly breakdowns.
Original PR description
**Current behavior before PR**: The "Day of Week" group by in the Live Chat report always treats Sunday as the start of the week, ignoring the "First Day of Week" configured in the user's language settings. **Desired behavior after PR is merged**: "Day of Week" group by now correctly takes into account the user's configured "First Day of Week", as set in their language settings. **task**-[4808640](https://www.odoo.com/odoo/project.task/4808640) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
VoIP now uses country information from the standard country records instead of relying on hard-coded flag rules. This makes country names and flags more consistent for regions where the previous approach showed incorrect or inconsistent results.
Original PR description
Previously, we hard-coded the URL according to the country code to display a country flag. However, this is not the case for all countries. Countries like Bonaire, Sint Eustatius, and Saba use the flag of the Netherlands. Additionally, Bonaire, Sint Eustatius, and Saba are shown as Caribbean Netherlands, which is inconsistent with the data from our res.country model. This commit changes it to use the data from res.country. Task-5207454
8 changes
Enhancements to existing features
Users can now manually choose the period covered by a Mexican global invoice instead of relying on automatic selection. This helps businesses invoice after month-end while still assigning the invoice to the correct reporting period.
Original PR description
Users need a way to select the period for which they're invoicing. Currently, the period is automatically selected, but it happends that users invoice the following month and then have no way of setting the period to the current month. opw-4732490
POS category synchronization with UrbanPiper now includes each category’s parent category, helping menus keep the intended structure on the Atlas platform. This improves consistency between Odoo and UrbanPiper while respecting UrbanPiper’s one-level sub-category limit.
Original PR description
In this commit: --- - The parent category of a POS category is now included during synchronization with the Atlas platform. - Added `parent_ref_id` in the category payload to maintain hierarchy. Note: The UrbanPiper platform only supports a single level of sub-categories. task-5169337 Forward-Port-Of: odoo/enterprise#98839 Forward-Port-Of: odoo/enterprise#97213
This change updates part of Web Studio’s field property editor, specifically the area used to configure type-specific and computed field settings. Because the pull request is still marked as work in progress and has limited detail, the business impact appears minor and focused on improving the Studio editing experience.
Chilean POS pre-tickets now show a suggested 10% tip when early receipt printing is enabled, helping restaurants comply with local tipping rules before payment. The pre-ticket also avoids showing fiscal data that is not required or reliable at that stage.
Original PR description
**PURPOSE** - Comply with Chilean [law](https://blog.nubox.com/contadores/ley-de-propinas-en-chile) requiring restaurants to print a 'suggested tip' on the pre-ticket (before payment). - Ensure the LATAM tip flow behaves correctly in POS. - Prevent fiscal data from being printed in the pre-ticket since it’s not required and cannot be generated accurately at that stage. **SPECIFICATION** - When Early Receipt Printing is enabled: - Exclude fiscal elements from pre-ticket in l10n_cl_edi_pos. - Add a 'Suggested Tip' line showing 10% of the order subtotal (before taxes) task-5060967 Forward-Port-Of: odoo/enterprise#94185
Users can now define custom notification subtypes based on tracked field changes, selected values, and business conditions. This gives teams more control over which notifications are sent and helps route relevant updates to the right people.
Original PR description
Before this commit, the user had no choice on the notification types available. Now, it is possible to create a custom notification subtype. Those subtypes are mainly defined by 3 characteristics…
Before this commit, the user had no choice on the notification types available. Now, it is possible to create a custom notification subtype. Those subtypes are mainly defined by 3 characteristics that should be respected to create the notification: - The tracked field: a field change (with `tracking=True`) has been detected. - The value update: the notification is created only if the value of the tracked field is the one of this field (or not set) - The domain: the end state after the change should match the given domain. The `tracked_field` and `value_update` are applied at the source of the change since they are static. The `domain` is applied when checking the recipients of the notification message and is filtering to ensure that the domain is respected by user. The solution creates new messages (if matching the 3 conditions) after the initial notification or message log of tracked fields, with the initial notification being their parent. The main reason being that we want to keep at most one subtype by message. task-5147099
Financial reporting queries were updated so currency conversion data can be added more consistently across reports. This is mainly an internal improvement that makes report generation logic cleaner and easier to maintain, with no expected change to day-to-day user workflows.
Original PR description
This is a syntaxic change. The first change is to allow the currency table to be joined on a `Query` object. This was not possible because `_currency_table_aml_join` returned raw sql. This is a…
This is a syntaxic change.
The first change is to allow the currency table to be joined on a
`Query` object. This was not possible because
`_currency_table_aml_join` returned raw sql.
This is a syntax improvement, as it then allows to fully exploit
the `Query` class methods, notably `select`, which generates the SQL
directly from the object. Without having to write
`SQL("SELECT %s FROM %s WHERE %s GROUP BY %s", ...)`.
In order to do this change, `_get_monocurrency_currency_table_sql` had
to be modified, as the sql returned by this method could not be
understood by the `Query` object. Not possible to join a table that is
created on the fly. That is because it expects an alias to be an
identifier, and not something of the form
`account_currency_table(company_id, ...)`.
Because of this change, it is possible to do a second syntax
improvement, which is to directly join the currency table on the `Query`
object created in `_get_report_query`. This is done by setting the new
kwarg `join_currency_table` to `True`.
Community PR: https://github.com/odoo/odoo/pull/227398Bank statement lines now clearly warn users when analytic distribution is required by a mandatory plan. This helps accounting teams complete reconciliation correctly and avoid missing required analytic information.
Original PR description
When setting the account on a bank statement line, analytic distribution might be required due to a mandatory plan. Before this commit, the user had no idea if the analytic is required or not. After this commit, lines that required analytic distribution will have a warning directing the user to set it. task-5055351
The payroll interface now uses the clearer label "Validate" instead of "Create Draft Entry" on related payslip and pay run actions. This makes the next step in payroll processing easier for users to understand, including in the Mexico payroll accounting flow.
Original PR description
Task-ID: 5226530
9 changes
Enhancements to existing features
The POS pre-ticket now shows a suggested tip for Chilean restaurants when early receipt printing is enabled. It also removes fiscal details from this pre-payment receipt so the printed information matches what is available at that stage and stays compliant with local requirements.
Original PR description
**PURPOSE** - Comply with Chilean [law](https://blog.nubox.com/contadores/ley-de-propinas-en-chile) requiring restaurants to print a 'suggested tip' on the pre-ticket (before payment). - Ensure the LATAM tip flow behaves correctly in POS. - Prevent fiscal data from being printed in the pre-ticket since it’s not required and cannot be generated accurately at that stage. **SPECIFICATION** - When Early Receipt Printing is enabled: - Exclude fiscal elements from pre-ticket in l10n_cl_edi_pos. - Add a 'Suggested Tip' line showing 10% of the order subtotal (before taxes) task-5060967
This pull request mainly updates accounting and localization content, including new tax report codes for Finland and translation refreshes. It also fixes several smaller issues in accounting-related flows, point of sale, online payments, email templates, and website donations to improve reliability and avoid errors in everyday use.
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
This update introduces a shared way to handle customer account settlement in Point of Sale test tours. It also makes the process more reliable when dialogs are closed or switched, helping avoid cases where the wrong customer could be set during the flow.
Original PR description
In this commit: --------------- - We have introduced a common function for settlement of customer accounts and replaced it in existing tours. task: 5028009 related PR: [95156](https://github.com/odoo/enterprise/pull/95156) Forward-Port-Of: odoo/odoo#227971
This update improves the way return-related reporting items are displayed and checked, making the workflow clearer for users. It also updates several country-specific reporting modules so return handling stays consistent across localized reports.
Original PR description
task-5155703
The employee form view was adjusted so the details panel uses the available space more intelligently across screen sizes. On mobile, the panel now stretches to full width, while on larger screens it leaves room for the employee avatar, making the page easier to read and use.
Original PR description
Replace the generic col class with explicit col-12 col-sm-6 col-md-7 col-lg-8 so the right-hand panel spans full width on mobile but leaves room for the avatar on bigger screens task-5238383
This update improves how embedded content keeps its selection state when users insert or edit components inside the editor. It helps make editing embedded elements more reliable and smooth, especially in Knowledge pages that use these components.
Original PR description
### generalize the embeddedEditable selection restoration `env.editorShared` now always contains `selection` shared functions, this commit removes obsolete assignations in embedded components. task-5189453
Some website and HTML builder notifications now use shorter text so they fit on one line more often. This makes alerts easier to read and reduces visual clutter in the interface.
Original PR description
Reduce the text size of certain notifications so that they are displayed on a single line. task-5169680
This update makes an existing error message more explicit when Odoo blocks files coming from an uninstalled module. It helps support teams and users identify the cause faster without needing to inspect the source code.
Original PR description
While working on a support ticket, I was faced with this exception handling: https://github.com/odoo/odoo/blob/49061347c181b1a451435bc363bb9508db8b6fab/odoo/addons/base/models/ir_asset.py#L344-L346 It might be nitpicky, but given the if condition, the exception error text could be more explicit about the fact that it's raised because the files in question being from an uninstalled addon/module. This might fast track troubleshooting without having to dive into the source code to understand why the error is being raised. There is always the possibility that I might be missing some context or other scenarios where this error could be raised. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#179889
This update makes embedded content inside the editor work more reliably, especially for components with editable areas. It also adds a way for actions to run right after an embedded component finishes loading, which helps keep inserted content behaving correctly.
Original PR description
### Automatically preserve selection in editable descendants Prior to this work, to make use of the automatic selection restoration feature hidden in `useEditableDescendants` hook for editable…
### Automatically preserve selection in editable descendants Prior to this work, to make use of the automatic selection restoration feature hidden in `useEditableDescendants` hook for editable descendants of embedded components, one had to define a new env property: `editorShared` and populate it with the selection plugin shared functions. This process was pretty obscure and is always the same, therefore it makes a lot more sense to automatically populate the `env` with the selection shared functions. This work refines the concept of `env.editorShared`: it is now always present in the `env` of embedded components that are inside an editor, and can be populated using the `mount_component_handlers` resource. The idea is that a plugin can assign some of its dependencies in that shared Object for its related embedded components. Embedded components using editable descendants will now always have the `selection` plugin shared functions in `env.editorShared.selection`. ### Introduce renderBlueprintToElement Prior to this work, it was pretty difficult to execute an operation in a Plugin related to an embedded Component after inserting the blueprint, because the Plugin has no way of knowing when the embedded component finishes its async mount operation. This work introduces a new shared function `renderBlueprintToElement`, which allows one to define a callback (associated with the rendered blueprint) which will be executed after the first mount of its related embedded component when it was just inserted in the DOM. That function will not be executed if the blueprint is removed from the DOM before the first mount nor if the component is mounted again afterwards. task-5189453
2 changes
Enhancements to existing features
Product names and descriptions sent for Indian e-invoicing and e-waybill generation are now automatically shortened to meet required character limits. This helps prevent rejected documents and keeps invoicing workflows compliant without manual cleanup.
Original PR description
Product descriptions in invoice lines must comply with character limits: - E-invoicing: maximum 300 characters - E-waybill: maximum 100 characters for both product names and descriptions Descriptions exceeding these limits are automatically truncated in the generated JSON. Task [link](https://www.odoo.com/odoo/project.task/5061450) task-5061450
The standard delivery date field on Saudi accounting entries is now labeled “Supply Date” instead of “Delivery Date.” A help text was also added to explain how this date is used for ZATCA VAT liability recognition, making the form easier to understand for users.
Original PR description
Renamed the standard delivery_date field label to "Supply Date" on Saudi account move entries. In addition Added help text explaining its role in ZATCA VAT due liability recognition. task-4922130 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr