[FIX] web_editor: prevent error when edit the float, monetary section in website

'replace() argument 1 must be str, not bool' is generated if the user edit a
float or monetary section in the website view.

Steps to Reproduce

- Make debugger mode ON.
- Go to Settings > Translations > Languages.
- Remove the value of the 'Thousands Separator' field from the current user
language.
- Install the 'eCommerce' module.
- Go to the website.
- Go to the shop menu, and click any product from the product list.
- Click on the Edit button and try to edit any float or
monetary section like a product price (eg. change a product price from 750 to
70) and click on the Save button.

And traceback will be generated.

Applying this commit will resolve this issue.

sentry-4148693017

closes odoo/odoo#125684

X-original-commit: b895175cfc487f3db6e53351fd5774303f193698
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
This commit is contained in:
mega-odoo
2023-06-20 09:11:01 +02:00
parent d41720648d
commit e502b972c8
+3 -3
View File
@@ -185,7 +185,7 @@ class Integer(models.AbstractModel):
def from_html(self, model, field, element):
lang = self.user_lang()
value = element.text_content().strip()
return int(value.replace(lang.thousands_sep, ''))
return int(value.replace(lang.thousands_sep or '', ''))
class Float(models.AbstractModel):
@@ -197,7 +197,7 @@ class Float(models.AbstractModel):
def from_html(self, model, field, element):
lang = self.user_lang()
value = element.text_content().strip()
return float(value.replace(lang.thousands_sep, '')
return float(value.replace(lang.thousands_sep or '', '')
.replace(lang.decimal_point, '.'))
@@ -530,7 +530,7 @@ class Monetary(models.AbstractModel):
value = element.find('span').text_content().strip()
return float(value.replace(lang.thousands_sep, '')
return float(value.replace(lang.thousands_sep or '', '')
.replace(lang.decimal_point, '.'))