res = self.create(cr, uid, vals, context)
attachents = msg.get('attachments', [])
+ att_ids = []
for attactment in attachents or []:
data_attach = {
'name': attactment,
'res_model': self._name,
'res_id': res,
}
- self.pool.get('ir.attachment').create(cr, uid, data_attach)
+ att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach))
- return res
+ return res,att_ids
def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context=None):
"""
res = self.create(cr, uid, vals, context)
attachents = msg.get('attachments', [])
+ att_ids = []
for attactment in attachents or []:
data_attach = {
'name': attactment,
'res_model': self._name,
'res_id': res,
}
- self.pool.get('ir.attachment').create(cr, uid, data_attach)
+ att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach))
- return res
+ return res,att_ids
def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context=None):
"""
res = self.create(cr, uid, vals, context)
attachents = msg.get('attachments', [])
+ att_ids = []
for attactment in attachents or []:
data_attach = {
'name': attactment,
'res_model': self._name,
'res_id': res,
}
- self.pool.get('ir.attachment').create(cr, uid, data_attach)
+ att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach))
- return res
+ return res,att_ids
def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context=None):
"""
if res:
vals.update(res)
res = self.create(cr, uid, vals, context=context)
-
+ att_ids = []
attachents = msg.get('attachments', [])
for attactment in attachents or []:
data_attach = {
'res_model': self._name,
'res_id': res,
}
- attach_obj.create(cr, uid, data_attach, context=context)
+ att_ids.append(attach_obj.create(cr, uid, data_attach, context=context))
- return res
+ return res,att_ids
def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context=None):
"""
for case in cases:
attachments = []
- for att in attach:
- attachments.append(att_obj.create(cr, uid, {'res_model':case._name,'res_id':case.id,'name': att[0], 'datas': base64.encodestring(att[1])}))
-
+ if attach:
+ for att in attach:
+ if isinstance(att,(int,long)):
+ attachments.append(att)
+ elif isinstance(att,dict):
+ attachments.append(att_obj.create(cr, uid, {'res_model':case._name,'res_id':case.id,'name': att[0], 'datas': base64.encodestring(att[1])}))
partner_id = hasattr(case, 'partner_id') and (case.partner_id and case.partner_id.id or False) or False
if not partner_id and case._name == 'res.partner':
partner_id = case.id
action_data = False
action_pool = self.pool.get('ir.actions.act_window')
message_pool = self.browse(cr ,uid, ids, context=context)[0]
- att_ids = [x.id for x in message_pool.attachment_ids]
+ att_ids = [x.id for x in message_pool.attachment_ids]
action_ids = action_pool.search(cr, uid, [('res_model', '=', 'ir.attachment')])
if action_ids:
action_data = action_pool.read(cr, uid, action_ids[0], context=context)
@param msg: email.message.Message to forward
@param email_error: Default Email address in case of any Problem
"""
- model_pool = self.pool.get(model)
+ model_pool = self.pool.get(model)
for res in model_pool.browse(cr, uid, res_ids, context=context):
message_followers = model_pool.message_followers(cr, uid, [res.id])[res.id]
message_followers_emails = self.to_email(','.join(filter(None, message_followers)))
def create_record(msg):
att_ids = []
if hasattr(model_pool, 'message_new'):
- res_id = model_pool.message_new(cr, uid, msg, context=context)
+ res_id,att_ids = model_pool.message_new(cr, uid, msg, context=context)
if custom_values:
model_pool.write(cr, uid, [res_id], custom_values, context=context)
else:
'res_id': res_id,
}
att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach))
-
return res_id, att_ids
# Warning: message_from_string doesn't always work correctly on unicode,
email_cc = msg.get('cc'),
message_id = msg.get('message-id'),
references = msg.get('references', False) or msg.get('in-reply-to', False),
- attach = attachments.items(),
+ attach = attachment_ids or attachments.items(),
email_date = msg.get('date'),
context = context)
else:
self.convert_to_bug(cr, uid, [res], context=context)
attachents = msg.get('attachments', [])
+ att_ids = []
for attactment in attachents or []:
data_attach = {
'name': attactment,
'res_model': self._name,
'res_id': res,
}
- self.pool.get('ir.attachment').create(cr, uid, data_attach)
+ att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach))
- return res
+ return res, att_ids
def message_update(self, cr, uid, ids, vals=None, msg="", default_act='pending', context=None):
"""
res = self.create(cr, uid, data)
attachments = msg.get('attachments', [])
+ att_ids = []
for attachment in attachments or []:
data_attach = {
'name': attachment,
'res_model': self._name,
'res_id': res,
}
- self.pool.get('ir.attachment').create(cr, uid, data_attach)
+ att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach))
- return res
+ return res,att_ids
def message_update(self, cr, uid, id, msg, data={}, default_act='pending'):
mailgate_obj = self.pool.get('email.server.tools')
return True
def message_followers(self, cr, uid, ids, context=None):
- res = []
+ res = {}
if isinstance(ids, (str, int, long)):
select = [ids]
else:
select = ids
for task in self.browse(cr, uid, select, context=context):
user_email = (task.user_id and task.user_id.address_id and task.user_id.address_id.email) or False
- res += [(user_email, False, False, task.priority)]
- if isinstance(ids, (str, int, long)):
- return len(res) and res[0] or False
+ l = [user_email]
+ res[task.id] = l
return res
def msg_send(self, cr, uid, id, *args, **argv):