コンテンツへスキップ
メニュー
この質問にフラグが付けられました
2 返信
1109 ビュー

I want an email to automatically appear in the chatter of a module after it was sent. I create the email by overriding 

def _send_mail(self, answer):

res = super()._send_mail(answer)

email_values = {

"auto_delete": False,

"model": "survey.survey",

"res_id": self.survey_id.id,

}


res.update(email_values)

return res

How can I achieve the desired result? After the email was sent, it doesn't appear in the chatter of the survey. Thanks in advance!

アバター
破棄
最善の回答

Hi,

Please refer to the code:

def _send_mail(self, answer):

        # Call the original send_mail method

        res = super()._send_mail(answer)


        # Create a mail.message to appear in the chatter

        self.message_post(

            body="Email sent to the participant",

            subject="Survey email sent",

            message_type='email',  # can be 'comment' or 'email'

            subtype_id=self.env.ref('mail.mt_note').id,

            email_from=self.env.user.email,  # optional

        )


        return res

message_post automatically links the message to the record (self) in the chatter.


Hope it helps.

アバター
破棄
最善の回答

Hii,

You're overriding _send_mail() and returning res, which may be an email template or dict of values, but you're not actually calling message_post, nor guaranteeing the email is sent with the right linkage to log in the chatter.

Here’s how to ensure the email appears in the chatter of the related survey.survey record:

from odoo import models class YourModel(models.Model): _inherit = 'your.model' def _send_mail(self, answer): res = super()._send_mail(answer) survey = self.survey_id # Prepare email values email_values = { 'auto_delete': False, 'model': 'survey.survey', 'res_id': survey.id, } # If res is a mail.template: if isinstance(res, dict): res.update(email_values) elif hasattr(res, 'write'): res.write(email_values) # Optional: Post a message to chatter manually (if not posted automatically) survey.message_post( body="An email was sent to the user.", message_type="notification", subtype_xmlid="mail.mt_note", ) return res

i hope it is use full

アバター
破棄
関連投稿 返信 ビュー 活動
2
8月 24
1986
3
10月 18
7934
0
12月 16
4309
2
2月 25
3713
2
2月 25
2062