30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from odoo import models, fields, api, _
|
|
|
|
|
|
class ChatChannel(models.Model):
|
|
_inherit = 'discuss.channel'
|
|
|
|
ks_dashboard_board_id = fields.Many2one('ks_dashboard_ninja.board')
|
|
ks_dashboard_item_id = fields.Many2one('ks_dashboard_ninja.item')
|
|
|
|
def ks_chat_wizard_channel_id(self, **kwargs):
|
|
item_id = kwargs.get('item_id')
|
|
dashboard_id = kwargs.get('dashboard_id')
|
|
item_name = kwargs.get('item_name')
|
|
dashboard_name = kwargs.get('dashboard_name')
|
|
|
|
channel = self.search([('ks_dashboard_item_id', '=', item_id)], limit=1)
|
|
|
|
if not channel:
|
|
users = self.env['res.users'].search([
|
|
('active', '=', True), ('groups_id', 'in', self.env.ref('base.group_user').id)]).mapped('partner_id.id')
|
|
|
|
channel = self.sudo().create({
|
|
'name': f"{dashboard_name} - {item_name}",
|
|
'ks_dashboard_board_id': dashboard_id,
|
|
'ks_dashboard_item_id': item_id,
|
|
'channel_member_ids': [(0, 0, {'partner_id': partner_id}) for partner_id in users]
|
|
})
|
|
|
|
return channel.id if channel else None
|