From 9a53b032395aba59cee9a2e5660ebf8d6136b978 Mon Sep 17 00:00:00 2001 From: "Michael Mattiello (mcm)" Date: Fri, 31 Jul 2020 14:16:44 +0000 Subject: [PATCH] [REF] web: optimize a bit calendar view This commit optimizes calendar view especially for year mode - remove/add events has replaced by an event source and refetch. - do not re-render events when navigating date Task: 2193921 --- .../src/js/views/calendar/calendar_renderer.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/js/views/calendar/calendar_renderer.js b/addons/web/static/src/js/views/calendar/calendar_renderer.js index a76c7ce3825..8a2b89d6287 100644 --- a/addons/web/static/src/js/views/calendar/calendar_renderer.js +++ b/addons/web/static/src/js/views/calendar/calendar_renderer.js @@ -505,6 +505,9 @@ return AbstractRenderer.extend({ height: 'parent', unselectAuto: false, dir: _t.database.parameters.direction, + events: (info, successCB) => { + successCB(self.state.data); + }, }, fcOptions); }, /** @@ -605,10 +608,13 @@ return AbstractRenderer.extend({ if (this.target_date !== this.state.target_date.toString()) { this.calendar.gotoDate(moment(this.state.target_date).toDate()); this.target_date = this.state.target_date.toString(); + } else { + // this.calendar.gotoDate already renders events when called + // so render events only when domain changes + this._renderEvents(); } this._unselectEvent(); - this._renderEvents(); // this._scrollToScrollTime(); }, /** @@ -617,10 +623,7 @@ return AbstractRenderer.extend({ * @private */ _renderEvents: function () { - this.calendar.getEvents().forEach(function(event) { - event.remove(); - }); - this.calendar.addEventSource(this.state.data); + this.calendar.refetchEvents(); }, /** * Render all filters