[fix] some bugs with m2o & buttons while creation

bzr revid: nicolas.vanhoren@openerp.com-20111010095754-jfxvgtqvrfk3xqbn
This commit is contained in:
niv-openerp 2011-10-10 11:57:54 +02:00
parent 5e417f203a
commit cb46665b01
2 changed files with 14 additions and 8 deletions

View File

@ -2232,13 +2232,17 @@ openerp.web.form.SelectCreatePopup = openerp.web.OldWidget.extend(/** @lends ope
this.dataset.create_function = function() {
return self.options.create_function.apply(null, arguments).then(function(r) {
self.created_elements.push(r.result);
if (self._created) {
self._created.resolve();
if (self._written) {
self._written.resolve();
}
});
}
this.dataset.write_function = function() {
return self.write_row.apply(null, arguments);
return self.write_row.apply(self, arguments).then(function() {
if (self._written) {
self._written.resolve();
}
});
}
this.dataset.parent_view = this.options.parent_view;
this.dataset.on_default_get.add(this.on_default_get);
@ -2345,16 +2349,16 @@ openerp.web.form.SelectCreatePopup = openerp.web.OldWidget.extend(/** @lends ope
$buttons.html(QWeb.render("SelectCreatePopup.form.buttons", {widget:self}));
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save-new");
$nbutton.click(function() {
self._created = $.Deferred().then(function() {
self._created = undefined;
self._written = $.Deferred().then(function() {
self._written = undefined;
self.view_form.on_button_new();
});
self.view_form.do_save();
});
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save");
$nbutton.click(function() {
self._created = $.Deferred().then(function() {
self._created = undefined;
self._written = $.Deferred().then(function() {
self._written = undefined;
self.check_exit();
});
self.view_form.do_save();

View File

@ -771,7 +771,9 @@ db.web.View = db.web.Widget.extend(/** @lends db.web.View# */{
var self = this;
var result_handler = function () {
if (on_closed) { on_closed.apply(null, arguments); }
return self.widget_parent.on_action_executed.apply(null, arguments);
if (self.widget_parent && self.widget_parent.on_action_executed) {
return self.widget_parent.on_action_executed.apply(null, arguments);
}
};
var handler = function (r) {
var action = r.result;