diff options
Diffstat (limited to 'addons/im_livechat/static/src/models')
| -rw-r--r-- | addons/im_livechat/static/src/models/partner/partner.js | 23 | ||||
| -rw-r--r-- | addons/im_livechat/static/src/models/thread/thread.js | 12 |
2 files changed, 35 insertions, 0 deletions
diff --git a/addons/im_livechat/static/src/models/partner/partner.js b/addons/im_livechat/static/src/models/partner/partner.js new file mode 100644 index 00000000000..7392c8d6229 --- /dev/null +++ b/addons/im_livechat/static/src/models/partner/partner.js @@ -0,0 +1,23 @@ +odoo.define('im_livechat/static/src/models/partner/partner.js', function (require) { +'use strict'; + +const { + registerClassPatchModel, +} = require('mail/static/src/model/model_core.js'); + +let nextPublicId = -1; + +registerClassPatchModel('mail.partner', 'im_livechat/static/src/models/partner/partner.js', { + + //---------------------------------------------------------------------- + // Public + //---------------------------------------------------------------------- + + getNextPublicId() { + const id = nextPublicId; + nextPublicId -= 1; + return id; + }, +}); + +}); diff --git a/addons/im_livechat/static/src/models/thread/thread.js b/addons/im_livechat/static/src/models/thread/thread.js index 190a2088066..1ec06246ec7 100644 --- a/addons/im_livechat/static/src/models/thread/thread.js +++ b/addons/im_livechat/static/src/models/thread/thread.js @@ -53,9 +53,11 @@ registerClassPatchModel('mail.thread', 'im_livechat/static/src/models/thread/thr ) ); data2.members.push(['link', partner]); + data2.correspondent = [['link', partner]]; } else { const partnerData = this.env.models['mail.partner'].convertData(data.livechat_visitor); data2.members.push(['insert', partnerData]); + data2.correspondent = [['insert', partnerData]]; } } return data2; @@ -71,6 +73,16 @@ registerInstancePatchModel('mail.thread', 'im_livechat/static/src/models/thread/ /** * @override */ + _computeCorrespondent() { + if (this.channel_type === 'livechat') { + // livechat correspondent never change: always the public member. + return []; + } + return this._super(); + }, + /** + * @override + */ _computeDisplayName() { if (this.channel_type === 'livechat' && this.correspondent) { if (this.correspondent.country) { |
