summaryrefslogtreecommitdiff
path: root/addons/im_livechat/models/res_partner.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/im_livechat/models/res_partner.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/im_livechat/models/res_partner.py')
-rw-r--r--addons/im_livechat/models/res_partner.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/addons/im_livechat/models/res_partner.py b/addons/im_livechat/models/res_partner.py
new file mode 100644
index 00000000..4359b772
--- /dev/null
+++ b/addons/im_livechat/models/res_partner.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import models, api
+
+
+class Partners(models.Model):
+ """ Update of res.partners class
+ - override name_get to take into account the livechat username
+ """
+ _inherit = 'res.partner'
+
+ def name_get(self):
+ if self.env.context.get('im_livechat_use_username'):
+ # process the ones with livechat username
+ users_with_livechatname = self.env['res.users'].search([('partner_id', 'in', self.ids), ('livechat_username', '!=', False)])
+ map_with_livechatname = {}
+ for user in users_with_livechatname:
+ map_with_livechatname[user.partner_id.id] = user.livechat_username
+
+ # process the ones without livecaht username
+ partner_without_livechatname = self - users_with_livechatname.mapped('partner_id')
+ no_livechatname_name_get = super(Partners, partner_without_livechatname).name_get()
+ map_without_livechatname = dict(no_livechatname_name_get)
+
+ # restore order
+ result = []
+ for partner in self:
+ name = map_with_livechatname.get(partner.id)
+ if not name:
+ name = map_without_livechatname.get(partner.id)
+ result.append((partner.id, name))
+ else:
+ result = super(Partners, self).name_get()
+ return result