From 6af462a87ee4f3318aa5047e88b0eb4c9affa1f5 Mon Sep 17 00:00:00 2001
From: hsilvant <hsilvant@scop.coop>
Date: Wed, 17 Jun 2020 11:53:56 +0200
Subject: [PATCH] =?UTF-8?q?Visibilit=C3=A9=20des=20segments?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 models/res_partner.py                         |  34 ++++++++++++++++++
 views/res_partner.xml                         |  21 ++++++-----
 ...op_membership_period_wizard.cpython-36.pyc | Bin 0 -> 1669 bytes
 .../scop_period_wizard.cpython-36.pyc         | Bin 0 -> 7278 bytes
 4 files changed, 47 insertions(+), 8 deletions(-)
 create mode 100644 wizard/__pycache__/scop_membership_period_wizard.cpython-36.pyc
 create mode 100644 wizard/__pycache__/scop_period_wizard.cpython-36.pyc

diff --git a/models/res_partner.py b/models/res_partner.py
index e555953..fff95f6 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -141,6 +141,20 @@ class ScopPartner(models.Model):
                                     column2='segment_id',
                                     string='Segmentation 4')
 
+    segment_1_nb = fields.Integer(
+        string="Nb de segments 1",
+        compute="_compute_segment_nb")
+    segment_2_nb = fields.Integer(
+        string="Nb de segments 2",
+        compute="_compute_segment_nb")
+    segment_3_nb = fields.Integer(
+        string="Nb de segments 3",
+        compute="_compute_segment_nb")
+    segment_4_nb = fields.Integer(
+        string="Nb de segments 4",
+        compute="_compute_segment_nb")
+
+
     # Infos générales / Infos activité
     creation_origin_id = fields.Many2one(
         'res.partner.creation.origin',
@@ -769,6 +783,26 @@ class ScopPartner(models.Model):
                 partner.staff_last = lm[0].staff_count
                 partner.staff_last_date = lm[0].effective_date
 
+    @api.multi
+    def _compute_segment_nb(self):
+        for partner in self:
+            # Calcul nombre de segment 1
+            seg1 = partner.env['res.partner.segment1'].search([
+                ('ur_id', '=', self.env.user.ur_id.id)])
+            partner.segment_1_nb = len(seg1)
+            # Calcul nombre de segment 2
+            seg2 = partner.env['res.partner.segment2'].search([
+                ('ur_id', '=', self.env.user.ur_id.id)])
+            partner.segment_2_nb = len(seg2)
+            # Calcul nombre de segment 3
+            seg3 = partner.env['res.partner.segment3'].search([
+                ('ur_id', '=', self.env.user.ur_id.id)])
+            partner.segment_3_nb = len(seg3)
+            # Calcul nombre de segment 4
+            seg4 = partner.env['res.partner.segment4'].search([
+                ('ur_id', '=', self.env.user.ur_id.id)])
+            partner.segment_4_nb = len(seg4)
+
     # ------------------------------------------------------
     # Button Action
     # ------------------------------------------------------
diff --git a/views/res_partner.xml b/views/res_partner.xml
index b21b0bd..d7b9ee7 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -127,11 +127,16 @@
                 </field>
                 <xpath expr='//form/sheet/group/group[2]' position="replace">
                     <group name="partner_segment_info" attrs="{'invisible': [('is_company', '=', False)]}">
+                        <field name="segment_1_nb" invisible="1"/> 
+                        <field name="segment_2_nb" invisible="1"/> 
+                        <field name="segment_3_nb" invisible="1"/> 
+                        <field name="segment_4_nb" invisible="1"/> 
+
                         <field name="certification_ids" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" attrs="{'invisible': [('is_company', '=', False)]}"/>
-                        <field name="segment_1_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]"/>
-                        <field name="segment_2_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]"/>
-                        <field name="segment_3_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]"/>
-                        <field name="segment_4_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]"/>
+                        <field name="segment_1_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]" attrs="{'invisible':[('segment_1_nb', '=', 0)]}" />
+                        <field name="segment_2_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]" attrs="{'invisible':[('segment_2_nb', '=', 0)]}"/>
+                        <field name="segment_3_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]" attrs="{'invisible':[('segment_3_nb', '=', 0)]}"/>
+                        <field name="segment_4_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]" attrs="{'invisible':[('segment_4_nb', '=', 0)]}"/>
                         <field name="organization_subtype_id" attrs="{'invisible': ['|', ('is_company','=', False), ('type', '!=', 'contact')]}" domain="[('child_ids', '=', False)]" options="{'no_create': True, 'no_open': True}"/>
                         <field name="organization_type_id" readonly="1" attrs="{'invisible': ['|', ('is_company', '=', False), ('type', '!=', 'contact')]}" options="{'no_create': True, 'no_open': True}"/>
                         <field name="followup_delegate_id" widget="res_partner_many2one" options="{'no_open': True, 'no_create': True}" domain="[('active', '=', True),('ur_id', '=', ur_id)]" attrs="{'invisible': ['|', ('is_company','=', False), ('type', '!=', 'contact')]}"/>
@@ -360,10 +365,10 @@
                                     attrs="{'required':[('project_status','in',('3_accompagnement','4_adhesion', '5_cg'))], 'invisible':[('project_status', 'in', '6_suivi')]}" options="{'no_open': True, 'no_create': True}" domain="[('ur_id', '=', ur_id)]"/>
                                 <field name="followup_delegate_id" widget="res_partner_many2one" options="{'no_open': True, 'no_create': True}" domain="[('active', '=', True),('ur_id', '=', ur_id)]" attrs="{'invisible': [('project_status', 'in', ('1_information', '2_pre-diagnostic', '3_accompagnement'))]}"/>
                                 <field name="support_delegate_id" widget="res_partner_many2one" options="{'no_open': True, 'no_create': True}" domain="[('active', '=', True),('ur_id', '=', ur_id)]" />
-                                <field name="segment_1_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_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="segment_1_id" widget="many2many_tags" options="{'color_field': 'color', 'no_create': True}" domain="[('ur_id', '=', ur_id)]" attrs="{'invisible': ['|',('project_status', 'in', ('1_information')),('segment_1_nb', '=', 0)]}"/>
+                                <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')),('segment_2_nb', '=', 0)]}"/>
+                                <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')),('segment_3_nb', '=', 0)]}"/>
+                                <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')),('segment_4_nb', '=', 0)]}"/>
                                 <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}"/>
                             </group>
