Merge lp:~openerp-dev/openobject-client-web/6.0-opw-603776-msh into lp:openobject-client-web

Proposed by Mohammed Shekha(Open ERP)
Status: Needs review
Proposed branch: lp:~openerp-dev/openobject-client-web/6.0-opw-603776-msh
Merge into: lp:openobject-client-web
Diff against target: 29 lines (+4/-4)
2 files modified
addons/openerp/controllers/openm2o.py (+2/-0)
addons/openerp/static/javascript/openerp/openerp.base.js (+2/-4)
To merge this branch: bzr merge lp:~openerp-dev/openobject-client-web/6.0-opw-603776-msh
Reviewer Review Type Date Requested Status
Xavier ALT Pending
Martin Trigaux (OpenERP) Pending
Naresh(OpenERP) Pending
Review via email: mp+207597@code.launchpad.net

Description of the change

Hello,

Fixed the issue of openm2o with default one2many value doesn't save default one2many record, also onchange not fired for default values.

Demo: To produce this issue, you need to have a mnay2one object which has one2many and value of one2many comes from onchange which is fired by default_get value.
Scenario in current OpenERP module: Accounting -> Bank & Cash -> Bank Statement -> Transactions -> Add one2many record -> in Payment field press F1 -> Check m2o object will have one2many field but it will not load onchange value which is coming through partner_id change, when do change explicitly then one2many will have some value.

Also after getting one2many default record you will not be able to save it or delete it.

Issue is due to code of hashchange to trigger one2many if it is not not saved yet, there is an use of parent prefix, yes o2m will have parent prefix but m2o will not have parent prefix.

Also default_o2m is not added in data while saving o2m record.

Thanks.

Thanks.

To post a comment you must log in.

Unmerged revisions

4919. By Mohammed Shekha(OpenERP)<email address hidden>

[FIX]Fixed the issue of openm2o with default one2many value doesn't save default one2many record, also onchange not fired for default values.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'addons/openerp/controllers/openm2o.py'
2--- addons/openerp/controllers/openm2o.py 2011-01-17 11:57:11 +0000
3+++ addons/openerp/controllers/openm2o.py 2014-02-21 06:29:08 +0000
4@@ -55,6 +55,8 @@
5 proxy = rpc.RPCProxy(params.model)
6
7 if not params.id:
8+ if params.default_o2m:
9+ data.update(params.default_o2m)
10 id = proxy.create(data, params.context)
11 params.ids = (params.ids or []) + [int(id)]
12 params.id = int(id)
13
14=== modified file 'addons/openerp/static/javascript/openerp/openerp.base.js'
15--- addons/openerp/static/javascript/openerp/openerp.base.js 2012-10-29 12:56:43 +0000
16+++ addons/openerp/static/javascript/openerp/openerp.base.js 2014-02-21 06:29:08 +0000
17@@ -300,10 +300,8 @@
18 if (jQuery('[callback]').length){
19 name = jQuery('[callback]').first().attr('id');
20 var parent_prefix = name.indexOf('/') > -1 ? name.slice(0, name.lastIndexOf('/') + 1) : '';
21- if (parent_prefix != ''){
22- if(jQuery(idSelector(parent_prefix + '_terp_id')).val() == 'False'){
23- initial_onchange_triggers();
24- }
25+ if(jQuery(idSelector(parent_prefix + '_terp_id')).val() == 'False'){
26+ initial_onchange_triggers();
27 }
28 }
29 return;