From 49f73b86a773ba5c8735fc66d295498e0931b78a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phan=20Sainl=C3=A9ger?= Date: Wed, 21 Jun 2023 21:21:15 +0200 Subject: [PATCH] [IMP] partner_profiles: remove position profiles from child_ids --- partner_profiles/__manifest__.py | 2 +- partner_profiles/i18n/fr.po | 6 ++++++ partner_profiles/i18n/partner_profiles.pot | 6 ++++++ partner_profiles/models/res_partner.py | 11 ++++++----- partner_profiles/views/res_partner_view.xml | 6 +++--- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/partner_profiles/__manifest__.py b/partner_profiles/__manifest__.py index 7f49def..b106cf8 100644 --- a/partner_profiles/__manifest__.py +++ b/partner_profiles/__manifest__.py @@ -3,7 +3,7 @@ { "name": "partner_profiles", - "version": "12.0.2.3.1", + "version": "12.0.2.4.0", "author": "Elabore", "website": "https://elabore.coop", "maintainer": "Stéphan Sainléger", diff --git a/partner_profiles/i18n/fr.po b/partner_profiles/i18n/fr.po index 06fbb04..38878f8 100644 --- a/partner_profiles/i18n/fr.po +++ b/partner_profiles/i18n/fr.po @@ -100,6 +100,12 @@ msgstr "Société" msgid "Contact" msgstr "" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_res_partner__child_ids +#: model:ir.model.fields,field_description:partner_profiles.field_res_users__child_ids +msgid "Contacts" +msgstr "" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Country" diff --git a/partner_profiles/i18n/partner_profiles.pot b/partner_profiles/i18n/partner_profiles.pot index 901d7be..fad6169 100644 --- a/partner_profiles/i18n/partner_profiles.pot +++ b/partner_profiles/i18n/partner_profiles.pot @@ -85,6 +85,12 @@ msgstr "" msgid "Contact" msgstr "" +#. module: partner_profiles +#: model:ir.model.fields,field_description:partner_profiles.field_res_partner__child_ids +#: model:ir.model.fields,field_description:partner_profiles.field_res_users__child_ids +msgid "Contacts" +msgstr "" + #. module: partner_profiles #: model_terms:ir.ui.view,arch_db:partner_profiles.partner_profiles_form_view msgid "Country" diff --git a/partner_profiles/models/res_partner.py b/partner_profiles/models/res_partner.py index 552d8b3..74149e2 100644 --- a/partner_profiles/models/res_partner.py +++ b/partner_profiles/models/res_partner.py @@ -39,7 +39,9 @@ class res_partner(models.Model): other_contact_ids = fields.One2many( domain=[("is_position_profile", "=", True)] ) - + child_ids = fields.One2many( + domain=[("is_position_profile", "=", False)] + ) structure_position_ids = fields.One2many('res.partner', 'parent_id', string="Structure's positions", domain=[('active', '=', True), ('is_position_profile', '=', True)]) @api.depends("partner_profile", "other_contact_ids") @@ -87,7 +89,7 @@ class res_partner(models.Model): def _onchange_is_company(self): for partner in self: if partner.is_main_profile: - if partner.has_position or partner.child_ids.filtered(lambda c: c.is_position_profile): + if partner.has_position or partner.structure_position_ids.filtered(lambda c: c.is_position_profile): raise UserError("You can not modify the partner company type when the parner has postion profiles associated. Please remove the position profiles before retrying.") if partner.public_profile_id: # public_partner = self.env["res.partner"].browse(partner.public_profile_id)[0] @@ -138,9 +140,8 @@ class res_partner(models.Model): for partner in self: if partner.is_company: # Delete position profiles linked to the company main profile - child_ids = self.env["res.partner"].search([("parent_id", "=", partner.id), ("is_position_profile", "=", True)]) - for child in child_ids: - child.unlink() + for position in self.structure_position_ids: + position.unlink() return super(res_partner, self).unlink() @api.multi diff --git a/partner_profiles/views/res_partner_view.xml b/partner_profiles/views/res_partner_view.xml index d2395da..1d55f31 100644 --- a/partner_profiles/views/res_partner_view.xml +++ b/partner_profiles/views/res_partner_view.xml @@ -57,9 +57,9 @@ expr="//field[@name='child_ids']" position="before">