Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
11349 Lượt xem

greetings all,

I need to send email notification to ship_owner (res.partner),when any field value is changed

This is my code fragment( .py file)

 ship_owner = fields.Many2one('res.partner', string="Ship Owner", ondelete='set null')
hull_number = fields.Char(string="Hull Number", size=64, track_visibility='onchange')   
engine_number = fields.Char(string="Engine Number", size=64, track_visibility='onchange', )   
name = fields.Char(string="Vessel Name", size=64, track_visibility='onchange')
.xml
<div class="oe_chatter">
    <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
    <field name="message_ids" widget="mail_thread"/>
this creates a log i need to send email at the same time when this log is created

 

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hello 

you have added chatter it just creates a log but for sending an email you have write method also you have create email template as well.

below is the code which i have write to send an email when picking validates/done with template design you can create your own template design

@api.multi 

def make_pickings_auto_done(self):

        emails = []

        email_to = ''

        mail_mail = self.env['mail.mail']

        for pick in self:

            partner_ids = pick.message_follower_ids and \

                          pick.message_follower_ids.ids or []

            for partner in self.env['mail.followers'].browse(partner_ids):

                emails.append(partner.partner_id.email)

            product_dic = {}

            for picking_line in pick.pack_operation_product_ids:

                product_dic.update({str(picking_line.product_id.name) :

                                        picking_line.qty_done})

        for email in emails:

            email_to = email_to and email_to + ',' + email or email_to + email

        do = pick.name and pick.name or ""

        body_html = '''

                            <div>

                               <p>

                        Hello,

                        <br/><br/>

                            Delivery order ''' + do + ''' is move to done

                            state.

                            <br/><br/>

                            The details of shipping is as below.

                            <br/><br/>

                        </p>

                        <table border="1" cellpadding="5" cellspacing="1">

                        <tbody>

                            <tr>

                                <th>Delivery Order</th>

                                <th>Customer</th>

                                <th>Product</th>

                                <th>Qty</th>

                            </tr>'''

        for nm,qty in product_dic.iteritems():

            body_html += '''<tr>

                                <td>''' + do + '''</td>

                                <td>''' + pick.partner_id.name + '''</td>

                                <td>''' + nm + '''</td>

                                <td>''' + str(qty) +'''</td>

                            </tr>'''

        body_html += '''</tbody>

                        </table>'''

        mail_values = {

            'email_from': self.company_id.partner_id.email or

                          'noreply@localhost',

            'email_to': email_to,

            'subject': 'Delivery order ',

            'body_html': body_html,

            'state': 'outgoing',

            'message_type': 'email',

        }

        mail_id = mail_mail.create(mail_values)

        if mail_id:

            for mail in mail_id:

                # To avoid sending mail/notification multiple times

                return mail.send()

        else:

            return True


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Yes you can send email on the change of fields in odoo. I have a code that sends email on button click you can modify the method of button click to onchange method and that it. To get complete code and description read: http://learnopenerp.blogspot.com/2017/08/odoo-how-to-send-email-on-button-click.html

Ảnh đại diện
Huỷ bỏ

Odoo how to send email on button click

just copy the method of sending email and use it in onchange method.

http://learnopenerp.blogspot.com/2017/08/odoo-how-to-send-email-on-button-click.html

Thanks

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 8 23
2396
10
thg 9 21
54410
0
thg 3 18
3818
3
thg 3 15
8082
5
thg 7 25
2405