# -*- coding: utf-8 -*- # Copyright 2024-2026 Nexa Systems Inc. # License OPL-1 (Odoo Proprietary License v1.0) from odoo import api, fields, models class FusionClaimsDashboard(models.TransientModel): _name = 'fusion.claims.dashboard' _inherit = 'fusion_claims.adp.posting.schedule.mixin' _description = 'Fusion Claims Dashboard' _rec_name = 'name' name = fields.Char(default='Dashboard', readonly=True) # ========================================================================= # Role-aware filter # ========================================================================= is_manager = fields.Boolean(compute='_compute_is_manager') def _compute_is_manager(self): manager_group = self.env.ref('fusion_claims.group_fusion_claims_manager', raise_if_not_found=False) sale_mgr_group = self.env.ref('sales_team.group_sale_manager', raise_if_not_found=False) for rec in self: user = rec.env.user rec.is_manager = bool( (manager_group and user.has_group('fusion_claims.group_fusion_claims_manager')) or (sale_mgr_group and user.has_group('sales_team.group_sale_manager')) ) def _role_filter_domain(self): """Common domain prefix for SO-based counts. Managers (fusion_claims.group_fusion_claims_manager or sales_team.group_sale_manager) see everything. Other users see only SOs where they are the salesperson. """ self.ensure_one() if self.is_manager: return [] return [('user_id', '=', self.env.user.id)]