group_fusion_show_when_enterprise_absent has membership = all internal users iff no Enterprise accounting module is installed. Membership is recomputed on module install/uninstall via overrides on ir.module.module. Used by Phase 1 fusion_bank_rec menus to auto-hide when Enterprise is active and auto-appear after Enterprise uninstall. Made-with: Cursor
28 lines
981 B
Python
28 lines
981 B
Python
"""Coexistence group membership recomputation."""
|
|
|
|
from odoo import api, models
|
|
|
|
|
|
class ResUsers(models.Model):
|
|
_inherit = "res.users"
|
|
|
|
@api.model
|
|
def _fusion_recompute_coexistence_group(self):
|
|
"""Set group membership = all internal users iff Enterprise absent.
|
|
|
|
Called from ir.module.module.button_immediate_install / uninstall
|
|
overrides. Idempotent; safe to call multiple times.
|
|
"""
|
|
group = self.env.ref(
|
|
'fusion_accounting_core.group_fusion_show_when_enterprise_absent',
|
|
raise_if_not_found=False,
|
|
)
|
|
if not group:
|
|
return
|
|
enterprise_installed = self.env['ir.module.module']._fusion_is_enterprise_accounting_installed()
|
|
if enterprise_installed:
|
|
group.sudo().write({'user_ids': [(5, 0, 0)]})
|
|
else:
|
|
all_internal = self.sudo().search([('share', '=', False)])
|
|
group.sudo().write({'user_ids': [(6, 0, all_internal.ids)]})
|