summaryrefslogtreecommitdiff
path: root/addons/plugin/plugin_handler.py
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2011-11-22 16:55:25 +0530
committerAntony Lesuisse <al@openerp.com>2011-11-22 16:55:25 +0530
commit2503908223188a55d9fefef2edb72dc65fd62590 (patch)
treea8f16aeef083df273e0f87bbd63be2d44ff19e3e /addons/plugin/plugin_handler.py
parentc8acea4be45fc1ad13086d0a6dd29513f8eced02 (diff)
[IMP] outlook function prototype for plugin
bzr revid: al@openerp.com-20111122112525-wf86e3q6tgb2mgas
Diffstat (limited to 'addons/plugin/plugin_handler.py')
-rw-r--r--addons/plugin/plugin_handler.py59
1 files changed, 30 insertions, 29 deletions
diff --git a/addons/plugin/plugin_handler.py b/addons/plugin/plugin_handler.py
index 202b050c722..b21f7423263 100644
--- a/addons/plugin/plugin_handler.py
+++ b/addons/plugin/plugin_handler.py
@@ -9,7 +9,7 @@ from osv import osv, fields
class plugin_handler(osv.osv_memory):
_name = 'plugin.handler'
-
+
def _make_url(self, cr, uid, res_id, model, context=None):
"""
@param id: on which document the message is pushed
@@ -20,16 +20,16 @@ class plugin_handler(osv.osv_memory):
if base_url:
base_url += '/?id=%s&model=%s'%(res_id,model)
return base_url
-
+
def is_installed(self, cr, uid):
return True
-
+
def partner_get(self, cr, uid, address_email):
ids = self.pool.get('res.partner.address').search(cr, uid, [('partner_id', '!=', False), ('email', 'like', address_email)])
res_id = ids and self.pool.get('res.partner.address').browse(cr, uid, ids[0]).partner_id.id or 0
url = self._make_url(cr, uid, res_id, 'res.partner')
return ('res.partner', res_id , url)
-
+
def document_get(self, cr, uid, email):
"""
@param email: email is a standard RFC2822 email message
@@ -55,7 +55,7 @@ class plugin_handler(osv.osv_memory):
model = msg.model
url = self._make_url(cr, uid, res_id, model)
return (model, res_id, url)
-
+
def document_type(self, cr, uid, context=None):
"""
Return the list of available model to push
@@ -68,6 +68,7 @@ class plugin_handler(osv.osv_memory):
doc_dict['res.partner'] = "Partner"
return doc_dict.items()
+ # Can be used where search record was used
def list_document_get(self, cr, uid, model, name):
"""
This function return the result of name_search on the object model
@@ -77,7 +78,7 @@ class plugin_handler(osv.osv_memory):
[(id, 'name')]
"""
return self.pool.get(model).name_search(cr,uid,name)
-
+
def push_message(self, cr, uid, model, email, res_id=0):
"""
@param email: email is a standard RFC2822 email message
@@ -108,8 +109,7 @@ class plugin_handler(osv.osv_memory):
notify = "Mail succefully pushed"
url = self._make_url(cr, uid, res_id, model)
return (model, res_id, url, notify)
-
-
+
def contact_create(self, cr, uid, data, partner_id):
"""
@param data : the data use to create the res.partner.address
@@ -126,25 +126,26 @@ class plugin_handler(osv.osv_memory):
self.pool.get('res.partner.address').create(cr, uid, dictcreate)
url = self._make_url(cr, uid, partner_id, 'res.partner')
return ('res.partner', partner_id, url)
-
-
-
- ##############################
- # #
- # Specific to outlook #
- # #
- ##############################
-
- def attachment_create(self,cr, uid, data):
- """
- @param data : the data use to create the ir.attachment
- [('field_name', value)], field name is required.
- """
- ir_attachment_obj = self.pool.get('ir.attachment')
- attachment_ids = ir_attachment_obj.search(cr, uid, [('res_model', '=', data.get('res_model')), ('res_id', '=', data.get('res_id')), ('datas_fname', '=', data.get('datas_fname'))])
- if attachment_ids:
- return attachment_ids[0]
- else:
- vals = {"res_model": data.get('res_model'), "res_id": data.get('res_id'), "name": data.get('name'), "datas" : data.get('datas'), "datas_fname" : data.get('datas_fname')}
- return ir_attachment_obj.create(cr, uid, vals)
+ # Specific to outlook rfc822 is not available so we split in arguments headerd,body,attachemnts
+ def push_message_outlook(self, cr, uid, model, headers, body_text, body_html, attachments):
+ pass
+ # ----------------------------------------
+ # solution 1
+ # construct a fake rfc822 from the separated arguement
+ #m = email.asdfsadf
+ # use the push_message method
+ #self.push_message(m)
+ # ----------------------------------------
+ # solution 2
+ # use self.pushmessage only with header and body
+ # add attachemnt yourself after
+
+ #ir_attachment_obj = self.pool.get('ir.attachment')
+ #attachment_ids = ir_attachment_obj.search(cr, uid, [('res_model', '=', data.get('res_model')), ('res_id', '=', data.get('res_id')), ('datas_fname', '=', data.get('datas_fname'))])
+ #if attachment_ids:
+ # return attachment_ids[0]
+ #else:
+ # vals = {"res_model": data.get('res_model'), "res_id": data.get('res_id'), "name": data.get('name'), "datas" : data.get('datas'), "datas_fname" : data.get('datas_fname')}
+ # return ir_attachment_obj.create(cr, uid, vals)
+ #return (model, res_id, url, notify)