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

Я создал одно настраиваемое поле many2many с именем name_id в модуле crm.lead. когда мы выбираем пользователей из параметра rating_id, эти выбранные пользователи добавляются в список «Добавить подписчиков», а также отправляют почту выбранным пользователям. Теперь моя проблема в том, что когда я обновляю записи, предположим, что я в поле оценка_идентификатора уже выбрал двух пользователей, когда вы удаляете одного пользователя и затем сохраняете запись, в это время почта отправляется оставшемуся пользователю. но мне не нужно отправлять почту существующему пользователю. Если вы знаете, как решить эту проблему, пожалуйста, дайте мне знать.

@api.model def create (self, vals): lead_res = super (CrmLead, self) .create (vals) для rec в lead_res: если rec.esvaluation_id: partner_ids = [] для est_rec в rec. оценка_идентификатора: если est_rec.partner_id и est_rec.partner_id.email: имя_пользователя = self.env.user.name_get () [0] [1] partner_ids.append (est_rec.partner_id.id) template_obj = self.env ['mail.mail'] template_data = {' subject ':' Новый оценочный Asign: ',' body_html ': "Hello," + user_name + "пригласил вас следовать документу Lead / Opportunity:" + rec.name + "", "email_from':self.env ['mail.message'] ._ get_default_from (), 'email_to': est_rec.partner_id.email} template_id = template_obj.create (template_data)return lead_res

@api.multi def write (self, vals): res = super (CrmLead, self) .write (vals) для rec в self: если rec.estima_id: partner_ids = [] для est_rec вrec.esvaluation_id: если est_rec.partner_id и est_rec.partner_id.email: user_name = self.env.user.name_get () [0] [1] partner_ids.append (est_rec.partner_id.id) template_obj = self.env ['mail.mail'] template_data = {'subject': 'НовыйОценка Asign: ',' body_html ': "Hello," + user_name + "приглашает вас следовать документу Lead / Opportunity:" + rec.name + "",' email_from ': self.env [' mail.message ']. _get_default_from (), 'email_to': est_rec.partner_id.email} template_id = template_obj.create (template_data) print ('=================== Для отправки ================== ', est_rec.partner_id.email) template_obj.send (template_id) rec.message_subscribe (partner_ids, None) #message_unsubscribe message_partner_ids = rec.message_partner_ids.ids est_ids = [est_rec. partner_id.id для est_rec в rec.esvaluation_id] + [self.env.ref ('base.partner_root'). id] unsub_partners = set (message_partner_ids) - установить (est_ids)

                if list(unsub_partners):
                    rec.message_unsubscribe(list(unsub_partners))
    else:
        print("+++++============= Else Part =============+++++")
return res
...