diff --git a/addons/crm/wizard/crm_partner_binding.py b/addons/crm/wizard/crm_partner_binding.py index 85acbc62396..136f2b41a93 100644 --- a/addons/crm/wizard/crm_partner_binding.py +++ b/addons/crm/wizard/crm_partner_binding.py @@ -64,4 +64,8 @@ class PartnerBinding(models.TransientModel): partner = Partner.search([('name', 'ilike', '%' + lead.contact_name+'%')], limit=1) return partner.id + if lead.name: # to be aligned with _create_lead_partner, search on lead's name as last possibility + partner = Partner.search([('name', 'ilike', '%' + lead.name + '%')], limit=1) + return partner.id + return False diff --git a/addons/sale_crm/__init__.py b/addons/sale_crm/__init__.py index e3e519761b8..ab491732dfe 100644 --- a/addons/sale_crm/__init__.py +++ b/addons/sale_crm/__init__.py @@ -2,6 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from . import models +from . import wizard from odoo import api, SUPERUSER_ID diff --git a/addons/sale_crm/__manifest__.py b/addons/sale_crm/__manifest__.py index 9620ea428e7..fd554044d9d 100644 --- a/addons/sale_crm/__manifest__.py +++ b/addons/sale_crm/__manifest__.py @@ -22,7 +22,8 @@ modules. 'views/partner_views.xml', 'views/sale_order_views.xml', 'views/crm_lead_views.xml', - 'views/crm_team_views.xml' + 'views/crm_team_views.xml', + 'wizard/crm_opportunity_to_quotation_views.xml' ], 'auto_install': True, 'uninstall_hook': 'uninstall_hook' diff --git a/addons/sale_crm/models/crm_lead.py b/addons/sale_crm/models/crm_lead.py index 6d080f1b1f9..e5fe4e07203 100644 --- a/addons/sale_crm/models/crm_lead.py +++ b/addons/sale_crm/models/crm_lead.py @@ -60,3 +60,25 @@ class CrmLead(models.Model): res['invoiced']['target'] = self.env.user.target_sales_invoiced return res + + def action_sale_quotations_new(self): + if not self.partner_id: + return self.env.ref("sale_crm.crm_quotation_partner_action").read()[0] + else: + return self.action_new_quotation() + + def action_new_quotation(self): + action = self.env.ref("sale_crm.sale_action_quotations_new").read()[0] + action['context'] = { + 'search_default_opportunity_id': self.id, + 'default_opportunity_id': self.id, + 'search_default_partner_id': self.partner_id.id, + 'default_partner_id': self.partner_id.id, + 'default_team_id': self.team_id.id, + 'default_campaign_id': self.campaign_id.id, + 'default_medium_id': self.medium_id.id, + 'default_origin': self.name, + 'default_name': self.name, + 'default_source_id': self.source_id.id + } + return action diff --git a/addons/sale_crm/views/crm_lead_views.xml b/addons/sale_crm/views/crm_lead_views.xml index 1634b340bda..d0c79228246 100644 --- a/addons/sale_crm/views/crm_lead_views.xml +++ b/addons/sale_crm/views/crm_lead_views.xml @@ -7,15 +7,8 @@ -