diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py index 16b10a6c83b..b2f8197917f 100644 --- a/addons/hr_holidays/models/hr_leave.py +++ b/addons/hr_holidays/models/hr_leave.py @@ -293,6 +293,7 @@ class HolidaysRequest(models.Model): tz = self.env.user.tz if self.env.user.tz and not self.request_unit_custom else 'UTC' # custom -> already in UTC self.date_from = timezone(tz).localize(datetime.combine(self.request_date_from, hour_from)).astimezone(UTC).replace(tzinfo=None) self.date_to = timezone(tz).localize(datetime.combine(self.request_date_to, hour_to)).astimezone(UTC).replace(tzinfo=None) + self._onchange_leave_dates() @api.onchange('request_unit_half') def _onchange_request_unit_half(self): diff --git a/addons/hr_presence/data/mail_data.xml b/addons/hr_presence/data/mail_data.xml index d6c1fb3539f..f2ab1ca0579 100644 --- a/addons/hr_presence/data/mail_data.xml +++ b/addons/hr_presence/data/mail_data.xml @@ -3,7 +3,7 @@ Presence: Contact Employee - + Unexpected Absence ${ctx['email_from'] or ''} ${ctx['email_to'] or ''} diff --git a/addons/hr_presence/models/hr_employee.py b/addons/hr_presence/models/hr_employee.py index 4a5dd0b6292..db3d5379843 100644 --- a/addons/hr_presence/models/hr_employee.py +++ b/addons/hr_presence/models/hr_employee.py @@ -95,7 +95,23 @@ class ResCompany(models.Model): "context": {'search_default_group_hr_presence_state': 1}, } + def action_set_present(self): + if not self.env.user.has_group('hr.group_hr_manager'): + raise UserError(_("You don't have the right to do this. Please contact an Administrator.")) + self.write({'hr_presence_state': 'present'}) + + def action_open_leave_request(self): + self.ensure_one() + return { + "type": "ir.actions.act_window", + "res_model": "hr.leave", + "views": [[False, "form"]], + "view_mode": 'form', + "context": {'default_employee_id': self.id}, + } + def action_send_sms(self): + self.ensure_one() if not self.env.user.has_group('hr.group_hr_manager'): raise UserError(_("You don't have the right to do this. Please contact an Administrator.")) if not self.mobile_phone: @@ -108,7 +124,7 @@ Do not hesitate to contact your manager or the human resource department.""") "res_model": "sms.send_sms", "view_mode": 'form', "context": { - 'active_id': self.env.context.get('active_id'), + 'active_id': self.id, 'default_message': body, 'default_recipients': self.mobile_phone, }, @@ -117,22 +133,23 @@ Do not hesitate to contact your manager or the human resource department.""") } def action_send_mail(self): + self.ensure_one() if not self.env.user.has_group('hr.group_hr_manager'): raise UserError(_("You don't have the right to do this. Please contact an Administrator.")) - employee = self.env['hr.employee'].sudo().browse(self.env.context.get('active_id')) - if not employee.work_email: + if not self.work_email: raise UserError(_("There is no professional email address for this employee.")) template = self.env.ref('hr_presence.mail_template_presence', False) compose_form = self.env.ref('mail.email_compose_message_wizard_form', False) ctx = dict( - default_model='hr.employee', - default_res_id=employee.id, + default_model="hr.employee", + default_res_id=self.id, default_use_template=bool(template), default_template_id=template.id, default_composition_mode='comment', + default_is_log=True, custom_layout='mail.mail_notification_light', email_from=self.env.user.email, - email_to=employee.work_email, + email_to=self.work_email, ) return { 'name': _('Compose Email'), diff --git a/addons/hr_presence/views/hr_employee_views.xml b/addons/hr_presence/views/hr_employee_views.xml index 3cf722f0841..75d468ded22 100644 --- a/addons/hr_presence/views/hr_employee_views.xml +++ b/addons/hr_presence/views/hr_employee_views.xml @@ -22,9 +22,11 @@
- - - + + + + +