From 158d1384d7d37d8a5a5d3a8c121dbabd7d4d50c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20=C3=89vrard?= Date: Mon, 3 Apr 2023 17:02:51 +0200 Subject: [PATCH] Handle string value set from domain inversion in MultiSelection fields Closes #12181 (grafted from cdca201f1dd7c8a25de757ba93b9ff883aa9bac3) --HG-- branch : 6.0 --- sao/src/model.js | 6 ++++++ tryton/tryton/gui/window/view_form/model/field.py | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/sao/src/model.js b/sao/src/model.js index 46d52a9f5a..c982d50e76 100644 --- a/sao/src/model.js +++ b/sao/src/model.js @@ -1792,6 +1792,12 @@ return value; }, set_client: function(record, value, force_change) { + if (value === null) { + value = []; + } + if (typeof(value) == 'string') { + value = [value]; + } if (value) { value = value.slice().sort(); } diff --git a/tryton/tryton/gui/window/view_form/model/field.py b/tryton/tryton/gui/window/view_form/model/field.py index 71bf228152..656b843e02 100644 --- a/tryton/tryton/gui/window/view_form/model/field.py +++ b/tryton/tryton/gui/window/view_form/model/field.py @@ -243,6 +243,10 @@ class MultiSelectionField(Field): return value def set_client(self, record, value, force_change=False): + if value is None: + value = [] + if isinstance(value, str): + value = [value] if value: value = sorted(value) super().set_client(record, value, force_change=force_change)