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)