how to send email when click on the function?
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- Müşteri İlişkileri Yönetimi
- e-Commerce
- Muhasebe
- Envanter
- PoS
- Proje Yönetimi
- MRP
Bu soru işaretlendi
Aneesh,
Odoo is great again for another reason, that is you can always study an existing module like sale/account where the email sending is possible based on button call.
Thanks.
you can use email function inside any function (button function or any function) :
this is an example for button function i used in crm module :
def set_approve(self, cr, uid, ids,context=None):
res_id = self.read(cr, uid, ids, ['boq_item_ids'], context)[0]['id']
email_obj = self.pool.get('email.template')
user_obj = self.pool.get('res.users').browse(cr, uid, uid)
template_ids = email_obj.search(cr, uid, [('name', '=', 'Opportunity approved')])
email = email_obj.browse(cr, uid, template_ids[0])
email_obj.write(cr, uid, template_ids, {'email_from': email.email_from,
'email_to': email.email_to,
'subject': email.subject,
'body_html': email.body_html,
'email_recipients': email.email_recipients})
email_obj.send_mail(cr, uid, template_ids[0], res_id, True, context=context)
stage_id = self.get_stageid(cr, uid, [('state', '=', 'approved')], context=context)
a = fields.datetime.now()
b = self.pool.get('crm.lead').read(cr, uid, ids, context=context)
c = b[0]['date_stage_waiting']
timedelta = 0
if c != 0:
DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S"
a = datetime.datetime.strptime(a, DATETIME_FORMAT)
c = datetime.datetime.strptime(c, DATETIME_FORMAT)
timedelta = a - c
if stage_id:
self.write(cr, uid, ids, {'stage_id': stage_id, 'date_stage_approved': a, 'diff_waiting': timedelta}, context=context)
return True
NB : 1) donot forget to create email template with name as in your function
2) configure your outgoing mail server
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Üye Ol