From 433bc7474eb64c0a914cd88eca9dc444971e2737 Mon Sep 17 00:00:00 2001 From: ijas ahammed Date: Mon, 1 Mar 2021 10:30:27 +0000 Subject: [PATCH] [IMP] website_crm_partner_assign: improve 'Partner Assignment' and creation - This commit removes `selection` widget given on 'Partner Level' and 'Activation' fields on contact form view to allow users to create records for them on the fly (with 'no_open' option). - This commit moves geo-location related fields below the parter assignment related fields in the 'Partner Assignment' page of contact form view. - This commit adds default lowest 'Partner Level' and 'Activation' (based on sequence) while creating assigned partner on the fly from opportunity form view. The purpose is to allow user to select the created partner again in 'Assigned Partner' m2o, which displays only partners having 'Partner Level' (grade_id) set. TaskID-2443894 closes https://github.com/odoo/odoo/pull/67524 Part-of: odoo/odoo#67524 --- .../website_crm_partner_assign/models/res_partner.py | 12 ++++++++++++ .../views/crm_lead_views.xml | 2 +- .../views/res_partner_views.xml | 8 ++++---- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/addons/website_crm_partner_assign/models/res_partner.py b/addons/website_crm_partner_assign/models/res_partner.py index 8e7bc8a0fa6..264f8f9ff1e 100644 --- a/addons/website_crm_partner_assign/models/res_partner.py +++ b/addons/website_crm_partner_assign/models/res_partner.py @@ -38,6 +38,18 @@ class ResPartnerActivation(models.Model): class ResPartner(models.Model): _inherit = "res.partner" + @api.model + def default_get(self, fields_list): + default_vals = super().default_get(fields_list) + if self.env.context.get('partner_set_default_grade_activation'): + # sets the lowest grade and activation if no default values given, mainly useful while + # creating assigned partner on the fly (to make it visible in same m2o again) + if 'grade_id' in fields_list and not default_vals.get('grade_id'): + default_vals['grade_id'] = self.env['res.partner.grade'].search([], order='sequence', limit=1).id + if 'activation' in fields_list and not default_vals.get('activation'): + default_vals['activation'] = self.env['res.partner.activation'].search([], order='sequence', limit=1).id + return default_vals + partner_weight = fields.Integer( 'Level Weight', compute='_compute_partner_weight', readonly=False, store=True, tracking=True, diff --git a/addons/website_crm_partner_assign/views/crm_lead_views.xml b/addons/website_crm_partner_assign/views/crm_lead_views.xml index 4645c09afda..09792280f13 100644 --- a/addons/website_crm_partner_assign/views/crm_lead_views.xml +++ b/addons/website_crm_partner_assign/views/crm_lead_views.xml @@ -21,7 +21,7 @@