summaryrefslogtreecommitdiff
path: root/addons/plugin/plugin_handler.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/plugin/plugin_handler.py')
-rw-r--r--addons/plugin/plugin_handler.py18
1 files changed, 12 insertions, 6 deletions
diff --git a/addons/plugin/plugin_handler.py b/addons/plugin/plugin_handler.py
index fd5ca7da6c6..ef990170e64 100644
--- a/addons/plugin/plugin_handler.py
+++ b/addons/plugin/plugin_handler.py
@@ -12,13 +12,14 @@ class plugin_handler(osv.osv_memory):
def _make_url(self, cr, uid, res_id, model, context=None):
"""
- @param id: on which document the message is pushed
+ @param res_id: on which document the message is pushed
@param model: name of the document linked with the mail
@return url
"""
base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url', default='http://localhost:8069', context=context)
if base_url:
- base_url += '/?id=%s&model=%s'%(res_id,model)
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ base_url += '/web/webclient/login?db=%s&login=%s&key=%s#id=%s&model=%s' % (cr.dbname, user.login, user.password, res_id, model)
return base_url
def is_installed(self, cr, uid):
@@ -38,9 +39,9 @@ class plugin_handler(osv.osv_memory):
(model_name, res_id, url, name_get)
"""
mail_message_obj = self.pool.get('mail.message')
- model = False
+ model = ""
res_id = 0
- url = False
+ url = ""
name = ""
msg = mail_message_obj.parse_message(email)
references = [msg.get('message-id')]
@@ -53,7 +54,7 @@ class plugin_handler(osv.osv_memory):
res_id = msg.res_id
model = msg.model
url = self._make_url(cr, uid, res_id, model)
- name = self.pool.get(model).name_get(cr, uid, res_id)[0][1]
+ name = self.pool.get(model).name_get(cr, uid, [res_id])[0][1]
return (model,res_id, url,name)
@@ -92,6 +93,7 @@ class plugin_handler(osv.osv_memory):
msg = mail_message.parse_message(email)
message_id = msg.get('message-id')
mail_ids = mail_message.search(cr, uid, [('message_id','=',message_id),('res_id','=',res_id),('model','=',model)])
+
if message_id and mail_ids :
mail_record = mail_message.browse(cr, uid, mail_ids)[0]
res_id = mail_record.res_id
@@ -103,8 +105,12 @@ class plugin_handler(osv.osv_memory):
res_id = model_obj.message_new(cr, uid, msg)
notify = "Mail succefully pushed, a new %s has been created " % model
else:
- model_obj.message_append_dict(cr, uid, [res_id], msg)
+ if model == 'res.partner':
+ model_obj = self.pool.get('mail.thread')
+ res = self.pool.get(model).browse(cr, uid, [res_id])
+ model_obj.message_append_dict(cr, uid, res, msg)
notify = "Mail succefully pushed"
+
url = self._make_url(cr, uid, res_id, model)
return (model, res_id, url, notify)