Files
odoo_source/addons/crm_project/wizard/crm_lead_convert2task.py
T
Nimesh Jethva 71820dbc20 [IMP]crm_*, sale_*: Improvement in model description
Purpose of this commit is to give description more "business oriented"
because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers.

Related Task ID : 37311
2018-09-21 11:45:14 +02:00

60 lines
2.1 KiB
Python

from odoo import api, fields, models
class CrmLeadConvert2Task(models.TransientModel):
""" wizard to convert a Lead into a Project task and move the Mail Thread """
_name = "crm.lead.convert2task"
_inherit = 'crm.partner.binding'
_description = 'Lead convert to Task'
@api.model
def default_get(self, fields):
result = super(CrmLeadConvert2Task, self).default_get(fields)
lead_id = self.env.context.get('active_id')
if lead_id:
result['lead_id'] = lead_id
return result
lead_id = fields.Many2one('crm.lead', string='Lead', domain=[('type', '=', 'lead')])
project_id = fields.Many2one('project.project', string='Project')
@api.multi
def action_lead_to_project_task(self):
self.ensure_one()
# get the lead to transform
lead = self.lead_id
partner_id = self._find_matching_partner()
if not partner_id and (lead.partner_name or lead.contact_name):
partner_id = lead.handle_partner_assignation()[lead.id]
# create new project.task
vals = {
"name": lead.name,
"description": lead.description,
"email_from": lead.email_from,
"project_id": self.project_id.id,
"partner_id": partner_id,
"user_id": None
}
task = self.env['project.task'].create(vals)
# move the mail thread
lead.message_change_thread(task)
# move attachments
attachments = self.env['ir.attachment'].search([('res_model', '=', 'crm.lead'), ('res_id', '=', lead.id)])
attachments.write({'res_model': 'project.task', 'res_id': task.id})
# archive the lead
lead.write({'active': False})
# return the action to go to the form view of the new Task
view = self.env.ref('project.view_task_form2')
return {
'name': 'Task created',
'view_type': 'form',
'view_mode': 'form',
'view_id': view.id,
'res_model': 'project.task',
'type': 'ir.actions.act_window',
'res_id': task.id,
'context': self.env.context
}