summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2017-10-12 09:46:55 +0200
committerGéry Debongnie <ged@odoo.com>2017-10-12 16:15:06 +0200
commitd4cf4374d1baa529bb651bb3cc32e9db140963a8 (patch)
tree86e6e378793f4acd2c8b402eae3b9c45864e8e2b
parent66b692a5eb2350a8c22e9be0b05f08b8b7f6ae9c (diff)
[FIX] web: allow widget many2many_tags to display more than 40 records
Before this commit, the widget many2many_tags only loaded the first 40 records. This was difficult to see, because there were not so many views with a lot of tags.
-rw-r--r--addons/web/static/src/js/views/abstract_view.js3
-rw-r--r--addons/web/static/tests/fields/relational_fields_tests.js23
2 files changed, 25 insertions, 1 deletions
diff --git a/addons/web/static/src/js/views/abstract_view.js b/addons/web/static/src/js/views/abstract_view.js
index 8eedc4d2c2a..240ce7707a9 100644
--- a/addons/web/static/src/js/views/abstract_view.js
+++ b/addons/web/static/src/js/views/abstract_view.js
@@ -253,7 +253,8 @@ var AbstractView = Class.extend({
return;
}
- attrs.limit = attrs.mode === "tree" ? 80 : 40;
+ attrs.limit = attrs.mode === "tree" ? 80 :
+ (attrs.widget === 'many2many_tags' ? 1000 : 40);
if (attrs.Widget.prototype.useSubview && !attrs.__no_fetch && !attrs.views[attrs.mode]) {
var context = {};
diff --git a/addons/web/static/tests/fields/relational_fields_tests.js b/addons/web/static/tests/fields/relational_fields_tests.js
index bead59b5cd3..5d5e22e386e 100644
--- a/addons/web/static/tests/fields/relational_fields_tests.js
+++ b/addons/web/static/tests/fields/relational_fields_tests.js
@@ -7451,6 +7451,29 @@ QUnit.module('relational_fields', {
form.destroy();
});
+ QUnit.test('many2many_tags can load more than 40 records', function (assert) {
+ assert.expect(1);
+
+ this.data.partner.fields.partner_ids = {string: "Partner", type: "many2many", relation: 'partner'};
+ this.data.partner.records[0].partner_ids = [];
+ for (var i = 15; i < 115; i++) {
+ this.data.partner.records.push({id: i, display_name: 'walter' + i});
+ this.data.partner.records[0].partner_ids.push(i);
+ }
+ var form = createView({
+ View: FormView,
+ model: 'partner',
+ data: this.data,
+ arch: '<form string="Partners">' +
+ '<field name="partner_ids" widget="many2many_tags"/>' +
+ '</form>',
+ res_id: 1,
+ });
+ assert.strictEqual(form.$('.o_field_widget[name="partner_ids"] > span').length, 100,
+ 'should have rendered 100 tags');
+ form.destroy();
+ });
+
QUnit.test('field many2many_tags keeps focus when being edited', function (assert) {
assert.expect(7);