diff --git a/addons/web/static/src/views/calendar/calendar_controller.js b/addons/web/static/src/views/calendar/calendar_controller.js index 9f070d14d66..42f9e6ec4f9 100644 --- a/addons/web/static/src/views/calendar/calendar_controller.js +++ b/addons/web/static/src/views/calendar/calendar_controller.js @@ -48,6 +48,8 @@ export class CalendarController extends Component { resModel: this.props.resModel, domain: this.props.domain, fields: this.props.fields, + }, { + onWillStart: this.onWillStartModel.bind(this), }); this.displayName = this.env.config.getDisplayName(); @@ -214,6 +216,9 @@ export class CalendarController extends Component { }, }); } + + onWillStartModel() {} + async setDate(move) { let date = null; switch (move) { diff --git a/addons/web/static/src/views/fields/properties/property_definition.xml b/addons/web/static/src/views/fields/properties/property_definition.xml index 6e76222e914..4bf4315c7d3 100644 --- a/addons/web/static/src/views/fields/properties/property_definition.xml +++ b/addons/web/static/src/views/fields/properties/property_definition.xml @@ -157,7 +157,10 @@ />
- + { datepicker.remove(); } }); + + QUnit.test("check onWillStartModel is exectuted", async (assert) => { + assert.expect(3); + class TestCalendarController extends CalendarController { + setup() { + super.setup(); + onWillRender(() => { + assert.step("render"); + }); + } + onWillStartModel() { + assert.step("onWillStartModel"); + } + } + + viewRegistry.add("test_calendar_view", { + ...calendarView, + Controller: TestCalendarController, + }); + + await makeView({ + type: "calendar", + resModel: "event", + serverData, + arch: ` + + `, + limit: 3, + }); + + assert.verifySteps(["onWillStartModel", "render"]); + }); });