From 7d656e961b69939a1b68abae10741a4f156c60f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me?= Date: Thu, 13 Feb 2014 15:30:44 +0100 Subject: [PATCH 1/7] [ADD] crm_project_issue: link module to create lead from issues and issues from lead bzr revid: jem@openerp.com-20140213143044-p06ef9scr32ihef2 --- addons/crm_project_issue/__init__.py | 3 +++ addons/crm_project_issue/__openerp__.py | 21 +++++++++++++++ addons/crm_project_issue/crm_lead.py | 10 +++++++ addons/crm_project_issue/crm_lead_view.xml | 27 +++++++++++++++++++ addons/crm_project_issue/project_issue.py | 14 ++++++++++ .../crm_project_issue/project_issue_view.xml | 17 ++++++++++++ 6 files changed, 92 insertions(+) create mode 100644 addons/crm_project_issue/__init__.py create mode 100644 addons/crm_project_issue/__openerp__.py create mode 100644 addons/crm_project_issue/crm_lead.py create mode 100644 addons/crm_project_issue/crm_lead_view.xml create mode 100644 addons/crm_project_issue/project_issue.py create mode 100644 addons/crm_project_issue/project_issue_view.xml diff --git a/addons/crm_project_issue/__init__.py b/addons/crm_project_issue/__init__.py new file mode 100644 index 00000000000..40302ae183c --- /dev/null +++ b/addons/crm_project_issue/__init__.py @@ -0,0 +1,3 @@ + +import project_issue +import crm_lead \ No newline at end of file diff --git a/addons/crm_project_issue/__openerp__.py b/addons/crm_project_issue/__openerp__.py new file mode 100644 index 00000000000..89ef20a655e --- /dev/null +++ b/addons/crm_project_issue/__openerp__.py @@ -0,0 +1,21 @@ +{ + 'name' : 'CRM Project Issues', + 'version': '1.0', + 'summary': 'Module linker between Leads and Issues', + 'sequence': '19', + 'category': 'Project Management', + 'complexity': 'easy', + 'description': + """ +CRM Project Issues +================== + +Link module to map leads and issues + """, + 'data': [ + 'project_issue_view.xml', + 'crm_lead_view.xml', + ], + 'depends' : ['crm', 'project_issue'], + 'installable': True, +} diff --git a/addons/crm_project_issue/crm_lead.py b/addons/crm_project_issue/crm_lead.py new file mode 100644 index 00000000000..ec83af18a39 --- /dev/null +++ b/addons/crm_project_issue/crm_lead.py @@ -0,0 +1,10 @@ + +from openerp.osv import osv, fields + + +class crm_lead(osv.Model): + _inherit = 'crm.lead' + + _columns = { + 'project_issue_ids': fields.one2many('project.issue', 'lead_id', "Project Issues"), + } diff --git a/addons/crm_project_issue/crm_lead_view.xml b/addons/crm_project_issue/crm_lead_view.xml new file mode 100644 index 00000000000..0e81f16fa9f --- /dev/null +++ b/addons/crm_project_issue/crm_lead_view.xml @@ -0,0 +1,27 @@ + + + + + + lead.form + crm.lead + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/crm_project_issue/project_issue.py b/addons/crm_project_issue/project_issue.py new file mode 100644 index 00000000000..9409aeb51ae --- /dev/null +++ b/addons/crm_project_issue/project_issue.py @@ -0,0 +1,14 @@ + +from openerp.osv import osv, fields + + +class project_issue(osv.Model): + _inherit = 'project.issue' + + _columns = { + 'lead_id': fields.many2one('crm.lead', ondelete='set null', string="Related lead"), + } + + _defaults = { + + } \ No newline at end of file diff --git a/addons/crm_project_issue/project_issue_view.xml b/addons/crm_project_issue/project_issue_view.xml new file mode 100644 index 00000000000..18a03b5a2c1 --- /dev/null +++ b/addons/crm_project_issue/project_issue_view.xml @@ -0,0 +1,17 @@ + + + + + + project.issue.form + project.issue + + + + + + + + + + \ No newline at end of file From 0ff108c00c72742693c20cb22d251bee7d463978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me?= Date: Mon, 17 Feb 2014 14:57:31 +0100 Subject: [PATCH 2/7] [ADD] change the link between lead and issue. Now : transfrom a lead into a issue and modify the mail thread bzr revid: jem@openerp.com-20140217135731-538vluw7i1gverjf --- addons/crm_project_issue/__init__.py | 3 +- addons/crm_project_issue/__openerp__.py | 3 +- addons/crm_project_issue/project_issue.py | 36 +++++++++--- .../crm_project_issue/project_issue_view.xml | 55 ++++++++++++++----- addons/mail/mail_thread.py | 31 +++++++++++ 5 files changed, 103 insertions(+), 25 deletions(-) diff --git a/addons/crm_project_issue/__init__.py b/addons/crm_project_issue/__init__.py index 40302ae183c..1d0a3f683ea 100644 --- a/addons/crm_project_issue/__init__.py +++ b/addons/crm_project_issue/__init__.py @@ -1,3 +1,2 @@ -import project_issue -import crm_lead \ No newline at end of file +import project_issue \ No newline at end of file diff --git a/addons/crm_project_issue/__openerp__.py b/addons/crm_project_issue/__openerp__.py index 89ef20a655e..e50a6dbfa2a 100644 --- a/addons/crm_project_issue/__openerp__.py +++ b/addons/crm_project_issue/__openerp__.py @@ -13,8 +13,7 @@ CRM Project Issues Link module to map leads and issues """, 'data': [ - 'project_issue_view.xml', - 'crm_lead_view.xml', + 'project_issue_view.xml' ], 'depends' : ['crm', 'project_issue'], 'installable': True, diff --git a/addons/crm_project_issue/project_issue.py b/addons/crm_project_issue/project_issue.py index 9409aeb51ae..8e7a0733932 100644 --- a/addons/crm_project_issue/project_issue.py +++ b/addons/crm_project_issue/project_issue.py @@ -1,14 +1,36 @@ from openerp.osv import osv, fields +class crm_lead_to_project_issue_wizard(osv.TransientModel): + """ wizard to convert a Lead into a Project Issue and move the Mail Thread """ -class project_issue(osv.Model): - _inherit = 'project.issue' + def action_lead_to_project_issue(self, cr, uid, ids, context=None): + # get the wizards + wizards = self.browse(cr, uid, ids, context=context) + lead_model = self.pool.get("crm.lead") + issue_model = self.pool.get("project.issue") + + for wizard in wizards: + # get the lead to transform + lead = lead_model.browse(cr, uid, wizard.lead_id.id, context=context) + # create new project.issue + vals = {} + vals["name"] = lead.name + vals["description"] = lead.description + vals["email_from"] = lead.email_from + vals["partner_id"] = lead.partner_id.id + vals["project_id"] = wizard.project_id.id + issue_id = issue_model.create(cr, uid, vals, context=None) + # move the mail thread + lead_model.transform_model_messages(cr, uid, wizard.lead_id.id, issue_id, "project.issue", context=context) + # delete the lead + lead_model.unlink(cr, uid, [wizard.lead_id.id], context=None) + return False + + + _name = "crm.lead2projectissue.wizard" _columns = { - 'lead_id': fields.many2one('crm.lead', ondelete='set null', string="Related lead"), - } - - _defaults = { - + "lead_id" : fields.many2one("crm.lead","Lead", domain=[("type","=","lead")]), + "project_id" : fields.many2one("project.project", "Project", domain=[("use_issues","=",True)]) } \ No newline at end of file diff --git a/addons/crm_project_issue/project_issue_view.xml b/addons/crm_project_issue/project_issue_view.xml index 18a03b5a2c1..57cf256bdd3 100644 --- a/addons/crm_project_issue/project_issue_view.xml +++ b/addons/crm_project_issue/project_issue_view.xml @@ -1,17 +1,44 @@ - + - - - - project.issue.form - project.issue - - - - - - - + - + + + CRM - Leads Form + crm.lead + + + +