Daily updates from Odoo
Thursday, May 29, 2025
4 changes
1 change
Resolved issues and error corrections
Installing the Settle Due point-of-sale module no longer fails if the default Services product category was previously removed. This prevents an installation error and lets businesses enable the module without manually restoring that category first.
Original PR description
Currently a ParseError is arising when the user installs the `pos_settle_due` module after deleting the `Services` in Product Categories/Configuration. Steps to reproduce: --- - Install `Invoicing`…
Currently a ParseError is arising when the user installs the `pos_settle_due` module after deleting the `Services` in Product Categories/Configuration.
Steps to reproduce:
---
- Install `Invoicing` application (without demo data).
- Invoicing > Configuration > Product Categories > Delete `Services`
- Now install `pos_settle_due` module
Traceback:
---
```
ValueError: External ID not found in the system: product.product_category_services
ParseError: while parsing /home/odoo/src/enterprise/saas-18.3/pos_settle_due/data/pos_settle_due_data.xml:22, somewhere inside <record id="product_product_settle_invoice" model="product.product">
<field name="name">Settle Invoice</field>
<field name="categ_id" ref="product.product_category_services"/>
<field name="type">service</field>
<field name="weight">0.00</field>
<field name="available_in_pos">False</field>
<field name="taxes_id" eval="[]"/>
</record>
```
The error occurs because the user deleted `Services` in Product Categories, and then tried to install the other module.
This commit resolves the error by providing a False value for the field if the product category is missing.
sentry-63776593551 change
Resolved issues and error corrections
Template names were updated to use the correct module prefixes after the HTML builder integration. This reduces the risk of naming conflicts and helps appointment, knowledge, and studio website features behave consistently.
Original PR description
*: website_appintment, website_knowledge, website_studio This commit corrects improperly prefixed template names introduced during the integration of the new HTML builder. This ensures consistency and avoids conflicts or ambiguity when referencing templates across website modules. Community PR : - https://github.com/odoo/odoo/pull/211723
2 changes
Resolved issues and error corrections
Manufacturing unbuild forms now allow quantities with the same decimal precision as the product's unit of measure. This prevents valid manufactured quantities, such as three-decimal amounts, from being rounded or blocked when reversing a production order.
Original PR description
Steps to reproduce the bug:
- Set the decimal precision and rounding accuracy for the unit of measure to more than 2 digits (e.g. 3)
- Create a storable product “P1”
- Create a manufacturing order to produce 1.234 units
- Confirm and validate it
- Try to unbuild the MO
Problem:
The unbuild form does not respect the product's UoM decimal precision, allowing only 2 digits for product_qty.
opw-4818591This fixes an issue in Discuss where someone writing a long message could disappear from the "is typing..." indicator before they stopped typing. The indicator now refreshes correctly, giving other users a more accurate view of ongoing conversations.
Original PR description
Before this commit, if a user is typing without interrupt for more than 1 minute, other members stop seeing this person from about 40 seconds. As a reminder, the "is typing..." feature in discuss is…
Before this commit, if a user is typing without interrupt for more than 1 minute, other members stop seeing this person from about 40 seconds. As a reminder, the "is typing..." feature in discuss is implemented as follow: - when typing, notify `is_typing: true` once every 50 seconds. - when stop typing for 5 seconds, notify `is_typing: false`. - other members assume stop typing if nothing received after 60 seconds. This logic is good, but there was a problem with current implementation: members only send and receive `isTyping: true` through `mail.record/insert` notification. This means a long typer is seen as follow ``` - time: 0sec. -> is_typing: true sent + received - time: 50sec. -> is_typing: true sent + received - time: 60sec. -> is_typing: false (assuming stop typing) - time: 100sec. -> is_typing: true sent + received ``` This is the case because the notification is `mail.record/insert` so from the store data, data of `isTyping` is unchanged. The timeout was made through a change of `isTyping` status, which doesn't in this scenario, hence the problem of assuming stop typing. This commit fixes the issue by sending the datetime of notified `is_typing` and linking the timeout to the datetime of last notified of `is_typing` of this member. This fix ensures that at the 50sec, the timeouts are refreshed and they have to wait until time 110sec. to assume stop typing, which is good in case the message is very long as typer will warn again at time 100sec. with refreshed datetime. runbot-223760