diff --git a/easy_my_coop/models/partner.py b/easy_my_coop/models/partner.py index 4af1da0..64e9ab7 100644 --- a/easy_my_coop/models/partner.py +++ b/easy_my_coop/models/partner.py @@ -172,6 +172,11 @@ class ResPartner(models.Model): sting="Effective Date", 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" ) @@ -194,6 +199,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" + ) + ) + @api.multi def has_representative(self): self.ensure_one() diff --git a/easy_my_coop/views/res_partner_view.xml b/easy_my_coop/views/res_partner_view.xml index be1c97f..cc03a14 100644 --- a/easy_my_coop/views/res_partner_view.xml +++ b/easy_my_coop/views/res_partner_view.xml @@ -195,7 +195,7 @@ res.partner form kanban,tree,form - [('cooperator','=',True),('representative','=',True)] + [('representative_of_member_company','=',True)]