From 4e9410db55a41ab748852f95e19aa5406d6abd9c Mon Sep 17 00:00:00 2001
From: Benjamin <benjamin@le-filament.com>
Date: Wed, 10 Jun 2020 18:49:53 +0200
Subject: [PATCH] [update] modification activity_federation en Many2many

---
 models/res_partner.py              | 20 ++++++++++++--------
 models/scop_federation_activity.py | 14 ++++++++++++++
 views/res_partner.xml              |  6 ++++--
 3 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/models/res_partner.py b/models/res_partner.py
index e555953..85988be 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -219,16 +219,20 @@ class ScopPartner(models.Model):
         compute='_compute_federation',
         store=True,
         default=False)
-    activity_federation_com = fields.Many2one(
+    activity_federation_com_ids = fields.Many2many(
         comodel_name='scop.federation.com.activity',
-        string="Domaine d'activité",
-        help="Fédération de la Com - Domaine d'activité",
-        ondelete="set null")
-    activity_federation_indus = fields.Many2one(
+        relation='res_partner_federation_com_activity_rel',
+        column1='partner_id',
+        column2='com_activity_id',
+        string="Domaine d'activité Com",
+        help="Fédération de la Com - Domaine d'activité")
+    activity_federation_indus_ids = fields.Many2many(
         comodel_name='scop.federation.indus.activity',
-        string="Domaine d'activité",
-        help="Fédération de l'Industrie - Domaine d'activité",
-        ondelete="set null")
+        relation='res_partner_federation_indus_activity_rel',
+        column1='partner_id',
+        column2='indus_activity_id',
+        string="Domaine d'activité Industrie",
+        help="Fédération de l'Industrie - Domaine d'activité")
 
     # Contacts
     director_ids = fields.One2many(
diff --git a/models/scop_federation_activity.py b/models/scop_federation_activity.py
index 0d8fb11..98d132d 100644
--- a/models/scop_federation_activity.py
+++ b/models/scop_federation_activity.py
@@ -10,6 +10,13 @@ class ScopFederationComActivity(models.Model):
     _order = "name"
 
     name = fields.Char("Domaine d'activité", required=True)
+    partner_ids = fields.Many2many(
+        comodel_name='res.partner',
+        relation='res_partner_federation_com_activity_rel',
+        column1='com_activity_id',
+        column2='partner_id',
+        string="Cooperatives",
+        domain=[('is_cooperative', '=', True)])
 
 
 class ScopFederationIndusActivity(models.Model):
@@ -18,3 +25,10 @@ class ScopFederationIndusActivity(models.Model):
     _order = "name"
 
     name = fields.Char("Domaine d'activité", required=True,)
+    partner_ids = fields.Many2many(
+        comodel_name='res.partner',
+        relation='res_partner_federation_indus_activity_rel',
+        column1='indus_activity_id',
+        column2='partner_id',
+        string="Cooperatives",
+        domain=[('is_cooperative', '=', True)])
diff --git a/views/res_partner.xml b/views/res_partner.xml
index b21b0bd..2091397 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -364,8 +364,10 @@
                                 <field name="segment_2_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]" attrs="{'invisible': [('project_status', 'in', ('1_information'))]}"/>
                                 <field name="segment_3_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]" attrs="{'invisible': [('project_status', 'in', ('1_information'))]}"/>
                                 <field name="segment_4_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]" attrs="{'invisible': [('project_status', 'in', ('1_information'))]}"/>
-                                <field name="activity_federation_com" groups="cgscop_partner.group_federation_com" options="{'no_open': True, 'no_create': True}"/>
-                                <field name="activity_federation_indus" groups="cgscop_partner.group_federation_indus" options="{'no_open': True, 'no_create': True}"/>
+                                <field name="is_federation_com" invisible="True"/>
+                                <field name="is_federation_indus" invisible="True"/>
+                                <field name="activity_federation_com_ids" groups="cgscop_partner.group_federation_com" options="{'no_open': True, 'no_create': True}" attrs="{'invisible': [('is_federation_com', '!=', True)]}" widget="many2many_tags"/>
+                                <field name="activity_federation_indus_ids" groups="cgscop_partner.group_federation_indus" options="{'no_open': True, 'no_create': True}" attrs="{'invisible': [('is_federation_indus', '!=', True)]}" widget="many2many_tags"/>
                             </group>
                             <group string="Informations Activité">
                                 <field name="creation_origin_id" attrs="{'required': [('is_cooperative', '=', True)]}" options="{'no_open': True, 'no_create': True}"/>
-- 
GitLab