diff --git a/addons/web/static/src/js/views/calendar/calendar_model.js b/addons/web/static/src/js/views/calendar/calendar_model.js index ba34d754bdb..9285034398d 100644 --- a/addons/web/static/src/js/views/calendar/calendar_model.js +++ b/addons/web/static/src/js/views/calendar/calendar_model.js @@ -355,7 +355,9 @@ return AbstractModel.extend({ domain.push([field, 'in', authorizedValues[field]]); } for (var field in avoidValues) { - domain.push([field, 'not in', avoidValues[field]]); + if (avoidValues[field].length > 0) { + domain.push([field, 'not in', avoidValues[field]]); + } } return domain; diff --git a/addons/web/static/tests/views/calendar_tests.js b/addons/web/static/tests/views/calendar_tests.js index a54ba356224..d850af203e1 100644 --- a/addons/web/static/tests/views/calendar_tests.js +++ b/addons/web/static/tests/views/calendar_tests.js @@ -1208,7 +1208,20 @@ QUnit.module('Views', { }); QUnit.test('"all" filter', function (assert) { - assert.expect(3); + assert.expect(6); + + var interval = [ + ["start", "<=", "2016-12-17 23:59:59"], + ["stop", ">=", "2016-12-11 00:00:00"], + ]; + + var domains = [ + interval.concat([["partner_ids", "in", [2,1]]]), + interval.concat([["partner_ids", "in", [1]]]), + interval, + ]; + + var i = 0; var calendar = createView({ View: CalendarView, @@ -1230,6 +1243,13 @@ QUnit.module('Views', { viewOptions: { initialDate: initialDate, }, + mockRPC: function (route, args) { + if (args.method === 'search_read' && args.model === 'event') { + assert.deepEqual(args.kwargs.domain, domains[i]); + i++; + } + return this._super.apply(this, arguments); + }, }); assert.strictEqual(calendar.$('.fc-event').length, 9,