From b36be96596bf0ea825a5188d7bb21a2d53f2ea28 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Tue, 30 Mar 2010 16:10:29 +0530 Subject: [PATCH] [FIX] crm: set default email_from, email_to in crm history on send/receive mail bzr revid: hmo@tinyerp.com-20100330104029-l9j4v0dtiuv3rn7y --- addons/crm/crm.py | 56 ++++++------------- addons/crm/crm_claims_view.xml | 10 ++-- addons/crm/crm_fund_view.xml | 10 ++-- addons/crm/crm_helpdesk_view.xml | 10 ++-- addons/crm/crm_lead_view.xml | 6 +- addons/crm/crm_opportunity_view.xml | 10 ++-- addons/crm/crm_view.xml | 10 ++-- .../openerp_mailgate/openerp_mailgate.py | 7 +-- addons/crm/wizard/crm_send_email.py | 32 ++++++----- addons/crm/wizard/crm_send_email_view.xml | 10 ++-- addons/hr_recruitment/hr_recruitment_view.xml | 5 +- addons/project_issue/project_issue_view.xml | 9 ++- 12 files changed, 74 insertions(+), 101 deletions(-) diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 6473ace2e3a..45d043426cd 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -53,13 +53,6 @@ AVAILABLE_PRIORITIES = [ ('2','High'), ('1','Highest') ] - -icon_lst = { - 'form':'STOCK_NEW', - 'tree':'STOCK_JUSTIFY_FILL', - 'calendar':'STOCK_SELECT_COLOR' -} - class crm_case_section(osv.osv): _name = "crm.case.section" _description = "Sales Teams" @@ -321,22 +314,7 @@ class crm_case(osv.osv): s[section] = dict([(v, k) for (k, v) in s[section].iteritems()]) if st in s[section]: self.write(cr, uid, [case.id], {'stage_id': s[section][st]}) - return True - - def onchange_case_id(self, cr, uid, ids, case_id, name, partner_id, context={}): - if not case_id: - return {} - case = self.browse(cr, uid, case_id, context=context) - value = {} - if not name: - value['name'] = case.name - if (not partner_id) and case.partner_id: - value['partner_id'] = case.partner_id.id - if case.partner_address_id: - value['partner_address_id'] = case.partner_address_id.id - if case.email_from: - value['email_from'] = case.email_from - return {'value': value} + return True def history(self, cr, uid, ids, keyword, history=False, email=False, details=None, context={}): cases = self.browse(cr, uid, ids, context=context) @@ -344,7 +322,7 @@ class crm_case(osv.osv): history=history, email=email, details=details,\ context=context) - def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, context={}): + def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, context={}): model_obj = self.pool.get('ir.model') for case in cases: model_ids = model_obj.search(cr, uid, [('model','=',case._name)]) @@ -360,11 +338,12 @@ class crm_case(osv.osv): if history: obj = self.pool.get('crm.case.history') data['description'] = details or case.description - data['email'] = email or \ + data['email_to'] = email or \ + (case.user_id and case.user_id.address_id and \ + case.user_id.address_id.email) or False + data['email_from'] = email_from or \ (case.user_id and case.user_id.address_id and \ case.user_id.address_id.email) or False - data['email_from'] = (case.user_id and case.user_id.address_id and \ - case.user_id.address_id.email) or tools.config.get('email_from',False) res = obj.create(cr, uid, data, context) return True _history = __history @@ -403,12 +382,10 @@ class crm_case(osv.osv): if not case.description: raise osv.except_osv(_('Error!'), _('Can not send mail with empty body,you should have description in the body')) - self.__history(cr, uid, cases, _('Send'), history=True, email=False) + for case in cases: self.write(cr, uid, [case.id], { - 'description': False, - 'som': False, - 'canal_id': False, + 'description': False, }) emails = [case.email_from] + (case.email_cc or '').split(',') emails = filter(None, emails) @@ -429,6 +406,7 @@ class crm_case(osv.osv): reply_to=case.section_id.reply_to, openobject_id=str(case.id) ) + self.__history(cr, uid, [case], _('Send'), history=True, email=emails, details=body, email_from=emailfrom) return True def onchange_partner_id(self, cr, uid, ids, part, email=False): @@ -522,9 +500,7 @@ class crm_case_log(osv.osv): _order = "id desc" _columns = { 'name': fields.char('Status', size=64), - 'som': fields.many2one('res.partner.som', 'State of Mind'), - 'date': fields.datetime('Date'), - 'canal_id': fields.many2one('res.partner.canal', 'Channel'), + 'date': fields.datetime('Date'), 'section_id': fields.many2one('crm.case.section', 'Section'), 'user_id': fields.many2one('res.users', 'User Responsible', readonly=True), 'model_id': fields.many2one('ir.model', "Model"), @@ -550,8 +526,8 @@ class crm_case_history(osv.osv): _columns = { 'description': fields.text('Description'), 'note': fields.function(_note_get, method=True, string="Description", type="text"), - 'email': fields.char('Email', size=84), - 'email_from' : fields.char('From Email', size=84), + 'email_to': fields.char('Email TO', size=84), + 'email_from' : fields.char('Email From', size=84), 'log_id': fields.many2one('crm.case.log','Log',ondelete='cascade'), } crm_case_history() @@ -595,16 +571,16 @@ class crm_email_add_cc_wizard(osv.osv_memory): case = model_pool.browse(cr, uid, history_line.log_id.res_id) body = history_line.description.replace('\n','\n> ') flag = tools.email_send( - case.user_id.address_id.email, - [case.email_from], + email, + [case.user_id.address_id.email], subject or '['+str(case.id)+'] '+case.name, - model_pool.format_body(body), - email_cc = [email], + model_pool.format_body(body), openobject_id=str(case.id), subtype="html" ) if flag: model_pool.write(cr, uid, case.id, {'email_cc' : case.email_cc and case.email_cc +','+ email or email}) + self.__history(cr, uid, [case], _('Send'), history=True, email=email, details=body, email_from=case.user_id.address_id.email) else: raise osv.except_osv(_('Email Fail!'),("Lastest Email is not sent successfully")) return {} diff --git a/addons/crm/crm_claims_view.xml b/addons/crm/crm_claims_view.xml index 50c061121a1..c1a3345e51b 100644 --- a/addons/crm/crm_claims_view.xml +++ b/addons/crm/crm_claims_view.xml @@ -134,9 +134,7 @@ - - - + @@ -148,8 +146,8 @@
- - + +