Merge lp:~openerp-dev/openerp-web/trunk-many2oneview-dle into lp:openerp-web

Proposed by Denis Ledoux (OpenERP)
Status: Work in progress
Proposed branch: lp:~openerp-dev/openerp-web/trunk-many2oneview-dle
Merge into: lp:openerp-web
Diff against target: 61 lines (+23/-21)
1 file modified
addons/web/static/src/js/view_form.js (+23/-21)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/trunk-many2oneview-dle
Reviewer Review Type Date Requested Status
OpenERP R&D Web Team Pending
Review via email: mp+207243@code.launchpad.net
To post a comment you must log in.

Unmerged revisions

3940. By Denis Ledoux (OpenERP)

[ADD] web: many2one links using the new orm methods get_formview_* to open the right view depending on model specifications

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/web/static/src/js/view_form.js'
2--- addons/web/static/src/js/view_form.js 2014-01-31 00:52:02 +0000
3+++ addons/web/static/src/js/view_form.js 2014-02-19 16:28:25 +0000
4@@ -3283,20 +3283,25 @@
5 return;
6 }
7 var pop = new instance.web.form.FormOpenPopup(self);
8- pop.show_element(
9- self.field.relation,
10- self.get("value"),
11- self.build_context(),
12- {
13- title: _t("Open: ") + self.string
14- }
15- );
16- pop.on('write_completed', self, function(){
17- self.display_value = {};
18- self.display_value_backup = {};
19- self.render_value();
20- self.focus();
21- self.view.do_onchange(self);
22+ var context = self.build_context().eval();
23+ var model_obj = new instance.web.Model(self.field.relation);
24+ model_obj.call('get_formview_id', [self.get("value"), context]).then(function(view_id){
25+ pop.show_element(
26+ self.field.relation,
27+ self.get("value"),
28+ self.build_context(),
29+ {
30+ title: _t("Open: ") + self.string,
31+ view_id: view_id
32+ }
33+ );
34+ pop.on('write_completed', self, function(){
35+ self.display_value = {};
36+ self.display_value_backup = {};
37+ self.render_value();
38+ self.focus();
39+ self.view.do_onchange(self);
40+ });
41 });
42 });
43
44@@ -3492,13 +3497,10 @@
45 .html(link);
46 if (! this.options.no_open)
47 $link.click(function () {
48- self.do_action({
49- type: 'ir.actions.act_window',
50- res_model: self.field.relation,
51- res_id: self.get("value"),
52- views: [[false, 'form']],
53- target: 'current',
54- context: self.build_context().eval(),
55+ var context = self.build_context().eval();
56+ var model_obj = new instance.web.Model(self.field.relation);
57+ model_obj.call('get_formview_action', [self.get("value"), context]).then(function(action){
58+ self.do_action(action);
59 });
60 return false;
61 });