diff --git a/CHANGELOG b/CHANGELOG index d8dab1156f..746239b64d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Use tuple in Dict value instead of list * Do not set record name on title of report get_email * Add node to id of status * Use ImmutableDict for Transaction context diff --git a/trytond/model/fields/dict.py b/trytond/model/fields/dict.py index 7fd26241b3..758956cd9f 100644 --- a/trytond/model/fields/dict.py +++ b/trytond/model/fields/dict.py @@ -42,6 +42,9 @@ class Dict(Field): # If stored as JSON conversion is done on backend if isinstance(data, str): data = json.loads(data, object_hook=JSONDecoder()) + for key, val in data.items(): + if isinstance(val, list): + data[key] = tuple(val) dicts[value['id']] = ImmutableDict(data) return dicts diff --git a/trytond/tests/test_field_dict.py b/trytond/tests/test_field_dict.py index 280c50ccf5..948947e955 100644 --- a/trytond/tests/test_field_dict.py +++ b/trytond/tests/test_field_dict.py @@ -150,7 +150,7 @@ class FieldDictTestCase(unittest.TestCase): 'dico': {'countries': ['fr', 'be']}, }]) - self.assertDictEqual(dict_.dico, {'countries': ['be', 'fr']}) + self.assertDictEqual(dict_.dico, {'countries': ('be', 'fr')}) @with_transaction() def test_invalid_selection_schema(self):