Odoo [12]: Как автоматически добавить одного или нескольких подписчиков из выпадающего поля - PullRequest
1 голос
/ 08 октября 2019

Я унаследовал модель crm.lead и создал одно раскрывающееся пользовательское поле, в этом поле отображаются только группы, назначающие пользователей. Теперь я хочу сделать это, когда выбираю пользователей из выпадающего списка, в которые они переходят, и автоматически добавляет их в Подписчики.

Как это сделать. Если вы знаете об этом, пожалуйста, дайте мне знать.

См. Мой код.

.py Файл

estimation_id = fields.Many2many('res.users', default=lambda self:self.env.user, domain=lambda self: [("groups_id", "=", self.env.ref( "estimation.group_user_hide" ).id)], select=True, track_visibility='onchange', string='Estimation Asign To')

1 Ответ

0 голосов
/ 15 октября 2019

У меня есть собственный код добавления подписчиков из выпадающего списка. проблема в том, что я не могу удалить только одну запись из списка FOllowers. Можете ли вы подсказать, где мой код неверен или чего мне не хватает?

    @api.multi
    def write(self, vals):
        res = super(CrmLead, self).write(vals)
        for rec in self:
            if rec.estimation_id:
                partner_ids = []
                for est_rec in rec.estimation_id:
                    if est_rec.partner_id and est_rec.partner_id.email:
                        partner_ids.append(est_rec.partner_id.id)
                rec.message_subscribe(partner_ids, None)
                #message_unsubscribe
                message_partner_ids = rec.message_partner_ids.ids

                est_ids = [est_rec.partner_id.id for est_rec in rec.estimation_id] + [self.env.ref('base.partner_root').id]
                unsub_partners = set(message_partner_ids) - set(est_ids)
                template_obj = self.env['mail.mail']
                template_data = {
                                'subject': 'New Estimation Asign : ',
                                'body_html': "message_body",
                                'email_from': self.env['mail.message']._get_default_from(),
                                'email_to': est_rec.partner_id.email
                            }
                template_id = template_obj.create(template_data)
                template_obj.send(template_id)
                if list(unsub_partners):
                    rec.message_unsubscribe(list(unsub_partners))
        return res
...