Thursday, May 8, 2025
20 changes · saas-17.4
Resolved issues and error corrections
Fixed a display issue in the messaging area where recipient names could overflow when the browser window was enlarged. Long recipient lists now continue onto the next line, keeping the interface readable and preventing visual glitches.
Original PR description
Purpose of the commit: The recipient list overflows when the screen size is increased. This commit resolves the issue by showing the overflowing text on the next line. task-4417552
This update fixes a visual layering issue in Kanban views where columns, headers, or quick-create areas could appear incorrectly over helper content. It helps keep Kanban screens clearer and avoids confusing overlaps for users adding or viewing records.
Original PR description
This commit removes the z-index priority of kanban groups, headers and quick create over the no-content helper since it became useless with https://github.com/odoo/odoo/pull/148138 and can now cause display issues when these elements are on top of each other (which can happen with the quick create column). task-4778356
Spreadsheet pivot tables now rely on the standard month grouping behavior instead of custom Documents code. This reduces the chance of incorrect pivot details when no specific date granularity is selected and keeps spreadsheet behavior more consistent.
Original PR description
The o-spreadsheet commit add the month granularity to spreadsheet pivots, so we can drop some odoo-specific code. Task: [4742696](https://www.odoo.com/web#id=4742696&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
Miscellaneous changes
Description of the issue/feature this PR addresses: It's possible to setup an inherited view with groups if we update the mode Steps: - Open an inherited view form - Change its mode to "Base" - Add a group - Rollback the mode to "Inherited" - Save, no problem - Try to upgrade a module linked to this view Current behavior before PR: - Traceback as inherited view cannot have groups Desired behavior after PR is merged: - Save is not possible opw-3263438 opw-3774300 --- I
Original PR description
Description of the issue/feature this PR addresses: It's possible to setup an inherited view with groups if we update the mode Steps: - Open an inherited view form - Change its mode to "Base" - Add a group - Rollback the mode to "Inherited" - Save, no problem - Try to upgrade a module linked to this view Current behavior before PR: - Traceback as inherited view cannot have groups Desired behavior after PR is merged: - Save is not possible opw-3263438 opw-3774300 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156279
This commit, fixes the scroll of the control panel when we opened the search bar. The bug happened because when we scroll we save the last scroll position into `oldScrollTop` variable. But when we "open" the search bar a "new line" (search input) is rendered so the height of the scrolling element is increase (by the height of the search input line). Also, a scroll is triggered so the view remains at the same position. But the `oldScrollTop` is not adapted to reflect the new height of the scroll
Original PR description
This commit, fixes the scroll of the control panel when we opened the search bar. The bug happened because when we scroll we save the last scroll position into `oldScrollTop` variable. But when we…
This commit, fixes the scroll of the control panel when we opened the search bar. The bug happened because when we scroll we save the last scroll position into `oldScrollTop` variable. But when we "open" the search bar a "new line" (search input) is rendered so the height of the scrolling element is increase (by the height of the search input line). Also, a scroll is triggered so the view remains at the same position. But the `oldScrollTop` is not adapted to reflect the new height of the scrolling element. When the new delta was calculated (in the scroll handler) to set the top position of the control panel, a wrong value was set as there was an additional offset of the height of the "search input line". This commit adds an ResizeObserver to observe the scrolling element and so adapt the `oldScrollTop` variable to adapt the delta of its height. task-4466063 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208787
Issue ----- For subcontracted services, branch companies don't have taxes on PO lines when it is created by a SO. Steps to reproduce ----- - Install MRP, Sale, Purchase apps - Create a branch company and switch to the branch - In the settings, enable subcontracting - Create a product - Type: service - Add a vendor for the product, with some tax applied - Tick the "Subcontract Service" box - Create & confirm a sale for the product - Open the linked PO -> The PO doesn
Original PR description
Issue
-----
For subcontracted services, branch companies don't have taxes on PO lines when it is created by a SO.
Steps to reproduce
-----
- Install MRP, Sale, Purchase apps
- Create a branch company and switch to the branch
- In the settings, enable subcontracting
- Create a product
- Type: service
- Add a vendor for the product, with some tax applied
- Tick the "Subcontract Service" box
- Create & confirm a sale for the product
- Open the linked PO
-> The PO doesn't have the tax specified on the product page
Cause
-----
The tax is defined in the parent, but when applied to the POL it is matched to the PO's company.
Forward-Port-Of: odoo/odoo#208616### Steps to reproduce: - install "l10n_de" and switch to a German company - Go to a contact, in the page Accounting > Electronic Invoicing change the format to "Factur-X (CII)" - Create an invoice for this contact - Add a start and end date on the line of this invoice - Confirm and send to Factur-X - In the generated XML there is no trace of the start or end dates ### Solution: Set the variables to add the `BillingSpecifiedPeriod` in the XML. Put `invoice_date` as start date and `invo
Original PR description
### Steps to reproduce: - install "l10n_de" and switch to a German company - Go to a contact, in the page Accounting > Electronic Invoicing change the format to "Factur-X (CII)" - Create an invoice for this contact - Add a start and end date on the line of this invoice - Confirm and send to Factur-X - In the generated XML there is no trace of the start or end dates ### Solution: Set the variables to add the `BillingSpecifiedPeriod` in the XML. Put `invoice_date` as start date and `invoice_date_due` as end date. opw-4680890 Forward-Port-Of: odoo/odoo#208088
Steps to reproduce: - With an AE Company - Enable Multicurrency (USD) - Create an invoice in USD with total 0.00 - Print Issue: Traceback will raise """ odoo.addons.base.models.ir_qweb.QWebException: Error while render the template ZeroDivisionError: float division by zero Template: account.document_tax_totals_company_currency_template Path: /t/div/table/tr[1]/td[2] Node: <td class="text-end" t-out="exchange_rate" t-options="{"widget": "float", "precision"
Original PR description
Steps to reproduce:
- With an AE Company
- Enable Multicurrency (USD)
- Create an invoice in USD with total 0.00
- Print
Issue: Traceback will raise
"""
odoo.addons.base.models.ir_qweb.QWebException: Error while render the template ZeroDivisionError: float division by zero
Template: account.document_tax_totals_company_currency_template Path: /t/div/table/tr[1]/td[2]
Node: <td class="text-end" t-out="exchange_rate" t-options="{"widget": "float", "precision": 5}"/>
"""
opw-4724401
Forward-Port-Of: odoo/odoo#208396This commit removes all files related to the session tour for survey. This tour has been maintained for years but sadly keeps breaking as it's very sensitive due to various reasons: - Mix of python code and multiple chained tours - Multiple "timing" components that are part of the session functional flow: - SVG charts animations for question answers - CSS animations when showing the leaderboard - Animations when going from one question to another We have already put a lot of eff
Original PR description
This commit removes all files related to the session tour for survey. This tour has been maintained for years but sadly keeps breaking as it's very sensitive due to various reasons: - Mix of python…
This commit removes all files related to the session tour for survey. This tour has been maintained for years but sadly keeps breaking as it's very sensitive due to various reasons: - Mix of python code and multiple chained tours - Multiple "timing" components that are part of the session functional flow: - SVG charts animations for question answers - CSS animations when showing the leaderboard - Animations when going from one question to another We have already put a lot of effort into fixing it in various versions, despite never touching the base survey code, only the test was broken, not the feature. It started failing yet again recently and the cause is (once again) obscure. Due to all these reasons, and the fact that survey is in "maintenance mode" and rarely modified to a significant degree, we believe it's best to get rid of it to focus on more important matters. Task-4778379 Side-note: Sorry Florian Charlier <flch@odoo.com> we have tried enough, it's time to let it go now :') Forward-Port-Of: odoo/odoo#208819 Forward-Port-Of: odoo/odoo#208757
Description of the issue this commit addresses: When creating the OSS fiscal positions, if the system creates a tax with a name already used by another tax, the entire mapping process stops due to a unique name constraint resulting in only the countries that have already been done to have the OSS fiscal positions. A solution would be to delete the tax but in the eventuality that it has already been used, it is impossible to delete it hence refreshing the oss fiscal positions becoming totally
Original PR description
Description of the issue this commit addresses: When creating the OSS fiscal positions, if the system creates a tax with a name already used by another tax, the entire mapping process stops due to a…
Description of the issue this commit addresses: When creating the OSS fiscal positions, if the system creates a tax with a name already used by another tax, the entire mapping process stops due to a unique name constraint resulting in only the countries that have already been done to have the OSS fiscal positions. A solution would be to delete the tax but in the eventuality that it has already been used, it is impossible to delete it hence refreshing the oss fiscal positions becoming totally impossible. --- Steps to reproduce: 1. Install l10n_eu_oss and any oss member loca (be for example) 2. Use the company of the loca installed 3. Go to Accouting, Settings, click Refresh tax mapping. 4. Go to the fiscal positions and delete any oss fiscal position. 5. Go back to Accoutning, Settings, click Refresh tax mapping. 6. "Tax names must be unique!" error shows up. --- Desired behavior after this commit is merged: When creating the oss fiscal positions, a search is performed to gather the tax and its copies that use the desired name. The name of the new tax will be the name of the one with the most " (Copy)" in its name with one more " (Copy)". --- no-task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208532
Since [1], the website visitor update in the login process uses the request's environment, which might not yet have the user in the cursor for auto-provisioning modules like LDAP, where the user is created in a different cursor. Steps to reproduce: 1. Install auth_ldap & website 2. Configure the website to have the correct domain 3. Configure the LDAP connection to create users 4. Logout and navigate to a website page (to create a visitor) 5. Login with an LDAP user -> traceback 6. Logi
Original PR description
Since [1], the website visitor update in the login process uses the request's environment, which might not yet have the user in the cursor for auto-provisioning modules like LDAP, where the user is created in a different cursor. Steps to reproduce: 1. Install auth_ldap & website 2. Configure the website to have the correct domain 3. Configure the LDAP connection to create users 4. Logout and navigate to a website page (to create a visitor) 5. Login with an LDAP user -> traceback 6. Login again -> works After this commit: As the website visitor is not business-critical, the visitor is not updated to ensure no deadlock is reintroduced. opw-4378487 cc @thle-odoo [1]: https://github.com/odoo/odoo/commit/b241cf7de9329af1410b9dd45b161aa41926effb Forward-Port-Of: odoo/odoo#203913
This commit modifies the condition for the Peppol information footnote to be added to the mail to be only when the country of both the company and the partner is one of the following: BE/LU/NL/SE/NO. task-id: 4750146 Forward-Port-Of: odoo/odoo#207270
Original PR description
This commit modifies the condition for the Peppol information footnote to be added to the mail to be only when the country of both the company and the partner is one of the following: BE/LU/NL/SE/NO. task-id: 4750146 Forward-Port-Of: odoo/odoo#207270
During the rendering of email marketing templates, links will be automatically shortened to aliases, which also enable tracking on the links' activity. However, since some links are generated by Odoo, these are protected (blacklisted) from being shortened during the email generation process. Since that blacklist is keyword-based, some external pages are also affected by this (notably Google Docs' forms, whose URL contains "/viewform", matching keyword /view. Steps to reproduce: - Creat
Original PR description
During the rendering of email marketing templates, links will be automatically shortened to aliases, which also enable tracking on the links' activity. However, since some links are generated by Odoo, these are protected (blacklisted) from being shortened during the email generation process. Since that blacklist is keyword-based, some external pages are also affected by this (notably Google Docs' forms, whose URL contains "/viewform", matching keyword /view. Steps to reproduce: - Create a new mass mailing - Add a link to a Google Docs form, and a link to a Wikipedia page - Send the mass mailing - On the received email: The link to Wikipedia is shortened, the Google Docs form link is not To reduce the number of false positives, this commit makes it so that blacklist elements need to be followed by a path symbol ( / # ? or link termination) to be counted as positives. task-4196321 Forward-Port-Of: odoo/odoo#190819
## Issue: A standard IBAN always breaks into two lines on the DIN 5008 report. ## Steps to reproduce: - Install l10n_de; - Change to DE Company; - Navigate to Settings; - Under the Companies section, click `Configure Document Layout`; - Select `DIN 5008` layout; - Check footer display. ## Cause: The commit 3a139b15a5270fb466b608b340013c93214557bb reset the font-size without thinking about the IBAN display. opw-4680515 --- I confirm I have signed the CLA and read the PR guide
Original PR description
## Issue: A standard IBAN always breaks into two lines on the DIN 5008 report. ## Steps to reproduce: - Install l10n_de; - Change to DE Company; - Navigate to Settings; - Under the Companies section, click `Configure Document Layout`; - Select `DIN 5008` layout; - Check footer display. ## Cause: The commit 3a139b15a5270fb466b608b340013c93214557bb reset the font-size without thinking about the IBAN display. opw-4680515 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#204296
Issue: Syntax error is raised when applying period comparison on partner ledger report. Purpose of this PR: Group queries with the parentheses. Steps to Reproduce in Runbot: - install accounting - add period comparison to Partner Ledger Report - try to apply period comparison opw-4730435 Forward-Port-Of: odoo/enterprise#83652
Original PR description
Issue: Syntax error is raised when applying period comparison on partner ledger report. Purpose of this PR: Group queries with the parentheses. Steps to Reproduce in Runbot: - install accounting - add period comparison to Partner Ledger Report - try to apply period comparison opw-4730435 Forward-Port-Of: odoo/enterprise#83652
The mx payment method on a payment should be the one from the pos payment method. Steps: - Have a PoS payment method with `l10n_mx_edi_payment_method_id` != `payment_method_transferencia` - Open a PoS session, make an order with this payment method and close the session - Look for the related payment --> `l10n_mx_edi_payment_method_id` == `payment_method_transferencia` With this commit, we override the compute to get the payment way from the pos payment method. opw-4699064 Forward-Port-
Original PR description
The mx payment method on a payment should be the one from the pos payment method. Steps: - Have a PoS payment method with `l10n_mx_edi_payment_method_id` != `payment_method_transferencia` - Open a PoS session, make an order with this payment method and close the session - Look for the related payment --> `l10n_mx_edi_payment_method_id` == `payment_method_transferencia` With this commit, we override the compute to get the payment way from the pos payment method. opw-4699064 Forward-Port-Of: odoo/enterprise#83323
- Turn on Inter-company transactions. Select to sync invoices and bills in two companies. - Create an invoice in company A for an individual contact belonging to company B, then send and print the invoice. - In the corresponding bill in Company B, the draft bill is created without any attachment_ids. In the method _process_send_and_print from account_inter_company_rule the moves_with_attachements does not check if a partner belong to a synced company. opw-4675654 Forward-Port-Of: odoo/e
Original PR description
- Turn on Inter-company transactions. Select to sync invoices and bills in two companies. - Create an invoice in company A for an individual contact belonging to company B, then send and print the invoice. - In the corresponding bill in Company B, the draft bill is created without any attachment_ids. In the method _process_send_and_print from account_inter_company_rule the moves_with_attachements does not check if a partner belong to a synced company. opw-4675654 Forward-Port-Of: odoo/enterprise#83431
Currently the "resend" mechanism relies on `_send`; marking messages to resend as "outgoing". However when used in batch mode `_send` only sends template messages. We enable `_send_cron` to send discuss messages too and to process these in priority. As these have a fixed time limit to be sent. We also do some filtering on resend to avoid marking messages that we know will fail as outgoing. Including "unrecoverable" errors and messages on outdated channel. Methods that use crons are a
Original PR description
Currently the "resend" mechanism relies on `_send`; marking messages to resend as "outgoing". However when used in batch mode `_send` only sends template messages. We enable `_send_cron` to send discuss messages too and to process these in priority. As these have a fixed time limit to be sent. We also do some filtering on resend to avoid marking messages that we know will fail as outgoing. Including "unrecoverable" errors and messages on outdated channel. Methods that use crons are also updated to use direct method trigger and prevent commits during tests to avoid having to patch them every time. task-3547088 Forward-Port-Of: odoo/enterprise#79050
In 65576b109249fbb0f111f57b42d48940a46f63db we added schema files to mock the l10n_ar_edi services. But their filenames contained `?` which is not a valid filename character on Windows. As a result, users cannot pull the repository on Windows anymore. This commit removes the `?` character from the filenames. task-none Forward-Port-Of: odoo/enterprise#84852
Original PR description
In 65576b109249fbb0f111f57b42d48940a46f63db we added schema files to mock the l10n_ar_edi services. But their filenames contained `?` which is not a valid filename character on Windows. As a result, users cannot pull the repository on Windows anymore. This commit removes the `?` character from the filenames. task-none Forward-Port-Of: odoo/enterprise#84852
Currently, an empty partner ref in an FEC line could incorrectly match a partner with an empty ref. This fix ensures that only non-empty refs are considered when processing FEC files. Steps to reproduce: 1. Install the `l10n_fr_fec_import` module. 2. Create a contact and set its ref to an empty string (`""`). 3. Import an FEC file containing lines without `CompAuxNum`. 4. The created contact will be incorrectly assigned to all lines without `CompAuxNum`. opw-4592290 Forward-Port-O
Original PR description
Currently, an empty partner ref in an FEC line could incorrectly match a partner with an empty ref. This fix ensures that only non-empty refs are considered when processing FEC files. Steps to reproduce: 1. Install the `l10n_fr_fec_import` module. 2. Create a contact and set its ref to an empty string (`""`). 3. Import an FEC file containing lines without `CompAuxNum`. 4. The created contact will be incorrectly assigned to all lines without `CompAuxNum`. opw-4592290 Forward-Port-Of: odoo/enterprise#84855 Forward-Port-Of: odoo/enterprise#81676