From 5c014979c22adfa32e8aa2bbe186f24e85bcab84 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 21 Nov 2011 17:34:41 +0100 Subject: [PATCH] [IMP] Ensure form is saved when xmo's protocol for sidebar context is used bzr revid: fme@openerp.com-20111121163441-y200rwxk4g2jtzuj --- addons/web/static/src/js/view_form.js | 3 +-- addons/web/static/src/js/views.js | 26 ++++++++++---------------- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 36e5491dad1..8a58dec13ec 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -580,8 +580,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# return true; }, sidebar_context: function () { - // TODO: ensure form is saved? - return $.Deferred().resolve(this.get_fields_values()).promise(); + return this.do_save().pipe($.proxy(this, 'get_fields_values')); } }); openerp.web.FormDialog = openerp.web.Dialog.extend({ diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index e119f2deabe..5a26ef58b03 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -679,13 +679,7 @@ session.web.Sidebar = session.web.Widget.extend({ item.callback.apply(self, [item]); } if (item.action) { - if (self.widget_parent instanceof session.web.FormView) { - self.widget_parent.do_save(function() { - self.on_item_action_clicked(item); - }); - } else { - self.on_item_action_clicked(item); - } + self.on_item_action_clicked(item); } return false; }); @@ -699,16 +693,16 @@ session.web.Sidebar = session.web.Widget.extend({ }, on_item_action_clicked: function(item) { var self = this; - var ids = self.widget_parent.get_selected_ids(); - if (ids.length == 0) { - //TODO: make prettier warning? - $("
").text(_t("You must choose at least one record.")).dialog({ - title: _t("Warning"), - modal: true - }); - return false; - } self.widget_parent.sidebar_context().then(function (context) { + var ids = self.widget_parent.get_selected_ids(); + if (ids.length == 0) { + //TODO: make prettier warning? + $("
").text(_t("You must choose at least one record.")).dialog({ + title: _t("Warning"), + modal: true + }); + return false; + } var additional_context = _.extend({ active_id: ids[0], active_ids: ids,