Skip to content
Snippets Groups Projects
Commit 2eedcb09 authored by Benjamin - Le Filament's avatar Benjamin - Le Filament
Browse files

[add] compute membership_state depending on parent membership_state

parent 79d01cae
Branches
No related tags found
No related merge requests found
......@@ -74,6 +74,27 @@ class ResPartner(models.Model):
if partner.parent_id.membership_contact_id == partner:
partner.membership_is_contact = True
@api.depends(
"free_member",
"member_lines.state",
"member_lines.category_id",
"member_lines.date_from",
"member_lines.date_to",
"member_lines.date_cancel",
"associate_member.membership_state",
"associate_member.membership_category_ids",
"parent_id",
"parent_id.membership_state",
)
def _compute_membership_state(self):
"""
Inherit parent function to attribute membership state to childs
"""
super()._compute_membership_state()
for partner in self:
if partner.parent_id and not partner.is_company:
partner.membership_state = partner.parent_id.membership_state
# ------------------------------------------------------
# Onchange / Constraints
# ------------------------------------------------------
......
......@@ -4,7 +4,7 @@
<odoo>
<data>
<!-- Search View -->
<!-- Search View Partner -->
<record model="ir.ui.view" id="res_partner_afac_member_filter">
<field name="name">res.partner.afac.member.select</field>
<field name="model">res.partner</field>
......@@ -15,14 +15,24 @@
</xpath>
<xpath expr="//filter[@name='inactive']" position="before">
<filter
string="Membres"
name="member"
domain="[('membership_state', 'in', ('free', 'paid'))]"
string="Tous les Membres"
name="all_member"
domain="[('membership_state', 'in', ('free', 'invoiced', 'paid'))]"
/>
<filter
string="Structures Membres"
name="company_member"
domain="[('membership_state', 'in', ('free', 'invoiced', 'paid')), ('is_company', '=', True)]"
/>
<filter
string="Personnes Membres"
name="people_member"
domain="[('membership_state', 'in', ('free', 'invoiced', 'paid')), ('is_company', '!=', True)]"
/>
<filter
string="En attente"
name="waiting_member"
domain="[('membership_state', 'in', ('waiting', 'invoiced'))]"
domain="[('membership_state', '=', 'waiting')]"
/>
<filter
string="Anciens membres"
......@@ -34,7 +44,7 @@
<xpath expr="//filter[@name='group_country']" position="before">
<filter
name="group_membership_state"
string="Collège"
string="Statut d'adhésion"
context="{'group_by': 'membership_state'}"
/>
<separator />
......@@ -42,6 +52,31 @@
</field>
</record>
<!-- Search View Membership -->
<record model="ir.ui.view" id="view_res_partner_member_filter">
<field name="name">res.partner.afac.member.select</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="membership.view_res_partner_member_filter" />
<field name="arch" type="xml">
<xpath expr="//filter[@name='all_members']" position="before">
<filter
name="company_members"
string="Structures membres"
domain="[('membership_state', 'in', ['invoiced', 'paid', 'free']), ('is_company', '=', True)]"
/>
<filter
name="people_members"
string="Personnes membres"
domain="[('membership_state', 'in', ['invoiced', 'paid', 'free']), ('is_company', '!=', True)]"
/>
</xpath>
<xpath expr="//filter[@name='all_members']" position="attributes">
<attribute name="string">Tous les membres</attribute>
<attribute name="help">Personnes et structures</attribute>
</xpath>
</field>
</record>
<!-- Tree View -->
<record model="ir.ui.view" id="res_partner_afac_tree">
<field name="name">res.partner.afac.tree</field>
......@@ -115,6 +150,7 @@
>
<group>
<group>
<field name="membership_state" />
<field name="membership_is_delegate" />
<field name="membership_is_mandate" />
<field name="membership_is_contact" />
......@@ -125,5 +161,10 @@
</field>
</record>
<!-- Action -->
<record model="ir.actions.act_window" id="membership.action_membership_members">
<field name="context">{"search_default_company_members": 1,}</field>
</record>
</data>
</odoo>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment