diff --git a/addons/web/static/src/core/datepicker/datepicker.js b/addons/web/static/src/core/datepicker/datepicker.js
index 39488eb53e9..2693dc224de 100644
--- a/addons/web/static/src/core/datepicker/datepicker.js
+++ b/addons/web/static/src/core/datepicker/datepicker.js
@@ -217,7 +217,7 @@ export class DatePicker extends Component {
onDateChange({ useStatic } = {}) {
const { value } = this.inputRef.el;
const options = this.getOptions(useStatic);
- const parsedDate = value && this.parseValue(value, options)[0];
+ const parsedDate = this.parseValue(value, options)[0];
this.state.warning = parsedDate && parsedDate > DateTime.local();
if (value && !parsedDate) {
// Reset to default (= given) date.
diff --git a/addons/web/static/tests/views/fields/date_field_tests.js b/addons/web/static/tests/views/fields/date_field_tests.js
index 710fc3c9dd3..e212538cd78 100644
--- a/addons/web/static/tests/views/fields/date_field_tests.js
+++ b/addons/web/static/tests/views/fields/date_field_tests.js
@@ -5,6 +5,7 @@ import {
click,
clickCreate,
clickSave,
+ editInput,
getFixture,
patchTimeZone,
patchWithCleanup,
@@ -517,6 +518,43 @@ QUnit.module("Fields", (hooks) => {
);
});
+ QUnit.test(
+ "multi edition of DateField in list view: clear date in input",
+ async function (assert) {
+ serverData.models.partner.records[1].date = "2017-02-03";
+
+ await makeView({
+ serverData,
+ type: "list",
+ resModel: "partner",
+ arch: '',
+ });
+
+ const rows = target.querySelectorAll(".o_data_row");
+
+ // select two records and edit them
+ await click(rows[0], ".o_list_record_selector input");
+ await click(rows[1], ".o_list_record_selector input");
+
+ await click(rows[0], ".o_data_cell");
+
+ assert.containsOnce(target, "input.o_datepicker_input");
+ await editInput(target, ".o_datepicker_input", "");
+
+ assert.containsOnce(document.body, ".modal");
+ await click(target, ".modal .modal-footer .btn-primary");
+
+ assert.strictEqual(
+ target.querySelector(".o_data_row:first-child .o_data_cell").textContent,
+ ""
+ );
+ assert.strictEqual(
+ target.querySelector(".o_data_row:nth-child(2) .o_data_cell").textContent,
+ ""
+ );
+ }
+ );
+
QUnit.test("DateField remove value", async function (assert) {
await makeView({
type: "form",
diff --git a/addons/web/static/tests/views/fields/datetime_field_tests.js b/addons/web/static/tests/views/fields/datetime_field_tests.js
index e0a6f1d0718..1f6b8ef478b 100644
--- a/addons/web/static/tests/views/fields/datetime_field_tests.js
+++ b/addons/web/static/tests/views/fields/datetime_field_tests.js
@@ -359,12 +359,49 @@ QUnit.module("Fields", (hooks) => {
"10/02/2019 09:00:00"
);
assert.strictEqual(
- target.querySelector(".o_data_row:nth-child(1) .o_data_cell").textContent,
+ target.querySelector(".o_data_row:nth-child(2) .o_data_cell").textContent,
"10/02/2019 09:00:00"
);
}
);
+ QUnit.test(
+ "multi edition of DatetimeField in list view: clear date in input",
+ async function (assert) {
+ serverData.models.partner.records[1].datetime = "2017-02-08 10:00:00";
+
+ await makeView({
+ serverData,
+ type: "list",
+ resModel: "partner",
+ arch: '',
+ });
+
+ const rows = target.querySelectorAll(".o_data_row");
+
+ // select two records and edit them
+ await click(rows[0], ".o_list_record_selector input");
+ await click(rows[1], ".o_list_record_selector input");
+
+ await click(rows[0], ".o_data_cell");
+
+ assert.containsOnce(target, "input.o_datepicker_input");
+ await editInput(target, ".o_datepicker_input", "");
+
+ assert.containsOnce(document.body, ".modal");
+ await click(target, ".modal .modal-footer .btn-primary");
+
+ assert.strictEqual(
+ target.querySelector(".o_data_row:first-child .o_data_cell").textContent,
+ ""
+ );
+ assert.strictEqual(
+ target.querySelector(".o_data_row:nth-child(2) .o_data_cell").textContent,
+ ""
+ );
+ }
+ );
+
QUnit.test("DatetimeField remove value", async function (assert) {
assert.expect(4);