From 1e1ef3397ced1b9781fe9ce11fff883f3a993235 Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Fri, 5 Feb 2010 14:38:29 +0530 Subject: [PATCH] [FIX]: crm: Fixed problem in mail reply wizard bzr revid: rpa@openerp.co.in-20100205090829-b030umfdsgqj63do --- addons/crm/crm.py | 26 ++++++++-------------- addons/crm/wizard/wizard_crm_send_email.py | 18 +++++++++------ 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 9343a26331e..490d0e0afba 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -719,30 +719,23 @@ class crm_case(osv.osv): def onchange_partner_id(self, cr, uid, ids, part, email=False): if not part: - return {'value':{'partner_address_id': False}} + return {'value':{'partner_address_id': False, + 'email_from': False, + 'partner_name2': False}} addr = self.pool.get('res.partner').address_get(cr, uid, [part], ['contact']) - data = {'partner_address_id':addr['contact']} - if addr['contact'] and not email: - data['email_from'] = self.pool.get('res.partner.address').browse(cr, uid, addr['contact']).email + data = {'partner_address_id': addr['contact']} + data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value']) return {'value':data} def onchange_partner_address_id(self, cr, uid, ids, add, email=False): data = {} if not add: - return {'value': {'email_from': False}} - data['email_from'] = self.pool.get('res.partner.address').browse(cr, uid, add).email + return {'value': {'email_from': False, 'partner_name2': False}} + address= self.pool.get('res.partner.address').browse(cr, uid, add) + data['email_from'] = address.email + data['partner_name2'] = address.name or '' return {'value': data} - def onchange_partner_id(self, cr, uid, ids, part): - data = {} - if not part: - return {'value': {'partner_address_id': False, - 'email_from': False}} - add = self.pool.get('res.partner').address_get(cr, uid, [part])['default'] - data['partner_address_id'] = add - data.update(self.onchange_partner_address_id(cr, uid, ids, add)['value']) - return {'value': data} - def case_close(self, cr, uid, ids, *args): cases = self.browse(cr, uid, ids) cases[0].state # to fill the browse record cache @@ -882,7 +875,6 @@ class crm_email_add_cc_wizard(osv.osv_memory): if not context: return {} history_line = self.pool.get('crm.case.history').browse(cr, uid, context['active_id']) - model_obj = self.pool.get('ir.model') model = history_line.log_id.model_id.model model_pool = self.pool.get(model) case = model_pool.browse(cr, uid, history_line.log_id.res_id) diff --git a/addons/crm/wizard/wizard_crm_send_email.py b/addons/crm/wizard/wizard_crm_send_email.py index 181ff2926c6..d6b3732d5e7 100644 --- a/addons/crm/wizard/wizard_crm_send_email.py +++ b/addons/crm/wizard/wizard_crm_send_email.py @@ -51,12 +51,13 @@ email_send_fields = { # this sends an email to ALL the addresses of the selected partners. def _mass_mail_send(self, cr, uid, data, context): pool = pooler.get_pool(cr.dbname) - case_pool=pool.get(data['model']) hist_obj = pool.get('crm.case.history').browse(cr,uid,data['ids'])[0] - case = hist_obj.log_id.case_id - case_pool._history(cr, uid, [case], _('Send'), history=True, email=False) - case_pool.write(cr, uid, [case.id], { + model = hist_obj.log_id.model_id.model + model_pool = pool.get(model) + case = model_pool.browse(cr, uid, hist_obj.log_id.res_id) + model_pool._history(cr, uid, [case], _('Send'), history=True, email=False) + model_pool.write(cr, uid, [case.id], { 'som': False, 'canal_id': False, }) @@ -69,9 +70,10 @@ def _mass_mail_send(self, cr, uid, data, context): case.user_id.address_id.email, emails, data['form']['subject'], - case_pool.format_body(body), + model_pool.format_body(body), reply_to=case.section_id.reply_to, - openobject_id=str(case.id) + openobject_id=str(case.id), + subtype="html" ) return {} @@ -80,7 +82,9 @@ def _get_info(self, cr, uid, data, context): raise wizard.except_wizard(_('Error'),_('There is no mail to reply!')) pool = pooler.get_pool(cr.dbname) hist_obj = pool.get('crm.case.history').browse(cr,uid,data['ids'])[0] - case = hist_obj.log_id.case_id + model = hist_obj.log_id.model_id.model + model_pool = pool.get(model) + case = model_pool.browse(cr, uid, hist_obj.log_id.res_id) if not case.email_from: raise wizard.except_wizard(_('Error'),_('You must put a Partner eMail to use this action!')) if not case.user_id: