50 lines
2.2 KiB
Python
50 lines
2.2 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
from odoo import fields, models, api
|
||
|
|
||
|
|
||
|
class Users(models.Model):
|
||
|
""" Update of res.users class
|
||
|
- add a preference about username for livechat purpose
|
||
|
"""
|
||
|
_inherit = 'res.users'
|
||
|
|
||
|
livechat_username = fields.Char(string='Livechat Username', compute='_compute_livechat_username', inverse='_inverse_livechat_username', store=False)
|
||
|
livechat_lang_ids = fields.Many2many('res.lang', string='Livechat Languages', compute='_compute_livechat_lang_ids', inverse='_inverse_livechat_lang_ids', store=False)
|
||
|
has_access_livechat = fields.Boolean(compute='_compute_has_access_livechat', string='Has access to Livechat', store=False, readonly=True)
|
||
|
|
||
|
@property
|
||
|
def SELF_READABLE_FIELDS(self):
|
||
|
return super().SELF_READABLE_FIELDS + ['livechat_username', 'livechat_lang_ids', 'has_access_livechat']
|
||
|
|
||
|
@property
|
||
|
def SELF_WRITEABLE_FIELDS(self):
|
||
|
return super().SELF_WRITEABLE_FIELDS + ['livechat_username', 'livechat_lang_ids']
|
||
|
|
||
|
@api.depends('res_users_settings_id.livechat_username')
|
||
|
def _compute_livechat_username(self):
|
||
|
for user in self:
|
||
|
user.livechat_username = user.res_users_settings_id.livechat_username
|
||
|
|
||
|
def _inverse_livechat_username(self):
|
||
|
for user in self:
|
||
|
if not user.res_users_settings_id:
|
||
|
self.env['res.users.settings']._find_or_create_for_user(user)
|
||
|
user.res_users_settings_id.livechat_username = user.livechat_username
|
||
|
|
||
|
@api.depends('res_users_settings_id.livechat_lang_ids')
|
||
|
def _compute_livechat_lang_ids(self):
|
||
|
for user in self:
|
||
|
user.livechat_lang_ids = user.res_users_settings_id.livechat_lang_ids
|
||
|
|
||
|
def _inverse_livechat_lang_ids(self):
|
||
|
for user in self:
|
||
|
if not user.res_users_settings_id:
|
||
|
self.env['res.users.settings']._find_or_create_for_user(user)
|
||
|
user.res_users_settings_id.livechat_lang_ids = user.livechat_lang_ids
|
||
|
|
||
|
def _compute_has_access_livechat(self):
|
||
|
for user in self:
|
||
|
user.has_access_livechat = user.has_group('im_livechat.im_livechat_group_user')
|