[IMP]: mail_gateway: Improvement in (email) history for attachments
bzr revid: rpa@tinyerp.com-20100525063530-736inv1bz9xzo9j8
This commit is contained in:
+5
-2
@@ -203,9 +203,12 @@ class crm_case(object):
|
||||
address = self.pool.get('res.partner.address').browse(cr, uid, add)
|
||||
return {'value': {'email_from': address.email}}
|
||||
|
||||
def _history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, message_id=False, context={}):
|
||||
def _history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, message_id=False, attach=[], context={}):
|
||||
mailgate_pool = self.pool.get('mailgate.thread')
|
||||
return mailgate_pool._history(cr, uid, cases, keyword, history=history, email=email, details=details, email_from=email_from, message_id=message_id, context=context)
|
||||
return mailgate_pool._history(cr, uid, cases, keyword, history=history,\
|
||||
email=email, details=details, \
|
||||
email_from=email_from, message_id=message_id,\
|
||||
attach=attach, context=context)
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
"""Opens Case
|
||||
|
||||
@@ -99,7 +99,7 @@ class crm_send_new_email(osv.osv_memory):
|
||||
model = hist.model_id.model
|
||||
model_pool = self.pool.get(model)
|
||||
res_ids = model_pool.search(cr, uid, [('thread_id','=', hist.thread_id.id)])
|
||||
res_id = res_ids and res_ids[0] or False
|
||||
res_id = res_ids and res_ids[0] or False
|
||||
case = model_pool.browse(cr, uid, res_id)
|
||||
emails = [obj.email_to] + (obj.email_cc or '').split(',')
|
||||
emails = filter(None, emails)
|
||||
@@ -107,7 +107,11 @@ class crm_send_new_email(osv.osv_memory):
|
||||
|
||||
body = case_pool.format_body(body)
|
||||
email_from = getattr(obj, 'email_from', False)
|
||||
case_pool._history(cr, uid, [case], _('Send'), history=True, email=obj.email_to, details=body, email_from=email_from, message_id=message_id)
|
||||
|
||||
case_pool._history(cr, uid, [case], _('Send'), history=True, \
|
||||
email=obj.email_to, details=body, \
|
||||
email_from=email_from, message_id=message_id, \
|
||||
attach=attach)
|
||||
|
||||
x_headers = dict()
|
||||
#x_headers = {
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
from osv import osv, fields
|
||||
import time
|
||||
import base64
|
||||
|
||||
class one2many_domain(fields.one2many):
|
||||
def set(self, cr, obj, id, field, values, user=None, context=None):
|
||||
@@ -54,7 +55,7 @@ class mailgate_thread(osv.osv):
|
||||
'log_ids': one2many_domain('mailgate.message', 'thread_id', 'Logs', domain=[('history', '=', False)], required=False),
|
||||
}
|
||||
|
||||
def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, message_id=False, context={}):
|
||||
def __history(self, cr, uid, cases, keyword, history=False, email=False, details=None, email_from=False, message_id=False, attach=[], context={}):
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@@ -64,6 +65,7 @@ class mailgate_thread(osv.osv):
|
||||
@param history: Value True/False, If True it makes entry in case History otherwise in Case Log
|
||||
@param email: Email address if any
|
||||
@param details: Details of case history if any
|
||||
@param atach: Attachment sent in email
|
||||
@param context: A standard dictionary for contextual values"""
|
||||
if not context:
|
||||
context = {}
|
||||
@@ -72,8 +74,9 @@ class mailgate_thread(osv.osv):
|
||||
cases = self.pool.get(context['model']).browse(cr, uid, cases, context=context)
|
||||
|
||||
model_obj = self.pool.get('ir.model')
|
||||
|
||||
att_obj = self.pool.get('ir.attachment')
|
||||
obj = self.pool.get('mailgate.message')
|
||||
|
||||
for case in cases:
|
||||
model_ids = model_obj.search(cr, uid, [('model', '=', case._name)])
|
||||
data = {
|
||||
@@ -84,8 +87,11 @@ class mailgate_thread(osv.osv):
|
||||
'thread_id': case.thread_id.id,
|
||||
'message_id': message_id,
|
||||
}
|
||||
|
||||
attachments = []
|
||||
if history:
|
||||
for att in attach:
|
||||
attachments.append(att_obj.create(cr, uid, {'name': att[0], 'datas': base64.encodestring(att[1])}))
|
||||
|
||||
data = {
|
||||
'name': keyword,
|
||||
'history': True,
|
||||
@@ -102,6 +108,7 @@ class mailgate_thread(osv.osv):
|
||||
'partner_id': case.partner_id.id,
|
||||
'thread_id': case.thread_id.id,
|
||||
'message_id': message_id,
|
||||
'attachment_ids': [(6, 0, attachments)]
|
||||
}
|
||||
res = obj.create(cr, uid, data, context)
|
||||
return True
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
</page>
|
||||
<page string="Attachments">
|
||||
<separator string="Attachments" colspan="4"/>
|
||||
<field name="attachment_ids" nolabel="1" colspan="4" />
|
||||
<field name="attachment_ids" nolabel="1" colspan="4" readonly="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user