Merge PR #1769 into 12.0

Signed-off-by pedrobaeza
pull/1777/head
OCA-git-bot 2021-01-02 15:15:51 +00:00
commit 82a87ea8a0
2 changed files with 26 additions and 16 deletions

View File

@ -161,7 +161,7 @@ odoo.define("web_widget_one2many_product_picker.One2ManyProductPickerRenderer",
false,
true,
search_record_index
)
)[0]
);
}
}
@ -240,7 +240,7 @@ odoo.define("web_widget_one2many_product_picker.One2ManyProductPickerRenderer",
// Need add a new one?
if (!exists && search_record_index !== -1) {
var new_search_record = _.extend({}, search_record, {__id: state.id});
defs.push(this.appendSearchRecords([new_search_record], false, true, search_record_index));
defs.push(this.appendSearchRecords([new_search_record], false, true, search_record_index)[0]);
}
}
this.widgets = _.compact(this.widgets);
@ -261,7 +261,8 @@ odoo.define("web_widget_one2many_product_picker.One2ManyProductPickerRenderer",
this.$extraButtonsContainer = $(qweb.render("One2ManyProductPicker.ExtraButtons"));
this.$btnLoadMore = this.$extraButtonsContainer.find("#productPickerLoadMore");
return $.Deferred(function (d) {
self.appendSearchRecords(self.search_data, true).then(function () {
var defs = self.appendSearchRecords(self.search_data, true);
defs[0].then(function () {
_.invoke(oldWidgets, "destroy");
self.$el.empty();
self.$el.append(self.$recordsContainer);
@ -270,7 +271,7 @@ odoo.define("web_widget_one2many_product_picker.One2ManyProductPickerRenderer",
if (self._isInDom) {
_.invoke(self.widgets, "on_attach_callback");
}
d.resolve();
d.resolve(defs[1]);
});
});
},
@ -405,7 +406,7 @@ odoo.define("web_widget_one2many_product_picker.One2ManyProductPickerRenderer",
* @param {Boolean} no_attach_widgets
* @param {Boolean} no_process_records
* @param {Number} position
* @returns {Deferred}
* @returns {Array[Deferred]}
*/
appendSearchRecords: function (search_records, no_attach_widgets, no_process_records, position) {
var self = this;
@ -418,15 +419,17 @@ odoo.define("web_widget_one2many_product_picker.One2ManyProductPickerRenderer",
delete this.defs;
var defsVirtualState = this.defsVirtualState;
delete this.defsVirtualState;
$.when.apply($, defsVirtualState).then(function () {
self.trigger_up("loading_records", {finished:true});
});
return $.when.apply($, defs).then(function () {
if (!no_attach_widgets && self._isInDom) {
var new_widgets = self.widgets.slice(cur_widget_index);
_.invoke(new_widgets, "on_attach_callback");
}
});
return [
$.when.apply($, defs).then(function () {
if (!no_attach_widgets && self._isInDom) {
var new_widgets = self.widgets.slice(cur_widget_index);
_.invoke(new_widgets, "on_attach_callback");
}
}),
$.when.apply($, defsVirtualState).then(function () {
self.trigger_up("loading_records", {finished:true});
}),
];
},
/**

View File

@ -270,7 +270,11 @@ odoo.define("web_widget_one2many_product_picker.FieldOne2ManyProductPicker", fun
return $.Deferred(function (d) {
self._getSearchRecords().then(function () {
self.renderer.$el.scrollTop(0);
self.renderer._renderView().then(d.resolve);
self.renderer._renderView().then(function (virtualStateDefs) {
virtualStateDefs.then(function () {
d.resolve();
});
});
});
});
},
@ -547,8 +551,11 @@ odoo.define("web_widget_one2many_product_picker.FieldOne2ManyProductPicker", fun
* @private
*/
_onClickSearchEraser: function () {
var self = this;
this._clearSearchInput();
this.doRenderSearchRecords();
this.doRenderSearchRecords().then(function () {
self.$searchInput.focus();
});
},
/**