From ecd96fc0a69c6eda79886a2ae3ef505966ee5165 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Wed, 16 Apr 2014 16:35:48 +0200 Subject: [PATCH] [ADD] web: in view form, when opening a many2one, use get_formview_action method of orm to get the window action to open bzr revid: dle@openerp.com-20140416143548-i5l6kl00ixgd9x4w --- addons/web/static/src/js/view_form.js | 44 ++++++++++++++------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index dc751b56ced..f1323d01382 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -3451,20 +3451,25 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc return; } var pop = new instance.web.form.FormOpenPopup(self); - pop.show_element( - self.field.relation, - self.get("value"), - self.build_context(), - { - title: _t("Open: ") + self.string - } - ); - pop.on('write_completed', self, function(){ - self.display_value = {}; - self.display_value_backup = {}; - self.render_value(); - self.focus(); - self.view.do_onchange(self); + var context = self.build_context().eval(); + var model_obj = new instance.web.Model(self.field.relation); + model_obj.call('get_formview_id', [self.get("value"), context]).then(function(view_id){ + pop.show_element( + self.field.relation, + self.get("value"), + self.build_context(), + { + title: _t("Open: ") + self.string, + view_id: view_id + } + ); + pop.on('write_completed', self, function(){ + self.display_value = {}; + self.display_value_backup = {}; + self.render_value(); + self.focus(); + self.view.do_onchange(self); + }); }); }); @@ -3660,13 +3665,10 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc .html(link); if (! this.options.no_open) $link.click(function () { - self.do_action({ - type: 'ir.actions.act_window', - res_model: self.field.relation, - res_id: self.get("value"), - views: [[false, 'form']], - target: 'current', - context: self.build_context().eval(), + var context = self.build_context().eval(); + var model_obj = new instance.web.Model(self.field.relation); + model_obj.call('get_formview_action', [self.get("value"), context]).then(function(action){ + self.do_action(action); }); return false; });