diff --git a/issue12473.diff b/issue12473.diff index d043482..3fafefe 100644 --- a/issue12473.diff +++ b/issue12473.diff @@ -14,121 +14,6 @@ index bfad1dc7382cb9fd2c17bef77da699ed36869d3e_cHJvdGV1cy9wcm90ZXVzL19faW5pdF9fL values = {} fieldnames = set(names) -diff --git a/tryton/sao/src/model.js b/sao/src/model.js -index bfad1dc7382cb9fd2c17bef77da699ed36869d3e_c2FvL3NyYy9tb2RlbC5qcw==..bf7072adc76db4e62ec3fbde7efde17e7bbd630d_c2FvL3NyYy9tb2RlbC5qcw== 100644 ---- a/tryton/sao/src/model.js -+++ b/tryton/sao/src/model.js -@@ -1071,5 +1071,5 @@ - [values], this.get_context(), false)); - } - } else { -- changes = this.model.execute( -+ changes = [this.model.execute( - 'on_change', -@@ -1075,5 +1075,5 @@ - 'on_change', -- [values, fieldnames], this.get_context(), false); -+ [values, fieldnames], this.get_context(), false)]; - } - } catch (e) { - return; -@@ -1129,9 +1129,9 @@ - delete this._values[fieldname + '.']; - } - } -- var result; -+ var changed; - fieldnames = Object.keys(fieldnames); - if (fieldnames.length) { - try { - if ((fieldnames.length == 1) || - (values.id === undefined)) { -@@ -1133,7 +1133,7 @@ - fieldnames = Object.keys(fieldnames); - if (fieldnames.length) { - try { - if ((fieldnames.length == 1) || - (values.id === undefined)) { -- result = {}; -+ changed = {}; - for (const fieldname of fieldnames) { -@@ -1139,6 +1139,8 @@ - for (const fieldname of fieldnames) { -- result[fieldname] = this.model.execute( -- 'on_change_with_' + fieldname, -- [values], this.get_context(), false); -+ changed = jQuery.extend( -+ changed, -+ this.model.execute( -+ 'on_change_with_' + fieldname, -+ [values], this.get_context(), false)); - } - } else { -@@ -1143,9 +1145,9 @@ - } - } else { -- result = this.model.execute( -+ changed = this.model.execute( - 'on_change_with', - [values, fieldnames], this.get_context(), false); - } - } catch (e) { - return; - } -@@ -1146,10 +1148,10 @@ - 'on_change_with', - [values, fieldnames], this.get_context(), false); - } - } catch (e) { - return; - } -- this.set_on_change(result); -+ this.set_on_change(changed); - } - if (!jQuery.isEmptyObject(later)) { - values = {}; -@@ -1164,5 +1166,5 @@ - try { - if ((fieldnames.length == 1) || - (values.id === undefined)) { -- result = {}; -+ changed = {}; - for (const fieldname of fieldnames) { -@@ -1168,6 +1170,8 @@ - for (const fieldname of fieldnames) { -- result[fieldname] = this.model.execute( -- 'on_change_with_' + fieldname, -- [values], this.get_context(), false); -+ changed = jQuery.extend( -+ changed, -+ this.model.execute( -+ 'on_change_with_' + fieldname, -+ [values], this.get_context(), false)); - } - } else { -@@ -1172,9 +1176,9 @@ - } - } else { -- result = this.model.execute( -+ changed = this.model.execute( - 'on_change_with', - [values, fieldnames], this.get_context(), false); - } - } catch (e) { - return; - } -@@ -1175,10 +1179,10 @@ - 'on_change_with', - [values, fieldnames], this.get_context(), false); - } - } catch (e) { - return; - } -- this.set_on_change(result); -+ this.set_on_change(changed); - } - }, - set_on_change: function(values) { diff --git a/tryton/tryton/tryton/gui/window/view_form/model/record.py b/tryton/tryton/gui/window/view_form/model/record.py index bfad1dc7382cb9fd2c17bef77da699ed36869d3e_dHJ5dG9uL3RyeXRvbi9ndWkvd2luZG93L3ZpZXdfZm9ybS9tb2RlbC9yZWNvcmQucHk=..bf7072adc76db4e62ec3fbde7efde17e7bbd630d_dHJ5dG9uL3RyeXRvbi9ndWkvd2luZG93L3ZpZXdfZm9ybS9tb2RlbC9yZWNvcmQucHk= 100644 --- a/tryton/tryton/tryton/gui/window/view_form/model/record.py