###################################################################################
#
#    Copyright (C) 2017 MuK IT GmbH
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU Affero General Public License as
#    published by the Free Software Foundation, either version 3 of the
#    License, or (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU Affero General Public License for more details.
#
#    You should have received a copy of the GNU Affero General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
###################################################################################

import logging

from odoo import api, models

_logger = logging.getLogger(__name__)

class ImBus(models.Model):

    _inherit = 'bus.bus'

    @api.model
    def poll(self, channels, last=0, options=None, force_status=False):
        res = super(ImBus, self).poll(channels, last, options, force_status)
        notifications = []
        for notification in res:
            if notification['channel'] == "notify":
                ids = notification['message']['user_ids']
                del notification['message']['user_ids']
                if not ids:
                    notifications.append(notification)
                elif self.env.user.id in ids:
                    notifications.append(notification)
            else:
                notifications.append(notification)
        return notifications