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

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