Project: Invited internal users and invited portal users [ ('privacy_visibility', '=', 'followers_portal'), ('message_partner_ids', 'in', [user.partner_id.id]) ] Task: Invited internal users and invited portal users [ ('project_id.privacy_visibility', '=', 'followers_portal'), '|', ('project_id.message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), ('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]), ] [ '|', ('privacy_visibility', '!=', 'followers_portal'), ('message_partner_ids', 'in', [user.partner_id.id]), '|', ('privacy_visibility', '!=', 'followers'), ('message_partner_ids', 'in', [user.partner_id.id]) ] [ '|', '&', ('project_id', '!=', False), ( '|', ('project_id.privacy_visibility', '!=', 'followers_portal'), ('project_id.message_partner_ids', 'in', [user.partner_id.id]), '|', ('project_id.privacy_visibility', '!=', 'followers'), ('project_id.message_partner_ids', 'in', [user.partner_id.id]), ), '|', ('message_partner_ids', 'in', [user.partner_id.id]), # to subscribe check access to the record, follower is not enough at creation ('user_ids', 'in', user.id) ]