diff --git a/wizard/__pycache__/scop_membership_period_wizard.cpython-36.pyc b/wizard/__pycache__/scop_membership_period_wizard.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..285385e56d452b9f9aaf2e2523fe65bd6e24b299
GIT binary patch
literal 1669
zcmXr!<>lI%b3N`e8w0~*1|-13z`)?Zz`#&!#=yXk!jQt4!;s4u#hA+!#gxk&#mop2
zW6EL4WsPEGWN>FlVNPLbVMt*~WzJ%2W{zS{VGU-`WP1rRP?Px<b7Dc}Ew;4G)SQ&!
zTWq=cDXBTdnvA#j!xD2cQxZ!u^YdJbit>w+LCRs64d#G41_p*yhA74qhA5^K#wg|#
zrYM$F)+{!NmCcM%?5P}CoGGlS>?v%$Oi^5^99i5c>?s^6oGDx>+`TMOJgFR6yeT{>
zAQ|2)zGj9L-d^S?{#1@EffT+Jt`z=WrYONwjx3=Rfo8@i;Z)Wvkrcrcp%#W_#wgJg
z;a~<$ky}#1$@vAoskuq1Ma3DJ1p%o=nfWQ<nN^8JDOIw?$@v9(xo}Cn0<f%JIas<>
zmw|!7x#;jpus;=2)JyYH74q^+%TjZ4QWXjguLPNts*s|dn38dLWpQSHUNR#z3_vs!
zNH-`R_!t-%Y8bK@vKX_NQW%>VgBdiL{BCh3CYNNErN(EbfPy(Suk03ka(-S(YDLK{
z=JeDOO~zX+#i==ID;bJ-7#J9Sh3RMH=celCr{w2@2}2|O<kI4j{9OIybdWEgRD3~V
zQAu8Ekv_x=`XH%zga_jx9*l>`>J?Pp5{^$vO-n4zDS_#X&rIP3xf<kr2Bs=K+`*@Z
zMe8m00Eh!L8E>&eO|B9FxdJ(uODYReO9dDh7(yxwPy+B4M^S2VNl|8UNr)!%EjAD{
zFZ~ureqKsyPHIUiNV>2zvnVyCRD^+n!R7GEq|y?Flt&FS;ZdN;R0NVL0-0V43OT=g
z1+ZjMYF>#ZBUthlk8^%*ZfaghVrEflF+9>hKIVW$S^)zCLq%2%g9}4!QY|AW`cfDr
z8L}8tm{OQ)7_*qtm{Yh@*uZS&ES5CpbY@V>?PV%*C}B<EY-Vg?EM$Z0Vgu=@Va#IA
zVyR)wVy|J$;;3QF;!NS1!`jTq$WX`@&XB?o%%I8RS0#oXR*)FG#RZMn_{@}FjJCI!
zQ}a^XZn1*`GCniqB`CdVGTvg%$;{0xDK%zbU<l2_o<tQ=D>92qQWa7Tugp5UK%pSN
zv`8U2RRLs>CTo!x0|P^mBm)D(E!N_a#G;a0Y<Z=ioO6pMFTW&JletI&q(Gd3fx%6a
zs|XZWx7dnP6N{2FkhC&orWCP)%wS6{N=+<DEs_Cgk_8cR3=9mKOhw#aS%}ZT$s0m|
z(%mgyh$d)Cl?Ek6DNwFr;$q@r<YE+H<X~iC<Y3}rWMO1uWMO1stkS@fL{SX$(-gbK
z5g(tIn420Oe~T+VJ~uz5GzY}yiH|QVP0WGHu!5D`;)zd5Elw`VEC3aAMWEDiixpe~
z7J+hf5i`gW?4Efgsp+XjVDI1J@J-CCG|JCQg@hrCOJYgtE!L9!l*CGKAlzbc&PXgO
z0tLk_mXOqnk|I!m++xiw%_+$&QU-+(D9J)X1Iz*iNf8?Z0|O|mi$MXw0rE669}6EN
z3nLRF6C)QR2O}RNA0rnNSe>6H$1N66DFJpc*pWq`8sQc{NKh}eA~_Z8pJGT9@r4v6
k<`rkA=9Tz@%6703NY=yMaErqR5?FR1!-_$K2qO<O0QxJ>w*UYD

literal 0
HcmV?d00001

diff --git a/wizard/__pycache__/scop_period_wizard.cpython-36.pyc b/wizard/__pycache__/scop_period_wizard.cpython-36.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b03a6fb0dc0ca8999a9f5b03a0d4bdd6e59aba14
GIT binary patch
literal 7278
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
Xb&#)bao9kTnH|V5@ZgLHBM&nGY>)Tb

literal 0
HcmV?d00001

-- 
GitLab