Merge lp:~openerp-dev/openerp-web/7.0-on_change-fix-vme into lp:openerp-web/7.0

Proposed by Vidhin Mehta (OpenERP)
Status: Merged
Merge reported by: Fabien Meghazi (OpenERP)
Merged at revision: not available
Proposed branch: lp:~openerp-dev/openerp-web/7.0-on_change-fix-vme
Merge into: lp:openerp-web/7.0
Diff against target: 30 lines (+8/-1)
2 files modified
addons/web/static/src/js/data.js (+7/-0)
addons/web/static/src/js/view_form.js (+1/-1)
To merge this branch: bzr merge lp:~openerp-dev/openerp-web/7.0-on_change-fix-vme
Reviewer Review Type Date Requested Status
OpenERP Core Team Pending
Review via email: mp+144223@code.launchpad.net

Description of the change

Web client sents wrong id on on_change.

To Reproduce :
    video: https://docs.google.com/open?id=0By4GWTWr6HDNQXJxNEFCaTZLSnc

Solution :
    Check if *id* database's id or not.

To post a comment you must log in.

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/data.js'
2--- addons/web/static/src/js/data.js 2012-11-28 15:10:44 +0000
3+++ addons/web/static/src/js/data.js 2013-01-22 06:39:22 +0000
4@@ -616,6 +616,13 @@
5 return results;
6 });
7 },
8+ is_pure_id: function(id){
9+ truth_test = function(str,starts){
10+ if(_.isNumber(str))return true;
11+ return !(str.length >= starts.length && str.slice(0, starts.length) === starts);
12+ }
13+ return (_.isNull(id) || _.isUndefined(id))?false:truth_test(id,"one2many_v_id_")
14+ }
15 });
16
17 instance.web.DataSetStatic = instance.web.DataSet.extend({
18
19=== modified file 'addons/web/static/src/js/view_form.js'
20--- addons/web/static/src/js/view_form.js 2013-01-07 16:18:07 +0000
21+++ addons/web/static/src/js/view_form.js 2013-01-22 06:39:22 +0000
22@@ -511,7 +511,7 @@
23 var on_change = widget.node.attrs.on_change;
24 if (on_change) {
25 var change_spec = self.parse_on_change(on_change, widget);
26- var id = [self.datarecord.id == null ? [] : [self.datarecord.id]];
27+ var id = [self.dataset.is_pure_id(self.datarecord.id) ? [self.datarecord.id]: []];
28 def = new instance.web.Model(self.dataset.model).call(
29 change_spec.method, id.concat(change_spec.args));
30 } else {