diff --git a/academic_sale_subscription/models/account_move.py b/academic_sale_subscription/models/account_move.py index 3866e51a..549cf05d 100644 --- a/academic_sale_subscription/models/account_move.py +++ b/academic_sale_subscription/models/account_move.py @@ -57,14 +57,12 @@ def _compute_student_ids(self): def _post(self, soft=True): for rec in self: - partners_invoice = rec.student_id.payment_responsible_ids if rec.student_id else self.env["res.partner"] - rec.message_subscribe( - [ - payment_responsible.id - for payment_responsible in rec.partner_id | partners_invoice - if payment_responsible not in rec.sudo().message_partner_ids - ] - ) + if rec.student_id: + family_partners = rec.student_id.student_link_ids.mapped("partner_id") + partners_to_subscribe = rec.partner_id | family_partners + to_subscribe = partners_to_subscribe - rec.sudo().message_partner_ids + if to_subscribe: + rec.message_subscribe(partner_ids=to_subscribe.ids) return super()._post(soft=soft) def _compute_is_academic_sale(self): diff --git a/academic_sale_subscription/models/sale_order.py b/academic_sale_subscription/models/sale_order.py index 26248640..2b367c21 100644 --- a/academic_sale_subscription/models/sale_order.py +++ b/academic_sale_subscription/models/sale_order.py @@ -56,13 +56,12 @@ def _prepare_invoice(self): def create(self, vals_list): orders = super().create(vals_list) for order in orders.filtered("is_academic_sale"): - order.message_subscribe( - [ - payment_responsible.id - for payment_responsible in order.partner_invoice_id | order.partner_invoice_ids - if payment_responsible not in order.sudo().message_partner_ids - ] - ) + if order.partner_id: + family_partners = order.partner_id.student_link_ids.mapped("partner_id") + partners_to_subscribe = order.partner_invoice_id | family_partners + to_subscribe = partners_to_subscribe - order.sudo().message_partner_ids + if to_subscribe: + order.message_subscribe(partner_ids=to_subscribe.ids) return orders def _message_get_default_recipients(self):