diff --git a/models/res_partner.py b/models/res_partner.py index ec0c27d24d6a52b3ea0d06d4df27ec288cf90694..d7133bd0fece6f3316a82c02b4d91ee35443dee3 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -26,6 +26,24 @@ class ResPartner(models.Model): string='Contact Délégué', domain="[('parent_id', '=', id)]" ) + membership_is_delegate = fields.Boolean( + string='Personne Délégué', + compute='_compute_membership_is_delegate', + store=True, + default=False + ) + membership_is_mandate = fields.Boolean( + string='Personne Mandataire', + compute='_compute_membership_is_mandate', + store=True, + default=False + ) + membership_is_contact = fields.Boolean( + string='Personne Contact Adhésion', + compute='_compute_membership_is_contact', + store=True, + default=False + ) # ------------------------------------------------------ # SQL Constraints @@ -38,6 +56,23 @@ class ResPartner(models.Model): # ------------------------------------------------------ # Computed fields / Search Fields # ------------------------------------------------------ + @api.depends('parent_id', 'parent_id.membership_delegate_id') + def _compute_membership_is_delegate(self): + for partner in self: + if partner.parent_id.membership_delegate_id == partner: + partner.membership_is_delegate = True + + @api.depends('parent_id', 'parent_id.membership_mandate_id') + def _compute_membership_is_mandate(self): + for partner in self: + if partner.parent_id.membership_mandate_id == partner: + partner.membership_is_mandate = True + + @api.depends('parent_id', 'parent_id.membership_contact_id') + def _compute_membership_is_contact(self): + for partner in self: + if partner.parent_id.membership_contact_id == partner: + partner.membership_is_contact = True # ------------------------------------------------------ # Onchange / Constraints diff --git a/views/res_partner.xml b/views/res_partner.xml index dc60dccd22b93d06b0d8e3f460c242c7ec4b07da..458f6a51977366ed10268c984dc79864460dc8f1 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -76,6 +76,17 @@ </group> </group> </xpath> + <xpath expr="//page[@name='internal_notes']" position="after"> + <page name="membership_contact" string="Membre" attrs="{'invisible': ['|', ('is_company', '=', True), ('parent_id', '=', False)]}"> + <group> + <group> + <field name="membership_is_delegate"/> + <field name="membership_is_mandate"/> + <field name="membership_is_contact"/> + </group> + </group> + </page> + </xpath> </field> </record>