diff --git a/spp_approval/views/approval_definition_views_cel.xml b/spp_approval/views/approval_definition_views_cel.xml index f0e7a06e..12664451 100644 --- a/spp_approval/views/approval_definition_views_cel.xml +++ b/spp_approval/views/approval_definition_views_cel.xml @@ -15,7 +15,7 @@ @@ -42,7 +42,7 @@ diff --git a/spp_hide_menus_base/models/hide_menu.py b/spp_hide_menus_base/models/hide_menu.py index eb5fda3a..12350f6f 100644 --- a/spp_hide_menus_base/models/hide_menu.py +++ b/spp_hide_menus_base/models/hide_menu.py @@ -40,6 +40,17 @@ def hide_menu(self, menu_id=None): ) rec.state = "hide" + def _reapply_hide(self): + """Re-apply hiding when module upgrade reset group_ids via XML.""" + try: + hide_group = self.env.ref("spp_hide_menus_base.group_hide_menus_user") + except ValueError: + hide_group = self.env.ref("spp_hide_menus_base.group_menu_visibility") + for rec in self: + if rec.menu_id and hide_group not in rec.menu_id.group_ids: + rec.default_group_ids = rec.menu_id.group_ids + rec.menu_id.write({"group_ids": [Command.set([hide_group.id])]}) + def show_menu(self): for rec in self: if rec.state == "hide" and rec.menu_id: diff --git a/spp_hide_menus_base/models/ir_module_module.py b/spp_hide_menus_base/models/ir_module_module.py index e760c072..e493842c 100644 --- a/spp_hide_menus_base/models/ir_module_module.py +++ b/spp_hide_menus_base/models/ir_module_module.py @@ -79,6 +79,10 @@ def hide_menus(self): hidden_menu.hide_menu() elif hidden_menus.state == "show": hidden_menus.hide_menu() + elif hidden_menus.state == "hide": + # Module upgrade may have reset group_ids via XML + # (noupdate="0"). Re-apply hiding if stale. + hidden_menus._reapply_hide() def next(self): # Call your menu hiding logic first