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
=== modified file 'addons/web/static/src/js/data.js'
--- addons/web/static/src/js/data.js 2012-11-28 15:10:44 +0000
+++ addons/web/static/src/js/data.js 2013-01-22 06:39:22 +0000
@@ -616,6 +616,13 @@
616 return results;616 return results;
617 });617 });
618 },618 },
619 is_pure_id: function(id){
620 truth_test = function(str,starts){
621 if(_.isNumber(str))return true;
622 return !(str.length >= starts.length && str.slice(0, starts.length) === starts);
623 }
624 return (_.isNull(id) || _.isUndefined(id))?false:truth_test(id,"one2many_v_id_")
625 }
619});626});
620627
621instance.web.DataSetStatic = instance.web.DataSet.extend({628instance.web.DataSetStatic = instance.web.DataSet.extend({
622629
=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js 2013-01-07 16:18:07 +0000
+++ addons/web/static/src/js/view_form.js 2013-01-22 06:39:22 +0000
@@ -511,7 +511,7 @@
511 var on_change = widget.node.attrs.on_change;511 var on_change = widget.node.attrs.on_change;
512 if (on_change) {512 if (on_change) {
513 var change_spec = self.parse_on_change(on_change, widget);513 var change_spec = self.parse_on_change(on_change, widget);
514 var id = [self.datarecord.id == null ? [] : [self.datarecord.id]];514 var id = [self.dataset.is_pure_id(self.datarecord.id) ? [self.datarecord.id]: []];
515 def = new instance.web.Model(self.dataset.model).call(515 def = new instance.web.Model(self.dataset.model).call(
516 change_spec.method, id.concat(change_spec.args));516 change_spec.method, id.concat(change_spec.args));
517 } else {517 } else {