跳至内容
菜单
此问题已终结
1 回复
3685 查看

For example, I want company employees to receive notifications on their page and this should be done at an automatically defined time (e.g. at 2pm today)

形象
丢弃
最佳答案

Hi,

You can use Scheduled actions from settings menu for this purpose.

In your Code

XML

Inside the data directory create an xml file for notification

< odoo>
< data noupdate="1">
< record id="user_notification_scheduler" model="ir.cron">
< field name="name">Employee notification
< field name="model_id" ref="model_hr_employee"/>
< field name="type">ir.actions.server
< field name="state">code
< field name="user_id" ref="base.user_root"/>
< field name="code">model.employee_notification()
< field name="interval_number">1
< field name="interval_type">days
< field name="numbercall">-1
< /record>
< /data>
< /odoo>
This will create scheduler with name 'Employee notification'.You can see that in scheduled actions from settings menu.You can set the Next Execution Date and time from there by manually or it will execute automatically according to the time period we given.It may be 1 day,1 month..etc.Here it is 1 day as you can see from interval_number.

Python

Inherit the model 'hr.employee' and define the employee_notification() function mentioned in the above xml code

class HrEmployeeInherit(models.Model):
_inherit = 'hr.employee'

def employee_notification(self):
employees = self.env['hr.employee'].search([])
user = self.env["res.users"].search([('id', '=', self._uid)])
for rec in employees:
email_values = {
'subject': 'Notification for Employees',
'email_from': user.email,
'email_to': rec.work_email,
'body_html': "< div>Dear %s,\n"
................
"< br/>Kindly Regards,"
"< br/>
%s" % (rec.name, user.name),
'auto_delete': True,
}
mail = self.env['mail.mail'].sudo().create(email_values)
mail.send(raise_exception=False)
Regards
形象
丢弃
相关帖文 回复 查看 活动
2
2月 24
15603
1
12月 22
5026
2
12月 22
14524
2
6月 22
6395
2
6月 22
4762