'Add partners to the records followers.'

@api.multi
def message_subscribe(self, partner_ids=None, channel_ids=None, subtype_ids=None, force=True):

    if ((not partner_ids) and (not channel_ids)):
        return True
    if (partner_ids is None):
        partner_ids = []
    if (channel_ids is None):
        channel_ids = []
    if ((not channel_ids) and partner_ids and (set(partner_ids) == set([self.env.user.partner_id.id]))):
        try:
            self.check_access_rights('read')
            self.check_access_rule('read')
        except exceptions.AccessError:
            return False
    else:
        self.check_access_rights('write')
        self.check_access_rule('write')
    partner_data = dict(((pid, subtype_ids) for pid in partner_ids))
    channel_data = dict(((cid, subtype_ids) for cid in channel_ids))
    (gen, part) = self.env['mail.followers']._add_follower_command(self._name, self.ids, partner_data, channel_data, force=force)
    self.sudo().write({'message_follower_ids': gen})
    for record in self.filtered((lambda self: (self.id in part))):
        record.write({'message_follower_ids': part[record.id]})
    self.invalidate_cache()
    return True
