From 76937a9e6854364c4687c65a1a57da10bb10b010 Mon Sep 17 00:00:00 2001 From: Benjamin <benjamin@le-filament.com> Date: Tue, 15 Dec 2020 17:22:03 +0100 Subject: [PATCH] =?UTF-8?q?[cgscop=20#269]=20MR=20Herv=C3=A9=20:=2012-RV-c?= =?UTF-8?q?opadev=20-=20fix=20bug=20organization=5Ftype=5Fid=20+=20add=20c?= =?UTF-8?q?oopadev=20infos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/res_partner.py | 24 +++++++++++++----------- views/res_partner.xml | 25 ++++++++++++++++--------- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/models/res_partner.py b/models/res_partner.py index 98e2046..3bab7b7 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -248,6 +248,9 @@ class ScopPartner(models.Model): column2='indus_activity_id', string="Domaine d'activité Industrie", help="Fédération de l'Industrie - Domaine d'activité") + copadev_member = fields.Boolean( + string="Adhérent copadev", + track_visibility='onchange') # Contacts director_ids = fields.One2many( @@ -391,9 +394,9 @@ class ScopPartner(models.Model): # Champs pour partenaires organization_type_id = fields.Many2one( 'res.partner.organization.type', - string="Catégorie Type", - domain=[('parent_id', '=', False)], + string="Famille", on_delete='restrict', + compute='_compute_org_type_id', track_visibility='onchange') organization_subtype_id = fields.Many2one( 'res.partner.organization.type', @@ -490,15 +493,6 @@ class ScopPartner(models.Model): else: coop.seed_end = False - @api.onchange('organization_subtype_id') - def onchange_organization_subtype_id(self): - for partner in self: - if partner.organization_subtype_id: - partner.organization_type_id = \ - partner.organization_subtype_id.parent_id - else: - partner.organization_type_id = False - @api.onchange('name') def onchange_name(self): if self.search_count([('name', '=ilike', self.name)]) > 0: @@ -839,6 +833,14 @@ class ScopPartner(models.Model): ('ur_id', '=', self.env.user.ur_id.id)]) partner.segment_4_nb = len(seg4) + @api.depends('organization_subtype_id') + def _compute_org_type_id(self): + for partner in self: + if partner.organization_subtype_id: + partner.organization_type_id = partner.organization_subtype_id.parent_id + else: + partner.organization_type_id = False + # ------------------------------------------------------ # Button Action # ------------------------------------------------------ diff --git a/views/res_partner.xml b/views/res_partner.xml index e261025..473a224 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -120,20 +120,27 @@ <attribute name="invisible">1</attribute> </field> <xpath expr='//form/sheet/group/group[2]' position="replace"> - <group name="partner_segment_info" attrs="{'invisible': [('is_company', '=', False)]}"> + <group col="1" 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)]" 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" options="{'no_open': True, 'no_create': True}" domain="[('active', '=', True),('ur_id', '=', ur_id)]" attrs="{'invisible': ['|', ('is_company','=', False), ('type', '!=', 'contact')]}"/> + <group string="Informations diverses"> + <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="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)]" 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="followup_delegate_id" options="{'no_open': True, 'no_create': True}" domain="[('active', '=', True),('ur_id', '=', ur_id)]" attrs="{'invisible': ['|', ('is_company','=', False), ('type', '!=', 'contact')]}"/> + </group> + <group string="Féd. communication" groups="cgscop_partner.group_federation_com"> + <field name="copadev_member" widget="boolean_toggle"/> + <field name="activity_federation_com_ids" options="{'no_open': True, 'no_create': True}" widget="many2many_tags"/> + </group> + </group> <group name="contact_segment_info" attrs="{'invisible': ['|', ('is_company', '=', True), ('type', '!=', 'contact')]}"> <field name="title" options='{"no_create": True, "no_open": True}' attrs="{'invisible': [('is_company','=', True)]}"/> -- GitLab