From cfb529099677673a90ac86dc0deeda4a2decc6b7 Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Thu, 5 Nov 2009 19:12:43 +0530 Subject: [PATCH] [IMP]: Improvements in crm for add cc wizard, included the last sent mail in communication history instead of case description bzr revid: rpa@tinyerp.com-20091105134243-oh7fyurfs711uw5g --- addons/crm/crm.py | 25 +++++++++++++++---- addons/crm/crm_view.xml | 9 +++---- .../crm/wizard/wizard_crm_new_send_email.py | 2 +- addons/crm/wizard/wizard_crm_send_email.py | 2 +- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 673b14fe65d..8b3f1caa4c7 100755 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -755,7 +755,7 @@ class crm_case(osv.osv): }) return True - def __history(self, cr, uid, cases, keyword, history=False, email=False, context={}): + def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, context={}): for case in cases: data = { 'name': keyword, @@ -769,7 +769,7 @@ class crm_case(osv.osv): obj = self.pool.get('crm.case.log') if history and case.description: obj = self.pool.get('crm.case.history') - data['description'] = case.description + data['description'] = details or case.description data['email'] = email or \ (case.user_id and case.user_id.address_id and \ case.user_id.address_id.email) or False @@ -1048,6 +1048,7 @@ class crm_email_add_cc_wizard(osv.osv_memory): 'user_id': fields.many2one('res.users',"User"), 'partner_id': fields.many2one('res.partner',"Partner"), 'email': fields.char('Email', size=32), + 'subject': fields.char('Subject', size=32), } def change_email(self, cr, uid, ids, user, partner): @@ -1066,13 +1067,27 @@ class crm_email_add_cc_wizard(osv.osv_memory): def add_cc(self, cr, uid, ids, context={}): - email = self.read(cr, uid, ids[0])['email'] + data = self.read(cr, uid, ids[0]) + email = data['email'] + subject = data['subject'] + if not context: return {} history_line = self.pool.get('crm.case.history').browse(cr, uid, context['active_id']) crm_case = self.pool.get('crm.case') - case_id = history_line.log_id.case_id.id - crm_case.write(cr, uid, case_id, {'email_cc' : email}) + case = history_line.log_id.case_id + body = history_line.description.replace('\n','\n> ') + crm_case.write(cr, uid, case.id, {'email_cc' : email}) + flag = tools.email_send( + case.user_id.address_id.email, + [case.email_from], + subject or '['+str(case.id)+'] '+case.name, + crm_case.format_body(body), + email_cc = [email], + tinycrm=str(case.id) + ) + if flag: + cr.commit() return {} crm_email_add_cc_wizard() diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index 4a30c27f5f8..80a08c87fc2 100755 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -246,16 +246,15 @@
- + + + on_change="change_email(user_id, partner_id)"/> + on_change="change_email(user_id, partner_id)"/>