diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index aab0e42c318..09406b43711 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -1080,7 +1080,6 @@ var AbstractFieldBinary = AbstractField.extend({ }, 'click .o_clear_file_button': 'on_clear', }), - context: { bin_size: true }, init: function (parent, name, record) { this._super.apply(this, arguments); this.fields = record.fields; diff --git a/addons/web/static/src/js/services/data_manager.js b/addons/web/static/src/js/services/data_manager.js index 6e39ede94e8..9b11f3a54a7 100644 --- a/addons/web/static/src/js/services/data_manager.js +++ b/addons/web/static/src/js/services/data_manager.js @@ -387,10 +387,6 @@ return core.Class.extend({ attrs.fieldDependencies = attrs.Widget.prototype.fieldDependencies; } - if (attrs.Widget.prototype.context) { - attrs.context = attrs.Widget.prototype.context; - } - return attrs; }, /** diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index a6979776c99..d7fbee2b30d 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -1854,7 +1854,7 @@ var BasicModel = AbstractModel.extend({ model: record.model, method: 'read', args: [[record.res_id], fieldNames], - context: record.getContext(), + context: _.extend({}, record.getContext(), {bin_size: true}), }) .then(function (result) { if (result.length === 0) { @@ -3094,13 +3094,6 @@ var BasicModel = AbstractModel.extend({ // datapoint context is extended by fields widgets var context = _.extend({}, params.context); - if (params.fieldsInfo && params.viewType) { - _.each(params.fieldsInfo[params.viewType], function (field) { - if (field.context) { - _.extend(context, field.context); - } - }); - } var dataPoint = { _cache: type === 'list' ? {} : undefined, diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js index 374912169e6..2eab2b421b5 100644 --- a/addons/web/static/tests/fields/relational_fields_tests.js +++ b/addons/web/static/tests/fields/relational_fields_tests.js @@ -6916,6 +6916,7 @@ QUnit.module('relational_fields', { if (args.method === 'read' && args.model === 'partner') { assert.deepEqual(args.kwargs.context, { active_field: 2, + bin_size: true, someKey: 'some value', }, "sent context should be correct"); } @@ -9250,7 +9251,7 @@ QUnit.module('relational_fields', { '', mockRPC: function (route, args) { if (args.method === 'read' && args.model === 'partner_type') { - assert.deepEqual(args.kwargs.context, {take: 'five'}, + assert.deepEqual(args.kwargs.context.take, 'five', 'The context should be passed to the RPC'); } return this._super.apply(this, arguments); diff --git a/addons/web/static/tests/views/basic_model_tests.js b/addons/web/static/tests/views/basic_model_tests.js index 72061f326e0..492dfd4224c 100644 --- a/addons/web/static/tests/views/basic_model_tests.js +++ b/addons/web/static/tests/views/basic_model_tests.js @@ -74,6 +74,7 @@ QUnit.module('Views', { mockRPC: function (route, args) { assert.deepEqual(args.kwargs.context, { active_field: 2, + bin_size: true, someKey: 'some value', }, "should have sent the correct context"); return this._super.apply(this, arguments); diff --git a/addons/web/static/tests/views/form_tests.js b/addons/web/static/tests/views/form_tests.js index 06cae68fb86..672c7a7151d 100644 --- a/addons/web/static/tests/views/form_tests.js +++ b/addons/web/static/tests/views/form_tests.js @@ -199,7 +199,7 @@ QUnit.module('Views', { }); QUnit.test('only necessary fields are fetched with correct context', function (assert) { - assert.expect(1); + assert.expect(2); var form = createView({ View: FormView, @@ -214,6 +214,8 @@ QUnit.module('Views', { // field, not sure why. Maybe this test should be modified. assert.deepEqual(args.args[1], ["foo", "display_name"], "should only fetch requested fields"); + assert.deepEqual(args.kwargs.context, {bin_size: true}, + "bin_size should always be in the context"); return this._super(route, args); } });