From b6c688caa2bad1706443a7f950a268723b70e508 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Tue, 15 Dec 2020 15:08:30 +0000 Subject: [PATCH] [FIX] core: accounting groups field dropped from users' form view To reproduce this issue, install the module "Accounting" in English, then switch language to Dutch, and go to a user's form. The selection field for accounting groups is missing from the users' form view. The source of the bug is the special case introduced for accounting groups in d8c5cc1335806d379134866262840fcafb05b643. The groups in that selection field are not totally ordered, and the non-ordered elements are de facto ordered by name, which is a translated field! In the example above, the English version uses the field name `sel_groups_22_23_24_25` while the Dutch version uses the field name `sel_groups_23_22_24_25`. Because the first one is used in the form view, and it is not found in the model's documented fields (which uses the second one), the field is discarded from the view. The patch is much simpler than former versions, which are constrained by the stable branch policy. We simply normalize the selection field's name by ordering the group ids used in the name. OPW-2394209 closes odoo/odoo#63462 X-original-commit: 399b4f1ceb31f560ce534ee8d9605ca43733f68c Signed-off-by: Raphael Collet (rco) Co-authored-by: Nasreddin (bon) --- odoo/addons/base/models/res_users.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py index 0ab67bd1387..c352ff08f20 100644 --- a/odoo/addons/base/models/res_users.py +++ b/odoo/addons/base/models/res_users.py @@ -56,7 +56,7 @@ def name_boolean_group(id): return 'in_group_' + str(id) def name_selection_groups(ids): - return 'sel_groups_' + '_'.join(str(it) for it in ids) + return 'sel_groups_' + '_'.join(str(it) for it in sorted(ids)) def is_boolean_group(name): return name.startswith('in_group_')