From 4fe15ff183e883ad6f8f8dfe83213f3f34bfc67b Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Wed, 6 Apr 2011 16:46:47 +0530 Subject: [PATCH 1/3] [FIX] crm, crm_claim, crm_helpdesk, hr_recruitent, project_issue, project_mailgate: fix double attachment creation error as removing attachment from message_new() bzr revid: rha@tinyerp.com-20110406111647-8xcyc2ershxj6q1a --- addons/crm/crm_lead.py | 15 +-------------- addons/crm_claim/crm_claim.py | 15 +-------------- addons/crm_helpdesk/crm_helpdesk.py | 15 +-------------- addons/hr_recruitment/hr_recruitment.py | 18 +----------------- addons/project_issue/project_issue.py | 13 ------------- addons/project_mailgate/project_mailgate.py | 16 +--------------- 6 files changed, 5 insertions(+), 87 deletions(-) diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py index d8b4ebaa10e..e796cf7e654 100644 --- a/addons/crm/crm_lead.py +++ b/addons/crm/crm_lead.py @@ -348,20 +348,7 @@ class crm_lead(crm_case, osv.osv): if res: vals.update(res) - res = self.create(cr, uid, vals, context) - attachents = msg.get('attachments', []) - for attactment in attachents or []: - data_attach = { - 'name': attactment, - 'datas':binascii.b2a_base64(str(attachents.get(attactment))), - 'datas_fname': attactment, - 'description': 'Mail attachment', - 'res_model': self._name, - 'res_id': res, - } - self.pool.get('ir.attachment').create(cr, uid, data_attach) - - return res + return self.create(cr, uid, vals, context) def message_update(self, cr, uid, ids, msg, vals={}, default_act='pending', context=None): """ diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py index 9883c8720ac..f5cceb59498 100644 --- a/addons/crm_claim/crm_claim.py +++ b/addons/crm_claim/crm_claim.py @@ -202,20 +202,7 @@ class crm_claim(crm.crm_case, osv.osv): if res: vals.update(res) - res = self.create(cr, uid, vals, context) - attachents = msg.get('attachments', []) - for attactment in attachents or []: - data_attach = { - 'name': attactment, - 'datas':binascii.b2a_base64(str(attachents.get(attactment))), - 'datas_fname': attactment, - 'description': 'Mail attachment', - 'res_model': self._name, - 'res_id': res, - } - self.pool.get('ir.attachment').create(cr, uid, data_attach) - - return res + return self.create(cr, uid, vals, context) def message_update(self, cr, uid, ids, msg, vals={}, default_act='pending', context=None): """ diff --git a/addons/crm_helpdesk/crm_helpdesk.py b/addons/crm_helpdesk/crm_helpdesk.py index 1e0482f1834..ff503a8fb3e 100644 --- a/addons/crm_helpdesk/crm_helpdesk.py +++ b/addons/crm_helpdesk/crm_helpdesk.py @@ -126,20 +126,7 @@ class crm_helpdesk(crm.crm_case, osv.osv): if res: vals.update(res) - res = self.create(cr, uid, vals, context) - attachents = msg.get('attachments', []) - for attactment in attachents or []: - data_attach = { - 'name': attactment, - 'datas':binascii.b2a_base64(str(attachents.get(attactment))), - 'datas_fname': attactment, - 'description': 'Mail attachment', - 'res_model': self._name, - 'res_id': res, - } - self.pool.get('ir.attachment').create(cr, uid, data_attach) - - return res + return self.create(cr, uid, vals, context) def message_update(self, cr, uid, ids, msg, vals={}, default_act='pending', context=None): """ diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index b3eaad6d000..24b226f922e 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -309,8 +309,6 @@ class hr_applicant(crm.crm_case, osv.osv): @param uid: the current user’s ID for security checks """ thread_pool = self.pool.get('email.thread') - attach_obj = self.pool.get('ir.attachment') - subject = msg.get('subject') body = msg.get('body') msg_from = msg.get('from') @@ -329,21 +327,7 @@ class hr_applicant(crm.crm_case, osv.osv): res = thread_pool.get_partner(cr, uid, msg.get('from')) if res: vals.update(res) - res = self.create(cr, uid, vals, context=context) - - attachents = msg.get('attachments', []) - for attactment in attachents or []: - data_attach = { - 'name': attactment, - 'datas':binascii.b2a_base64(str(attachents.get(attactment))), - 'datas_fname': attactment, - 'description': 'Mail attachment', - 'res_model': self._name, - 'res_id': res, - } - attach_obj.create(cr, uid, data_attach, context=context) - - return res + return self.create(cr, uid, vals, context=context) def message_update(self, cr, uid, ids, msg, vals={}, default_act='pending', context=None): """ diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index bfb359ceeef..11e76f142a1 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -397,19 +397,6 @@ class project_issue(crm.crm_case, osv.osv): context.update({'state_to' : 'draft'}) res = self.create(cr, uid, vals, context=context) self.convert_to_bug(cr, uid, [res], context=context) - - attachents = msg.get('attachments', []) - for attactment in attachents or []: - data_attach = { - 'name': attactment, - 'datas': binascii.b2a_base64(str(attachents.get(attactment))), - 'datas_fname': attactment, - 'description': 'Mail attachment', - 'res_model': self._name, - 'res_id': res, - } - self.pool.get('ir.attachment').create(cr, uid, data_attach) - return res def message_update(self, cr, uid, ids, msg, vals=None, default_act='pending', context=None): diff --git a/addons/project_mailgate/project_mailgate.py b/addons/project_mailgate/project_mailgate.py index a50b15bd9e5..29c813b5d8a 100644 --- a/addons/project_mailgate/project_mailgate.py +++ b/addons/project_mailgate/project_mailgate.py @@ -52,21 +52,7 @@ class project_tasks(osv.osv): res = thread_obj.get_partner(cr, uid, msg_from) if res: data.update(res) - res = self.create(cr, uid, data) - - attachments = msg.get('attachments', []) - for attachment in attachments or []: - data_attach = { - 'name': attachment, - 'datas':binascii.b2a_base64(str(attachments.get(attachment))), - 'datas_fname': attachment, - 'description': 'Mail attachment', - 'res_model': self._name, - 'res_id': res, - } - self.pool.get('ir.attachment').create(cr, uid, data_attach) - - return res + return self.create(cr, uid, data) def message_update(self, cr, uid, id, msg, data={}, default_act='pending'): thread_obj = self.pool.get('email.thread') From ed511093415a497a634a5d8d22993208c75b9950 Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Wed, 6 Apr 2011 16:54:54 +0530 Subject: [PATCH 2/3] [FIX] email_template: fix module reference to mail from email in email_template.py bzr revid: rha@tinyerp.com-20110406112454-gswjtw5v8hl7s3gb --- addons/email_template/email_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 10df9798b0b..989a9d07eb5 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -175,7 +175,7 @@ This is useful for CRM leads for example"), data_obj = self.pool.get('ir.model.data') for template in self.browse(cr, uid, ids, context=context): src_obj = template.model_id.model - model_data_id = data_obj._get_id(cr, uid, 'email', 'email_compose_message_wizard_form') + model_data_id = data_obj._get_id(cr, uid, 'mail', 'email_compose_message_wizard_form') res_id = data_obj.browse(cr, uid, model_data_id, context=context).res_id vals['ref_ir_act_window'] = action_obj.create(cr, uid, { 'name': template.name, From abdd3038545eb20e7a8eb711bd3bb936c4ec2d4b Mon Sep 17 00:00:00 2001 From: "Rifakat Haradwala (Open ERP)" Date: Wed, 6 Apr 2011 18:00:00 +0530 Subject: [PATCH 3/3] [FIX] email_template: fix reference for generate_tracking_message_id() bzr revid: rha@tinyerp.com-20110406123000-ow2j0mjfhplp1lb5 --- addons/email_template/email_template.py | 2 +- addons/email_template/wizard/email_template_preview.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/addons/email_template/email_template.py b/addons/email_template/email_template.py index 989a9d07eb5..476174db32f 100644 --- a/addons/email_template/email_template.py +++ b/addons/email_template/email_template.py @@ -394,7 +394,7 @@ This is useful for CRM leads for example"), elif template['track_campaign_item']: # get appropriate message-id - values.update({'message_id': smtp_pool.generate_tracking_message_id(record_id)}) + values.update({'message_id': tools.generate_tracking_message_id(record_id)}) #Use signatures if allowed if template.user_signature: diff --git a/addons/email_template/wizard/email_template_preview.py b/addons/email_template/wizard/email_template_preview.py index f1636a64de8..00e20b98cf3 100644 --- a/addons/email_template/wizard/email_template_preview.py +++ b/addons/email_template/wizard/email_template_preview.py @@ -93,8 +93,7 @@ class email_template_preview(osv.osv_memory): if template.message_id: vals['message_id'] = self.get_template_value(cr, uid, message_id, model, res_id, context) elif template.track_campaign_item: - smtp_server_obj = self.pool.get('ir.mail_server') - vals['message_id'] = smtp_server_obj.generate_tracking_message_id(res_id) + vals['message_id'] = tools.generate_tracking_message_id(res_id) vals['subject'] = self.get_template_value(cr, uid, template.subject, model, res_id, context) description = self.get_template_value(cr, uid, template.body, model, res_id, context) or '' if template.user_signature: