Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
2 Відповіді
6634 Переглядів

Can I handle Employees leaves requests directly from the mail on Odoo 10? So HR managers and Officers can refuse or validate directly from the mail.

Аватар
Відмінити
Автор Найкраща відповідь

Yes we can, Odoo 10 can handle Leave requests directly from the mail. for that, we can find a function named

_notification_recipients  in the hr_holidays model.


@api.multi
def _notification_recipients(self, message, groups):
""" Handle HR users and officers recipients that can validate or refuse holidays
directly from email. """
groups = super(Holidays, self)._notification_recipients(message, groups)

self.ensure_one()
hr_actions = []
if self.state == 'confirm':
app_action = self._notification_link_helper('controller', controller='/hr_holidays/validate')
hr_actions += [{'url': app_action, 'title': _('Approve')}]
if self.state in ['confirm', 'validate', 'validate1']:
ref_action = self._notification_link_helper('controller', controller='/hr_holidays/refuse')
hr_actions += [{'url': ref_action, 'title': _('Refuse')}]

new_group = (
'group_hr_holidays_user', lambda partner: bool(partner.user_ids) and any(user.has_group('hr_holidays.group_hr_holidays_user') for user in partner.user_ids), {
'actions': hr_actions,
})

return [new_group] + groups

There is also controller written to accept the validation/refusal through the link.

@http.route('/hr_holidays/validate', type='http', auth='user', methods=['GET'])
def hr_holidays_validate(self, res_id, token):
comparison, record, redirect = MailController._check_token_and_record_or_redirect('hr.holidays', int(res_id), token)
if comparison and record:
try:
record.action_approve()
except Exception:
return MailController._redirect_to_messaging()
return redirect

@http.route('/hr_holidays/refuse', type='http', auth='user', methods=['GET'])
def hr_holidays_refuse(self, res_id, token):
comparison, record, redirect = MailController._check_token_and_record_or_redirect('hr.holidays', int(res_id), token)
if comparison and record:
try:
record.action_refuse()
except Exception:
return MailController._redirect_to_messaging()
return redirect


Thanks.



Аватар
Відмінити

What about Odoo11???

Автор

Same

Найкраща відповідь

_notify_get_groups on odoo13

Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
2
лип. 25
4951
2
груд. 24
7972
2
лист. 24
28784
2
трав. 24
7655
3
бер. 24
7105