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