[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() { this.dataset.create_function = function() {
return self.options.create_function.apply(null, arguments).then(function(r) { return self.options.create_function.apply(null, arguments).then(function(r) {
self.created_elements.push(r.result); self.created_elements.push(r.result);
if (self._created) { if (self._written) {
self._created.resolve(); self._written.resolve();
} }
}); });
} }
this.dataset.write_function = function() { 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.parent_view = this.options.parent_view;
this.dataset.on_default_get.add(this.on_default_get); 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})); $buttons.html(QWeb.render("SelectCreatePopup.form.buttons", {widget:self}));
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save-new"); var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save-new");
$nbutton.click(function() { $nbutton.click(function() {
self._created = $.Deferred().then(function() { self._written = $.Deferred().then(function() {
self._created = undefined; self._written = undefined;
self.view_form.on_button_new(); self.view_form.on_button_new();
}); });
self.view_form.do_save(); self.view_form.do_save();
}); });
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save"); var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save");
$nbutton.click(function() { $nbutton.click(function() {
self._created = $.Deferred().then(function() { self._written = $.Deferred().then(function() {
self._created = undefined; self._written = undefined;
self.check_exit(); self.check_exit();
}); });
self.view_form.do_save(); 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 self = this;
var result_handler = function () { var result_handler = function () {
if (on_closed) { on_closed.apply(null, arguments); } 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 handler = function (r) {
var action = r.result; var action = r.result;