Reputation: 666
I have been trying with sending mails whenever there is a leave request/approval/rejection in Leave request and I have been following the steps in the following link - https://www.odoo.com/forum/help-1/question/openerp-7-sending-email-to-manager-when-employee-applies-a-leave-7362
By following the above steps, messages do appear in Odoo Inbox but I am not able to get the mail delivered to mail client like thunderbird
Anyone kindly can give an opinion ?
Upvotes: 1
Views: 612
Reputation: 96
Here is the code that you want,
Code for leave request:
def create(self, cr, uid, values, context=None):
res = super(hr_holidays, self).create(cr, uid, values, context=context)
template = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_holidays_aspire', 'leave_request')
mail_id = self.pool.get('email.template').send_mail(cr, uid, template.id, res , force_send=True)
return res
Code for leave approve:
def holidays_validate(self, cr, uid, ids, context=None):
compose_ctx = dict(context,active_ids=ids)
search_domain = [('name', '=', 'Leave Approved')]
template_id = self.pool['email.template'].search(cr, uid, search_domain, context=context)[0]
compose_id = self.pool['mail.compose.message'].create(
cr, uid, {
'model': self._name,
'composition_mode': 'mass_mail',
'template_id': template_id,
'post': True,
'notify': True,
}, context=compose_ctx)
self.pool['mail.compose.message'].write(
cr, uid, [compose_id],
self.pool['mail.compose.message'].onchange_template_id(
cr, uid, [compose_id],
template_id, 'mass_mail', self._name, False,
context=compose_ctx)['value'],
context=compose_ctx)
self.pool['mail.compose.message'].send_mail(cr, uid, [compose_id], context=compose_ctx)
return True
Code for leave refuse:
def holidays_refuse(self, cr, uid, ids, context=None):
compose_ctx = dict(context,active_ids=ids)
search_domain = [('name', '=', 'Leave Refused')]
template_id = self.pool['email.template'].search(cr, uid, search_domain, context=context)[0]
compose_id = self.pool['mail.compose.message'].create(
cr, uid, {
'model': self._name,
'composition_mode': 'mass_mail',
'template_id': template_id,
'post': True,
'notify': True,
}, context=compose_ctx)
self.pool['mail.compose.message'].write(
cr, uid, [compose_id],
self.pool['mail.compose.message'].onchange_template_id(
cr, uid, [compose_id],
template_id, 'mass_mail', self._name, False,
context=compose_ctx)['value'],
context=compose_ctx)
self.pool['mail.compose.message'].send_mail(cr, uid, [compose_id], context=compose_ctx)
return super(hr_holidays, self).holidays_refuse(cr, uid, ids, context=context)
Here is the three different template for Leave request,approve and refuse respectively.
<!-- Templates for requesting leave -->
<record id="leave_request" model="email.template">
<field name="name">Leave Request</field>
<field name="subject">Leave Application from ${object.employee_id.name} [${object.employee_id.employee_no}].</field>
<field name="email_from">${object.employee_id.work_email}</field>
<field name="email_to">${object.employee_id.parent_id.work_email}</field>
<field name="model_id" ref="model_hr_holidays"/>
<field name="user_signature" eval="0"/>
<field name="body_html"><![CDATA[<p>Hi,</p>
<p> ${object.employee_id.name} [${object.employee_id.employee_no}] has applied for a leave application.</p><br/>
<p>Following are the applied leave details: </p>
<p>Leave type: ${object.holiday_status_id.name}</p>
<p>From Date: ${object.date_from}</p>
<p>To Date: ${object.date_to}</p>
<p>Number of days: ${object.number_of_days_temp}</p>
<p>Reason: ${object.name}</p>
<p>From Session: ${object.from_session}</p>
<p>To Session: ${object.to_session}</p>
<br/><br/>
<p>Regards, ${object.employee_id.name}</p>
]]></field>
</record>
<!-- Templates for approving leave -->
<record id="leave_approve" model="email.template">
<field name="name">Leave Approved</field>
<field name="subject">Your Leave Application has been Accepted.</field>
<field name="email_from">${object.employee_id.parent_id.work_email}</field>
<field name="email_to">${object.employee_id.work_email}</field>
<field name="model_id" ref="model_hr_holidays"/>
<field name="user_signature" eval="0"/>
<field name="body_html"><![CDATA[<p>Hi ${object.employee_id.name} [${object.employee_id.employee_no}], </p>
<p>Your leave application has been accepted.</p><br/>
<p>Leave type: ${object.holiday_status_id.name}</p>
<p>From Date: ${object.date_from}</p>
<p>To Date: ${object.date_to}</p>
<p>Number of days: ${object.number_of_days_temp}</p>
<p>Reason: ${object.name}</p>
<p>From Session: ${object.from_session}</p>
<p>To Session: ${object.to_session}</p>
<br/><br/>
<p>Regards, ${object.employee_id.parent_id.name}</p>
]]></field>
</record>
<!-- Templates for refusing leave -->
<record id="leave_refuse" model="email.template">
<field name="name">Leave Refused</field>
<field name="subject">Your Leave Application has been Refused.</field>
<field name="email_from">${object.employee_id.parent_id.work_email}</field>
<field name="email_to">${object.employee_id.work_email}</field>
<field name="model_id" ref="model_hr_holidays"/>
<field name="user_signature" eval="0"/>
<field name="body_html"><![CDATA[<p>Hi ${object.employee_id.name} [${object.employee_id.employee_no}], </p>
<p>Your leave application has been refused.</p><br/>
<p>Leave type: ${object.holiday_status_id.name}</p>
<p>From Date: ${object.date_from}</p>
<p>To Date: ${object.date_to}</p>
<p>Number of days: ${object.number_of_days_temp}</p>
<p>Reason: ${object.name}</p>
<p>From Session: ${object.from_session}</p>
<p>To Session: ${object.to_session}</p>
<br/><br/>
<p>Regards, ${object.employee_id.parent_id.name}</p>
]]></field>
</record>
Cheers !!!
Upvotes: 1