diff --git a/models/res_partner.py b/models/res_partner.py index 8ecba665b0d3dfbf480393d3229e7e7d82cd9df2..c653572f746eb6fa7514aad4fdb49b6fa51e3c00 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -99,11 +99,29 @@ class ResPartner(models.Model): # ------------------------------------------------------ # Onchange / Constraints # ------------------------------------------------------ - + @api.onchange("parent_id") + def _onchange_parent_id(self): + res = super(ResPartner, self)._onchange_parent_id() + self.is_membership_archived = self.parent_id.is_membership_archived + return res # ------------------------------------------------------ # CRUD methods (ORM overrides) # ------------------------------------------------------ + def write(self, vals): + """ + Inherit write ORM function and + apply parent values for child + """ + res = super(ResPartner, self).write(vals) + for partner in self: + # if partner has child, update all childs + if partner.child_ids: + partner.child_ids.update( + { + "is_membership_archived": partner.is_membership_archived + }) + return res # ------------------------------------------------------ # Actions # ------------------------------------------------------ diff --git a/views/res_partner.xml b/views/res_partner.xml index c89f6fee49a9edb1d74da1cc3e0611736f2a26ae..cdfe49cb6be8d4e0053dd82d709a0e3684146ec2 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -166,6 +166,7 @@ <field name="membership_is_delegate" /> <field name="membership_is_mandate" /> <field name="membership_is_contact" /> + <field name="is_membership_archived" widget="boolean_toggle" /> </group> </group> </page>