diff --git a/easy_my_coop/models/partner.py b/easy_my_coop/models/partner.py index f8ddfd7..4cbcd19 100644 --- a/easy_my_coop/models/partner.py +++ b/easy_my_coop/models/partner.py @@ -141,6 +141,11 @@ class ResPartner(models.Model): compute=_compute_effective_date, store=True) representative = fields.Boolean(string="Legal Representative") + representative_of_member_company = fields.Boolean( + string="Legal Representative of Member Company", + store=True, + compute="_compute_representative_of_member_company", + ) subscription_request_ids = fields.One2many('subscription.request', 'partner_id', string="Subscription request") @@ -172,6 +177,21 @@ class ResPartner(models.Model): partner.coop_candidate = is_candidate + @api.multi + @api.depends("parent_id", "representative") + def _compute_representative_of_member_company(self): + for partner in self: + member_companies = self.env["res.partner"].search( + [("is_company", "=", True), ("member", "=", True)] + ) + partner.representative_of_member_company = ( + partner in member_companies.mapped( + "child_ids" + ).filtered( + "representative" + ) + ) + def has_representative(self): if self.child_ids.filtered('representative'): return True diff --git a/easy_my_coop/view/res_partner_view.xml b/easy_my_coop/view/res_partner_view.xml index 101066f..3cad4b5 100644 --- a/easy_my_coop/view/res_partner_view.xml +++ b/easy_my_coop/view/res_partner_view.xml @@ -146,7 +146,7 @@ res.partner form kanban,tree,form - [('cooperator','=',True),('representative','=',True)] + [('representative_of_member_company','=',True)]