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