[FIX] web: MonetaryField: can take 0 value

Before that commit a zero value for a monetary field would be wrongly
considered invalid. This would block many flows (e.g. a save).

Part-of: odoo/odoo#78221
This commit is contained in:
Mathieu Duckerts-Antoine
2022-07-22 16:21:39 +02:00
committed by Géry Debongnie
parent 2320eccf4d
commit 1c344b8955
3 changed files with 22 additions and 0 deletions
@@ -353,6 +353,7 @@ export class Record extends DataPoint {
case "boolean":
case "float":
case "integer":
case "monetary":
continue;
case "one2many":
case "many2many":
@@ -563,6 +563,7 @@ export class Record extends DataPoint {
case "boolean":
case "float":
case "integer":
case "monetary":
continue;
case "one2many":
case "many2many":
@@ -1140,4 +1140,24 @@ QUnit.module("Fields", (hooks) => {
"Placeholder"
);
});
QUnit.test("required monetary field with zero value", async function (assert) {
await makeView({
type: "form",
resModel: "partner",
serverData,
arch: `
<form>
<field name="monetary_field" required="1"/>
</form>`,
});
assert.containsOnce(target, ".o_form_editable");
assert.strictEqual(target.querySelector("[name=monetary_field] input").value, "0.00");
await clickSave(target);
assert.containsOnce(target, ".o_form_readonly");
assert.strictEqual(target.querySelector("[name=monetary_field] span").innerText, "0.00");
});
});