diff --git a/models/res_partner.py b/models/res_partner.py index df69e7d05f8e0337a22e00d57d559180a61772f8..148ee20f5a77f308be05e29e022a32917bfcb38d 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -193,6 +193,26 @@ class ScopPartner(models.Model): ('organization_subtype_id.name', '=', 'Incubateur')], on_delete='restrict') is_ag_constitution = fields.Boolean('AG constitutive réalisée') + is_federation_com = fields.Boolean( + string='Fédération de la Communication', + compute='_compute_federation', + store=True, + default=False) + is_federation_btp = fields.Boolean( + string='Fédération du BTP', + compute='_compute_federation', + store=True, + default=False) + is_federation_indus = fields.Boolean( + string="Fédération de l'Industrie", + compute='_compute_federation', + store=True, + default=False) + is_federation_cae = fields.Boolean( + string='Fédération des CAE', + compute='_compute_federation', + store=True, + default=False) # Contacts director_ids = fields.One2many( @@ -656,6 +676,33 @@ class ScopPartner(models.Model): if partner.member_number: partner.member_number_int = int(partner.member_number) + @api.depends('membership_period_ids', + 'membership_period_ids.end') + @api.multi + def _compute_federation(self): + for partner in self: + if partner.is_cooperative: + partner.is_federation_com = partner._get_federation( + 'cgscop_partner.membership_type_2') + partner.is_federation_btp = partner._get_federation( + 'cgscop_partner.membership_type_4') + partner.is_federation_indus = partner._get_federation( + 'cgscop_partner.membership_type_3') + partner.is_federation_cae = partner._get_federation( + 'cgscop_partner.membership_type_5') + + def _get_federation(self, external_id): + member_type_id = self.env.ref(external_id).id + partner_id = self.id + membership_period = self.env['scop.membership.period'].search([ + ('partner_id', '=', partner_id), + ('type_id', '=', member_type_id), + ('end', '=', False)]) + if membership_period: + return True + else: + return False + @api.depends('questionnaire_ids', 'questionnaire_ids.staff_count', 'questionnaire_ids.effective_date') @api.multi diff --git a/views/res_partner_cooperative.xml b/views/res_partner_cooperative.xml index 739e6baf6fbb8101ed952b738a1294f8d3d5c50e..598312673fc87c12cf21f3d8a115f0ef8049ea88 100644 --- a/views/res_partner_cooperative.xml +++ b/views/res_partner_cooperative.xml @@ -33,6 +33,11 @@ <filter string="Activités du Jour" name="activities_today" domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/> <filter string="Activités futures" name="activities_upcoming_all" domain="[('activity_ids.date_deadline', '>', context_today().strftime('%Y-%m-%d'))]"/> <separator/> + <filter string="Fédération de la Com" name="is_federation_com" domain="[('is_federation_com', '=', True)]"/> + <filter string="Fédération de l'Industrie" name="is_federation_indus" domain="[('is_federation_indus', '=', True)]"/> + <filter string="Fédération du BTP" name="is_federation_btp" domain="[('is_federation_btp', '=', True)]"/> + <filter string="Fédération des CAE" name="is_federation_cae" domain="[('is_federation_cae', '=', True)]"/> + <separator/> <group expand="0" name="group_by" string="Group By"> <filter name="project_status" string="Statut" domain="[]" context="{'group_by' : 'project_status'}"/> <filter name="cooperative_form_id" string="Forme Coopérative" domain="[]" context="{'group_by' : 'cooperative_form_id'}"/>