Tuesday, April 22, 2025
14 changes · saas-17.4
Resolved issues and error corrections
An unused Latvia localization data file was removed because it was never activated in the system. This cleanup avoids carrying unnecessary files and has no expected effect on users or daily operations.
Original PR description
In commit aca36072a8adcdc2263f5dcc12a3c9fb374a025e a new data file was created but not included in the manifest. So it is never loaded. This commit removes the file (since it is not used anyway). task: None
The Colombian eCommerce tax ID lookup now only matches the Colombian NIT identifier. This prevents errors when another country has an ID type with the same name, helping customers complete checkout reliably.
Original PR description
Adding a condition to match contry to CO when looking for NIT latam ID type. therwise, adding another ID type named 'NIT' for a different country causes the search to return both, resulting in a traceback. task-4318265
Miscellaneous changes
Steps to reproduce the issue: - Add a popup with a 0.0001 days config. - Visit the page as a non-connected user. - The popup opens at some point. - Close the popup. - Wait 10 seconds. - Refresh the page ---> The popup never reappears. This issue comes from the fact that we were setting a non-integer value for the cookie expiration. The "max-age" attribute does not accept float values, so the cookie is treated as a "session" cookie. It only expires when the session ends, which can be e
Original PR description
Steps to reproduce the issue: - Add a popup with a 0.0001 days config. - Visit the page as a non-connected user. - The popup opens at some point. - Close the popup. - Wait 10 seconds. - Refresh the…
Steps to reproduce the issue: - Add a popup with a 0.0001 days config. - Visit the page as a non-connected user. - The popup opens at some point. - Close the popup. - Wait 10 seconds. - Refresh the page ---> The popup never reappears. This issue comes from the fact that we were setting a non-integer value for the cookie expiration. The "max-age" attribute does not accept float values, so the cookie is treated as a "session" cookie. It only expires when the session ends, which can be effectively "never" on some browsers that keep sessions open indefinitely. This used to work before commit [1] because we were also setting an "expires" attribute. When the "max-age" attribute was invalid, the browser would fallback to the "expires" attribute. Since that commit removed the "expires" attribute, the only remaining value (max-age) is invalid, and the popup never reappears as expected. This fix ensures the value used in "max-age" is always an integer, avoiding any invalid cookie behavior. [1]: https://github.com/odoo/odoo/commit/006ee1fc470eabdcbde68077259cf543633d6490 task-4690318 Forward-Port-Of: odoo/odoo#206429
<b>Steps to produce:</b> 1) Install CRM 2) In debug mode, open the stages from the crm configuration 3) Give a long text to Requirements with spaces to the stage 'new' 4) Now open my pipeline and hover on the new stage <b>Issue:-</b> When the user gives a long text with spaces to the requirements in the first stage, It is overflowing the screen. <b>Solution:-</b> Add the class text-prewrap to the tooltip of the kanban header. So the "formatted text" is respected for the k
Original PR description
<b>Steps to produce:</b> 1) Install CRM 2) In debug mode, open the stages from the crm configuration 3) Give a long text to Requirements with spaces to the stage 'new' 4) Now open my pipeline and hover on the new stage <b>Issue:-</b> When the user gives a long text with spaces to the requirements in the first stage, It is overflowing the screen. <b>Solution:-</b> Add the class text-prewrap to the tooltip of the kanban header. So the "formatted text" is respected for the kanban stage. opw-4623639 Forward-Port-Of: odoo/odoo#206193
Steps to reproduce: 1. Drag and drop a popup snippet. 2. Add a banner inside the popup snippet. 3. Set the banner to be invisible on desktop by selecting `no_desktop` visibility on the `Block` element. Issue: The popup remains open, but the element is incorrectly marked as hidden in the invisibility elements list. Solution: This PR ensures that the element's visibility is toggled correctly and triggers the snippet activation to false. task-4337481 Forward-Port-Of: odoo/odoo#205951
Original PR description
Steps to reproduce: 1. Drag and drop a popup snippet. 2. Add a banner inside the popup snippet. 3. Set the banner to be invisible on desktop by selecting `no_desktop` visibility on the `Block` element. Issue: The popup remains open, but the element is incorrectly marked as hidden in the invisibility elements list. Solution: This PR ensures that the element's visibility is toggled correctly and triggers the snippet activation to false. task-4337481 Forward-Port-Of: odoo/odoo#205951 Forward-Port-Of: odoo/odoo#187233
Steps to reproduce: - Switch to Dark Mode (Version Enterprise). - Go to Website --> Edit Mode. - Drag and drop any snippet. - Select the snippet --> background color --> Custom tab. - Bug: The white color is dark, and the black is a white color. This commit fixes the issue by copying the variables: Black, White, and their opacity variants from the website preview to the snippet menu, so they are used in the color picker instead of the backend ones. Note that this commit also fixes a
Original PR description
Steps to reproduce: - Switch to Dark Mode (Version Enterprise). - Go to Website --> Edit Mode. - Drag and drop any snippet. - Select the snippet --> background color --> Custom tab. - Bug: The white color is dark, and the black is a white color. This commit fixes the issue by copying the variables: Black, White, and their opacity variants from the website preview to the snippet menu, so they are used in the color picker instead of the backend ones. Note that this commit also fixes another bug: the "bg-black-15" color was incorrect in the colorpicker before this commit because that class does not exist in the backend. task-4690318 Forward-Port-Of: odoo/odoo#206492
The test introduced in 5734ba9 opens the product catalog, filters it, then adds a product and updates its quantity. The problem is that when the product is already visible in the catalog (before filtering), the next steps can be triggerred while the filtering is still being processed. Once the filtering is done, the state of the product in the catalog is "reverted" to how it was when the filtering was called. This might be inconsistent with the state expected by the step the tour is currently in
Original PR description
The test introduced in 5734ba9 opens the product catalog, filters it, then adds a product and updates its quantity. The problem is that when the product is already visible in the catalog (before filtering), the next steps can be triggerred while the filtering is still being processed. Once the filtering is done, the state of the product in the catalog is "reverted" to how it was when the filtering was called. This might be inconsistent with the state expected by the step the tour is currently in. We can solve this by adding a different product to be filtered out. This allows to add a blocking step that just waits for the catalog not to include the new product. Fixes runbot errors: [162099](https://runbot.odoo.com/odoo/error/162099) [163417](https://runbot.odoo.com/odoo/error/163417) Forward-Port-Of: odoo/odoo#206219
The issue was introduced by: https://github.com/odoo/odoo/commit/90158f647ba610b31499555641c9db8450b49c4c The issue has been fixed by: https://github.com/odoo/odoo/commit/b1666c61bbc9d7e7b920483e168c6048ecde011c This commit is adding a test for it. **Steps to reproduce:** - Install Accounting and purchase_stock - Activate a foreign currency (e.g. Euro) - Create a PO: * Vendor: [any] * Currency: EUR * Product: [any with a Unit Price and a tax] * Payment Terms: [any] (e.g
Original PR description
The issue was introduced by: https://github.com/odoo/odoo/commit/90158f647ba610b31499555641c9db8450b49c4c The issue has been fixed by:…
The issue was introduced by: https://github.com/odoo/odoo/commit/90158f647ba610b31499555641c9db8450b49c4c The issue has been fixed by: https://github.com/odoo/odoo/commit/b1666c61bbc9d7e7b920483e168c6048ecde011c This commit is adding a test for it. **Steps to reproduce:** - Install Accounting and purchase_stock - Activate a foreign currency (e.g. Euro) - Create a PO: * Vendor: [any] * Currency: EUR * Product: [any with a Unit Price and a tax] * Payment Terms: [any] (e.g. 15 Days) - Confirm the PO - Validate the receipt order - Go to "Accounting / Vendors / Bills" - Create a new bill - In "Auto-Complete" field, select the created PO **Issue:** A traceback is raised due to a division by zero. **Cause:** The bill and its lines are created from some information coming from the PO. In the computation of the needed terms of the bill, a computation of the taxes is called on the lines (i.e. _compute_all_tax). During that computation, the rate is computed as followed: (*) rate = line.amount_currency / line.balance if line.balance else line.currency_rate and later, rate is used as followed: 'balance': tax['amount'] / rate When "purchase_stock" module is not installed, there is no issue because "_prepare_account_move_line" method from "purchase.order. line" model doesn't initialized "amount_currency" nor "balance". Therefore, the result of (*) falls back on "line.currency_rate" which is not zero. However, when "purchase_stock" module is installed, "balance" is initialized in "_prepare_account_move_line" but not "amount_currency", leading a result of 0 for (*). opw-4681735 Forward-Port-Of: odoo/odoo#205233
Steps to reproduce: - enable qr code - create an invoice with a swiss client - try to print it Issue: An error is raised Cause: There is no reference for a Swiss invoice in draft. If there is no reference, it is not possible to print the qr code in Switzerland. Solution: We prevent QR code generation whenever the invoice is in draft. opw-4585574 Forward-Port-Of: odoo/odoo#198498
Original PR description
Steps to reproduce: - enable qr code - create an invoice with a swiss client - try to print it Issue: An error is raised Cause: There is no reference for a Swiss invoice in draft. If there is no reference, it is not possible to print the qr code in Switzerland. Solution: We prevent QR code generation whenever the invoice is in draft. opw-4585574 Forward-Port-Of: odoo/odoo#198498
This corrects 9f96aa7648ed4320849c6736e85b9cb6c988232c that was impacting all xml files whereas it should only have had an impact on the invoice report. opw-4661577 Forward-Port-Of: odoo/odoo#206811
Original PR description
This corrects 9f96aa7648ed4320849c6736e85b9cb6c988232c that was impacting all xml files whereas it should only have had an impact on the invoice report. opw-4661577 Forward-Port-Of: odoo/odoo#206811
According to [last update from PGCE](https://www.boe.es/buscar/act.php?id=BOE-A-2007-19884&tn=1&p=20241221) and the accounting standards inside it: >3.º Principios contables La contabilidad de la empresa y, en especial, el registro y la valoración de los elementos de las cuentas anuales, se desarrollarán aplicando obligatoriamente los principios contables que se indican a continuación: > >1. Empresa en funcionamiento. Se considerará, salvo prueba en contrario, que la gestión de la empresa
Original PR description
According to [last update from PGCE](https://www.boe.es/buscar/act.php?id=BOE-A-2007-19884&tn=1&p=20241221) and the accounting standards inside it: >3.º Principios contables La contabilidad de la…
According to [last update from PGCE](https://www.boe.es/buscar/act.php?id=BOE-A-2007-19884&tn=1&p=20241221) and the accounting standards inside it: >3.º Principios contables La contabilidad de la empresa y, en especial, el registro y la valoración de los elementos de las cuentas anuales, se desarrollarán aplicando obligatoriamente los principios contables que se indican a continuación: > >1. Empresa en funcionamiento. Se considerará, salvo prueba en contrario, que la gestión de la empresa continuará en un futuro previsible, por lo que la aplicación de los principios y criterios contables no tiene el propósito de determinar el valor del patrimonio neto a efectos de su transmisión global o parcial, ni el importe resultante en caso de liquidación. > >En aquellos casos en que no resulte de aplicación este principio, en los términos que se determinen en las normas de desarrollo de este Plan General de Contabilidad, la empresa aplicará las normas de valoración que resulten más adecuadas para reflejar la imagen fiel de las operaciones tendentes a realizar el activo, cancelar las deudas y, en su caso, repartir el patrimonio neto resultante, debiendo suministrar en la memoria de las cuentas anuales toda la información significativa sobre los criterios aplicados. > >2. Devengo. Los efectos de las transacciones o hechos económicos se registrarán cuando ocurran, imputándose al ejercicio al que las cuentas anuales se refieran, los gastos y los ingresos que afecten al mismo, con independencia de la fecha de su pago o de su cobro. > >3. Uniformidad. Adoptado un criterio dentro de las alternativas que, en su caso, se permitan, deberá mantenerse en el tiempo y aplicarse de manera uniforme para transacciones, otros eventos y condiciones que sean similares, en tanto no se alteren los supuestos que motivaron su elección. De alterarse estos supuestos podrá modificarse el criterio adoptado en su día; en tal caso, estas circunstancias se harán constar en la memoria, indicando la incidencia cuantitativa y cualitativa de la variación sobre las cuentas anuales. > > 4. Prudencia. Se deberá ser prudente en las estimaciones y valoraciones a realizar en condiciones de incertidumbre. La prudencia no justifica que la valoración de los elementos patrimoniales no responda a la imagen fiel que deben reflejar las cuentas anuales. > > Asimismo, sin perjuicio de lo dispuesto en el artículo 38 bis del Código de Comercio, únicamente se contabilizarán los beneficios obtenidos hasta la fecha de cierre del ejercicio. Por el contrario, se deberán tener en cuenta todos los riesgos, con origen en el ejercicio o en otro anterior, tan pronto sean conocidos, incluso si sólo se conocieran entre la fecha de cierre de las cuentas anuales y la fecha en que éstas se formulen. En tales casos se dará cumplida información en la memoria, sin perjuicio de su reflejo, cuando se haya generado un pasivo y un gasto, en otros documentos integrantes de las cuentas anuales. Excepcionalmente, si los riesgos se conocieran entre la formulación y antes de la aprobación de las cuentas anuales y afectaran de forma muy significativa a la imagen fiel, las cuentas anuales deberán ser reformuladas. > > Deberán tenerse en cuenta las amortizaciones y correcciones de valor por deterioro de los activos, tanto si el ejercicio se salda con beneficio como con pérdida. > > 5. No compensación. Salvo que una norma disponga de forma expresa lo contrario, no podrán compensarse las partidas del activo y del pasivo o las de gastos e ingresos, y se valorarán separadamente los elementos integrantes de las cuentas anuales. > > 6. Importancia relativa. Se admitirá la no aplicación estricta de algunos de los principios y criterios contables cuando la importancia relativa en términos cuantitativos o cualitativos de la variación que tal hecho produzca sea escasamente significativa y, en consecuencia, no altere la expresión de la imagen fiel. Las partidas o importes cuya importancia relativa sea escasamente significativa podrán aparecer agrupados con otros de similar naturaleza o función. > > En los casos de conflicto entre principios contables, deberá prevalecer el que mejor conduzca a que las cuentas anuales expresen la imagen fiel del patrimonio, de la situación financiera y de los resultados de la empresa. For item 5, assets and liabilities, income and expenses shall not be offset, unless required or permitted by a standard. Therefore, group 55 accounts should be presented: - On the assets side if they have a debit balance. - On the liabilities side if they have a credit balance. - Without offsetting each other. @moduon MT-9820 @chklop @jco-odoo @rafaelbn Forward-Port-Of: odoo/enterprise#82976
### Steps to reproduce: - Create a task in Field Service - Navigate to the product's catalog through the smart button - Add some products to the SO - Filter with 'Added products' - Notice the quantity bar is not shown ### Cause: This is happening as when click on the product smart button we are passing the order_id in the context to get the order lines info https://github.com/odoo/enterprise/blob/6e7525e0e0c2858e028694e9227077b2275d88c5/industry_fsm_sale/static/src/components/pr
Original PR description
### Steps to reproduce: - Create a task in Field Service - Navigate to the product's catalog through the smart button - Add some products to the SO - Filter with 'Added products' - Notice the quantity bar is not shown ### Cause: This is happening as when click on the product smart button we are passing the order_id in the context to get the order lines info https://github.com/odoo/enterprise/blob/6e7525e0e0c2858e028694e9227077b2275d88c5/industry_fsm_sale/static/src/components/product_catalog/kanban_model.js#L21-L26 but if we still didn't create an order for this task order_id will be false, so it won't have an order to fetch its data and will just add the default data where the quantity will be 0 https://github.com/odoo/enterprise/blob/6e7525e0e0c2858e028694e9227077b2275d88c5/industry_fsm_sale/models/sale_order.py#L45-L48 ### Fix: If we have a fsm_task we can fallback on its order_id if order_id is false. opw-4712922 Forward-Port-Of: odoo/enterprise#83396
This reverts commit cbcff76a94750a6759fd72d9c952d785e603a974. Fix in community was changing all the xml files generated, whereas it should only have had an impact on the invoice report. opw-4661577 Forward-Port-Of: odoo/enterprise#83783
Original PR description
This reverts commit cbcff76a94750a6759fd72d9c952d785e603a974. Fix in community was changing all the xml files generated, whereas it should only have had an impact on the invoice report. opw-4661577 Forward-Port-Of: odoo/enterprise#83783
Sale orders have to be created during the test, which can fail if the test user does not have the right ACLs. The creation of the SOs seem to be just setup for what the tests want to check, so just sudo into them. https://runbot.odoo.com/odoo/error/163653 Forward-Port-Of: odoo/enterprise#83717
Original PR description
Sale orders have to be created during the test, which can fail if the test user does not have the right ACLs. The creation of the SOs seem to be just setup for what the tests want to check, so just sudo into them. https://runbot.odoo.com/odoo/error/163653 Forward-Port-Of: odoo/enterprise#83717