res_partner.py
1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# coding=utf-8
import logging
from openerp import models, fields, api
_logger = logging.getLogger(__name__)
class ResPartner(models.Model):
_inherit = 'res.partner'
wecorp_notify = fields.Boolean('接收企业微信通知', default=True)
@api.multi
def _notify(self, message, force_send=False, send_after_commit=True, user_signature=True):
res = super(ResPartner, self)._notify(message, force_send, send_after_commit, user_signature)
self._notify_by_weodoo(message)
return res
@api.multi
def _notify_by_weodoo(self, message):
_logger.info('>>> _notify_by_weodoo: %s'%str(message))
base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
for partner in self:
if partner.get_corp_key() and partner.wecorp_notify and partner.im_status!='1online':
_logger.info('>>> notify by weodoo: %s'%str((message,partner)))
_body = message.body.replace('<p>','').replace('</p>','')
_content = u'%s\n%s'%(message.subject, _body) if message.subject else _body
_head = u'%s 发送到 %s'%(message.author_id.name, message.record_name)
try:
message_content = u'%s:%s'%(_head,_content)
partner.send_corp_msg({"mtype": "card", "title": _head, 'description': _content, 'url': '%s/mail/view?message_id=%s'%(base_url, message.id)})
except:
import traceback;traceback.print_exc()
def send_corp_msg(self, msg):
from ..rpc import send_msg
send_msg(self.env, [self.user_ids[0].oauth_uid], msg)
def get_corp_key(self):
if self.user_ids:
return self.user_ids[0].oauth_uid