Tuesday, October 14, 2025
34 changes · saas-18.3
Resolved issues and error corrections
This fix prevents the Accounting dashboard from showing an error when Studio is used to group it by a category with no records, such as online account links when none are connected. Users can now adjust the default dashboard grouping without interruption, even when the selected group is empty.
Original PR description
Currently an error occurs when a user tries to group account dashboard with a group not having any records. **Steps to replicate:** * Install `account` and `web_studio` * Invoicing > studio > Default…
Currently an error occurs when a user tries to group account dashboard with a group not having any records. **Steps to replicate:** * Install `account` and `web_studio` * Invoicing > studio > Default Group by > Account Online Link **Error:** `SyntaxError: syntax error at or near ')' LINE 19: WHERE j.id in () ^` **Root cause:** * The compute function [1] contains an SQL query that assumes journal IDs are always present. When the account dashboard is grouped by a category with no records (e.g., 'Online Account' when none are connected), no journals are returned, resulting in no journal IDs for the SQL query at [2]. * This issue appeared after PR [3], where the compute method is called even when the record isn’t saved, leading to NewId being passed to self and triggering this error. Similar fixes were applied in commit [4]. **Solution:** * Only run the SQL query if journal IDs exist. If none do,assign false to the computed entry fields. This works because [5] creates a fake group, allowing the dashboard to work normally. [1]: https://github.com/odoo/odoo/blob/a9a058aa063a05755ac3c6a78f99af5373d19fbd/addons/account/models/account_journal_dashboard.py#L205 [2]: https://github.com/odoo/odoo/blob/a9a058aa063a05755ac3c6a78f99af5373d19fbd/addons/account/models/account_journal_dashboard.py#L227 [3]: https://github.com/odoo/odoo/pull/195203 [4]: https://github.com/odoo/odoo/commit/7ba64a8c51f2888b301ee6feae140b02ca4b1b95 [5]: https://github.com/odoo/enterprise/blob/110c23ae23a1c37c15e7913bdcb74f2a26a67858/web_studio/static/src/client_action/view_editor/editors/kanban/kanban_editor.js#L51-L64 sentry-6674695712 Forward-Port-Of: odoo/odoo#230919
Users opening a product's forecast view in a newly created company without a warehouse now see a clear warning instead of an error. This prevents a confusing crash and helps users understand that a warehouse must exist before stock forecasts can be shown.
Original PR description
Step to reproduce: - install stock - create a new company and switch to that company - open a storable product - click on forecasted smart button Cause: - StockForecasted component needs at least 1 warehouse, but when we create a new company, it does not have any warehouse https://github.com/odoo/odoo/blob/7747c5810eabe798a1631c3e3b26b81a5c89b4b4/addons/stock/static/src/stock_forecasted/stock_forecasted.js#L49-L52 - clicking on the smart button, raises traceback Fix: - we show a warning when the smart button is clicked and no warehouse is found **Note**: not adding a test case, as issue is not reproducible in test mode due to this https://github.com/odoo/odoo/blob/de264d99c22283390d18beb7c7c62c29824f72b3/addons/stock/models/res_company.py#L197-L198 opw-5059799 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225698
The Subscriptions MRR Breakdown report now ignores archived companies when preparing report data. This prevents an access error in multi-company setups where the original company was archived and another active company is used.
Original PR description
Step to reproduce: - Start database without demo data and install Subscriptions - Create a new Company and archive the first Company in the Database - Set a currency rate on a currency (i.e. Euro),…
Step to reproduce: - Start database without demo data and install Subscriptions - Create a new Company and archive the first Company in the Database - Set a currency rate on a currency (i.e. Euro), then set that currency as the Main Currency of the new Company. - Then, set a currency rate on the previous Main Currency i.e USD. - Create a Subscription Sales Order and confirm it. - Open the MRR Breakdown report. - Click into the data of the report. Observation: An error message will occur appear (Access Error) Issue: - when building the query, it also fetches the archived company, due to `active_test` context applied from [fetch()](https://github.com/odoo/odoo/blob/754599a7720ee179fc5304b9613df9c177e4b231/odoo/models.py#L3858), and hence wrong query is build which fetches no data, leading to sort of access error as this [condition](https://github.com/odoo/odoo/blob/754599a7720ee179fc5304b9613df9c177e4b231/odoo/models.py#L3876) matches. Fix: - we explicitly search for active companies opw-5090463 Forward-Port-Of: odoo/enterprise#95989
The duplicate transaction warning in bank reconciliation now works again. Users who see the banner can be directed to the tool for finding duplicate transactions, reducing confusion and helping them clean up bank data.
Original PR description
Before this commit, the action "Some transactions may be duplicates." was broken because 2 elements from the old bank reconciliation widget were removed. The commit [[1]] of the new bank reconciliation widget forgot to add the action service and a link to the journal. These 2 elements were used to redirect the customer to the Find duplicates tool. This commit adds, in the extension of the bank reconciliation kanban controller, the call to the action service and adapt the old code to match the new one. no task id [1]: https://github.com/odoo/enterprise/commit/2335c953723dce66af8811fdfbfd5b811d42b109
The customer portal now shows the invoice delivery preference explanation only when customers can actually choose an invoice sending method. This avoids confusing customers with guidance for an option that is not visible or available.
Original PR description
Currently, there is no validation in place to determine when the labe related to invoice_sending_methods should be added to the portal_my_details_fields template in the inheritance made in [1].
This results in the following:
For invoice_sending_methods, the label/message: 'You can choose how yo want us to send your invoices, and with which electronic format.' is always displayed, even if the <select> to define the method is not visible.
Now, a validation has been added to display this label only when necessary, in order to avoid user confusion.
[1]: https://github.com/odoo/odoo/commit/de567b6
Before:

After:

Forward-Port-Of: odoo/odoo#229962
Forward-Port-Of: odoo/odoo#200261The Dutch accounting localization now uses the correct default accounts for deferred expenses and revenues. This helps companies in the Netherlands post deferred items to the right balance sheet categories by default, reducing manual corrections and reporting errors.
Original PR description
The default deferred accounts in the Dutch localization were incorrect. This commit sets the proper accounts and adjusts the `account_type` of the default deferred expense account from "Prepayments" to "Current Assets". task-5152529 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230902 Forward-Port-Of: odoo/odoo#230499
Printing Kanban views now handles page breaks more reliably when records span multiple pages. This prevents cards from being cut off at the top of later printed pages, making printed reports easier to read and use.
Original PR description
This commit fixes the kanban view print to better handle the page break. The issue was caused by the flex layout: when printing, heights often misbehave on the last row or at page breaks. task-4630646 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230927 Forward-Port-Of: odoo/odoo#229259
Payroll features now identify a company's country through its linked partner record instead of relying on a field that cannot be searched directly. This helps payroll and Swiss payroll processes correctly find relevant companies and avoid errors in country-based filtering.
Original PR description
As the country_id field on the company is computed and not searcheable, this commit adapts the domain to search for the country of the associated partner. task-5096037 Forward-Port-Of: odoo/enterprise#95255
This fix keeps text colors and gradient formatting intact when users change heading styles inside lists. It also prevents formatting issues with checklist strike-throughs and avoids invalid nested formatting when continuing to type after a list.
Original PR description
Steps to Reproduce: - Create a list in the editor. - Apply a text color to an item. - Change the font type of the text inside the list (e.g., to H1–H6). - Apply a gradient color to text inside a list…
Steps to Reproduce: - Create a list in the editor. - Apply a text color to an item. - Change the font type of the text inside the list (e.g., to H1–H6). - Apply a gradient color to text inside a list item. - Move the cursor outside the list by pressing Enter twice and start typing in the new container. Current behavior before PR: - When changing the font type (H1–H6) after applying a color, the text color turns to default color. also when applying a gradient color and then changing the font type, the text becomes transparent. - This happens because the gradient style was incorrectly applied both on the `<li>` and its child `<font>` element. As a result, Checklist items lose their line-through when checked. Also new base container outside the list ends up with a `<font>` wrapping another `<font>`. Desired behavior after PR is merged: - All child elements inside the list item inherit the color and Gradient styles are applied only to the `<font>` element. - Checklist items correctly show the line-through when checked and No invalid nested `<font class="text-gradient">` tags are created when writing outside the list after pressing Enter twice. task-5039499 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224262
This update corrects how the Belgian reports partner form extension is linked, preventing module updates from failing when the citizen identification field is involved. It helps ensure smoother upgrades and maintenance for Belgian reporting features without changing day-to-day user workflows.
Original PR description
The citizen_identification field was added to the partner view in l10n_be_reports, but the form 281.50 view for this required field was incorrectly inheriting from the base partner view. That led to…
The citizen_identification field was added to the partner view in l10n_be_reports, but the form 281.50 view for this required field was incorrectly inheriting from the base partner view.
That led to a traceback when updating account_reports/l10n_be_reports modules in 19.0+ versions:
This fix PR is a backport requested from upgrade: https://github.com/odoo/enterprise/pull/92104#pullrequestreview-3144302023.
```py
Odoo Server Error
Occured on 86642809-master-all.runbot135.odoo.com on model ir.module.module on 2025-08-11 14:04:32 GMT
Traceback (most recent call last):
------- A lot of calls ------
convert_xml_import(env, module, fp, idref, mode, noupdate)
File "/data/build/odoo/odoo/tools/convert.py", line 745, in convert_xml_import
obj.parse(doc.getroot())
File "/data/build/odoo/odoo/tools/convert.py", line 616, in parse
self._tag_root(de)
File "/data/build/odoo/odoo/tools/convert.py", line 559, in _tag_root
f(rec)
File "/data/build/odoo/odoo/tools/convert.py", line 570, in _tag_root
raise ParseError(msg) from None # Restart with "--log-handler odoo.tools.convert:DEBUG" for complete traceback
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
odoo.tools.convert.ParseError: while parsing /data/build/enterprise/account_followup/views/partner_view.xml:4
Error while parsing or validating view:
Element '<xpath expr="//field[@name='citizen_identification']">' cannot be located in parent view
View error context:
{'file': '/data/build/enterprise/account_followup/views/partner_view.xml',
'line': 1,
'name': 'res.partner.view.form',
'view': ir.ui.view(5824,),
'view.model': 'res.partner',
'view.parent': ir.ui.view(127,),
'xmlid': 'res_partner_view_form'}
```
Forward-Port-Of: odoo/enterprise#96855The attendance auto-checkout process now correctly closes open attendance entries even when the employee checked in on a previous day. This prevents missed checkout records after downtime or delayed scheduled processing, improving accuracy of attendance tracking.
Original PR description
Problem: the auto-checkout feature was basing the computation on the fact that the unclosed attendance was starting today. However, it might not always be the case, for example if the server is shutdown for more than 24 hours after checking in. Steps to reproduce: - Activate the auto-checkout feature - Create an open-ended attendance for two days ago - Run the cron - Result: the attendance is not closed. This commit solves the issue by taking into account the days delta between today and the check-in date. task-5082359 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 Forward-Port-Of: odoo/odoo#227981
This fixes an issue in Discuss calls where a connection warning could appear in browser tabs that were not actually managing the call connection. Users will now see the warning only in the relevant host tab, reducing confusion during calls.
Original PR description
Before this commit, the forward port[1] of a call indicator fix[2] did not account for the cross-tab call feature[3], introduced in saas 18.2 which makes it possible to be considered inside a call without having connection state information (as the remote tab does not manage connections), thus incorrectly showing the connection state indicator. [1]: https://github.com/odoo/odoo/pull/229166 [2]: https://github.com/odoo/odoo/pull/228601 [3]: https://github.com/odoo/odoo/pull/198109 Forward-Port-Of: odoo/odoo#231170
The call participant volume slider is now shown only when the user is actually in the call. This avoids confusing controls appearing when they cannot be used and makes the call interface clearer.
Original PR description
Before this PR, the volume slider for call participants was visible even when the user was not part of the call. This PR fixes the behavior by ensuring the volume slider is only available when the user is in the call. task-[5092826](https://www.odoo.com/odoo/project/1519/tasks/5092826) Forward-Port-Of: odoo/odoo#231067 Forward-Port-Of: odoo/odoo#227803
Website pages translated into another language now keep document icons visible when an image block is changed to a document. This prevents missing visual cues for editors and visitors on translated website pages.
Original PR description
This commit permits to keep document icon visible during the translation of a website page. Steps to reproduce the issue: - Have a website in English (main) and French - Edit the website in the main lang (English) - Drop Image text block - Change the image to a document - Save - Edit the translation in French => The document logo becomes invisible. This commit fixes this issue. task-3626918 Forward-Port-Of: odoo/odoo#165109
Changing a user's locale can alter which day is treated as the start of the week, which affects spreadsheet pivot data grouped by day of week. This fix reloads affected pivots after a locale change so users see accurate values instead of stale or incorrectly grouped results.
Original PR description
Chaning the locale can change the first day of the week. But the normalization of the server value depends on this `locale.weekStart`, se we need to reload the pivot when the locale changes, otherwise we might display wrong values for a "day_of_week" grouping. Task: [5149508](https://www.odoo.com/web#id=5149508&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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 Forward-Port-Of: odoo/odoo#230949
Combo products in Point of Sale preparation tickets are now routed correctly when different printers handle different product categories. Each printer shows the combo title and only the relevant child items, reducing kitchen or preparation mistakes.
Original PR description
Before this commit: =================== - When using separate printers for product categories, combo products were not printed correctly. - All child products of a combo were sent to every printer, regardless of their category. After this commit: ================== - Combo products are now handled properly in preparation tickets. - Each printer will print the combo product title along with only the child products that belong to its assigned category. Task: 5056115 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225658
The Swiss payroll ELM salary rule screen now includes all relevant configuration options that were previously only available in the backend. This helps payroll teams review and adjust wage type settings more reliably without needing technical access or hidden configuration steps.
Original PR description
task-4954650 Forward-Port-Of: odoo/enterprise#96824
The working schedule calendar now keeps the hours-per-week label on one line. This improves readability for users viewing employee schedules and avoids awkward text wrapping.
Original PR description
Changed the style of hours/week in working schedule calendar so it doesn't appear on 2 lines task-id: 5003432 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#231237
This fix makes reconciliation models available when using invoicing features, preventing accounting workflows from getting stuck. It also cleans up confusing screens related to creating reconciliation model lines, making the invoicing experience smoother for users.
Original PR description
Currently flows are stuck if you don't have the models. And some views are really weird (create a reconciliation model line). 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 fix keeps accounting reports restricted to the accounting area as intended. It helps prevent these reports from appearing in unrelated journal dashboard contexts, reducing confusion for users.
Contacts without a regular name or email now display a fallback name in chatter recipients, follower lists, and subscription dialogs. This prevents blank labels or confusing “false” values, making recipient selection clearer for users.
Original PR description
Steps to reproduce =============== 1. Create a contact of type invoice address without name and email. 2. Go to any app with chatter. 3. Add this user to the recipient ----> Only the blue tick will be visible (recipient name will be empty) After this commit, we will use the display_name as a fallback to show in the chatter. Forward-Port-Of: odoo/odoo#222523 Forward-Port-Of: odoo/odoo#213545
The change updates automated checks in Helpdesk, Salary Contracts, and Studio so they match a recent change in how suggested email recipients include display names. This helps keep quality checks accurate and prevents false test failures without changing day-to-day user workflows.
Original PR description
From the related community commit, the _message_add_suggested_recipient method is modified to also return display name under certain condition. This commit adapts the test inside web_studio to align with the method's change. Task-4812554 Forward-Port-Of: odoo/enterprise#92126 Forward-Port-Of: odoo/enterprise#91003
The date picker now clearly shows when certain dates cannot be selected. This reduces confusion for users by making unavailable dates visually distinct and aligned with their actual behavior.
Original PR description
In this commit fa3bfb0a696c20ae51cd0f37f737fcf211007c4a, the o_date_item_cell was changed from a button to a div. This made the style of disabled cells not show that its not unclickable, making it confusing for users. Solution is to add specific style for the disbaled o_date_item_cell component. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Point of Sale now handles cases where a customer previously loaded in the system has since been deleted. This prevents reload errors and helps staff continue checkout or settlement workflows without interruption.
Original PR description
Before this commit, if a previously loaded partner was deleted from the database, reloading the PoS would trigger an error because the partner record could no longer be found. opw-5137871
The Point of Sale product information popup now shows the stock level for the exact product variant selected, rather than the broader product template. This helps cashiers make more accurate sales decisions when products have multiple variants with different inventory levels.
Original PR description
Before this commit, when a product template had several variants, opening the product info while a specific variant was selected would not display the inventory information of the selected variant. opw-5161698 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr