From 4fd15ea5f55ef6b7d191364a781764c0b15045bb Mon Sep 17 00:00:00 2001 From: odex Date: Thu, 18 Jul 2024 18:08:47 +0300 Subject: [PATCH] add task permation and fix holiday --- .../models/hr_personal_permission.py | 48 ++++++------- .../views/hr_personal_permission.xml | 69 +++++++++---------- 2 files changed, 55 insertions(+), 62 deletions(-) diff --git a/odex25_hr/employee_requests/models/hr_personal_permission.py b/odex25_hr/employee_requests/models/hr_personal_permission.py index b30e36e96..0de7bccb2 100644 --- a/odex25_hr/employee_requests/models/hr_personal_permission.py +++ b/odex25_hr/employee_requests/models/hr_personal_permission.py @@ -36,34 +36,34 @@ class HrPersonalPermission(models.Model): state = fields.Selection([('draft', _('Draft')), ('send', _('Waiting Direct Manager')), ('direct_manager', _('Wait HR Department')),('approve', _('Approved')), ('refused', _('Refused'))], default="draft", tracking=True) type_exit = fields.Selection([('early_exit', _('Early Exit')), ('late entry', _('Late Entry')), ('during work', _('During Work'))],default="early_exit") company_id = fields.Many2one('res.company',string="Company", default=lambda self: self.env.user.company_id) - time_permission_from = fields.Float(string="Permission From (24h format)", help="Time in 24-hour format (e.g., 13.5 for 1:30 PM)") - time_permission_to = fields.Float(string="Permission To (24h format)", help="Time in 24-hour format (e.g., 15.75 for 3:45 PM)") + # time_permission_from = fields.Float(string="Permission From (24h format)", help="Time in 24-hour format (e.g., 13.5 for 1:30 PM)") + # time_permission_to = fields.Float(string="Permission To (24h format)", help="Time in 24-hour format (e.g., 15.75 for 3:45 PM)") - @api.onchange('time_permission_from', 'time_permission_to', 'date') - def _onchange_time(self): - for record in self: - if (not record.time_permission_from < record.time_permission_to): - record.time_permission_to = record.time_permission_from + 0.5 - record.time_permission_from = record.time_permission_from - if record.date: - date_from = self._combine_date_and_time(record.date, record.time_permission_from) - record.date_from = date_from + # @api.onchange('time_permission_from', 'time_permission_to', 'date') + # def _onchange_time(self): + # for record in self: + # if (not record.time_permission_from < record.time_permission_to): + # record.time_permission_to = record.time_permission_from + 0.5 + # record.time_permission_from = record.time_permission_from + # if record.date: + # date_from = self._combine_date_and_time(record.date, record.time_permission_from) + # record.date_from = date_from - if record.date: - date_to = self._combine_date_and_time(record.date, record.time_permission_to) - record.date_to = date_to + # if record.date: + # date_to = self._combine_date_and_time(record.date, record.time_permission_to) + # record.date_to = date_to - def _combine_date_and_time(self, date, time_float): - """ Combine a date and a float time (e.g. 13.5) into a datetime object. """ - hours = int(time_float) - minutes = int((time_float - hours) * 60) - import pytz - date_time = datetime.combine(date, datetime.min.time()) + timedelta(hours=hours, minutes=minutes) - # if time_float > 0: - date_time = fields.Datetime.to_string(pytz.timezone(self.env.context['tz']).localize(fields.Datetime.from_string(date_time), is_dst=None).astimezone(pytz.utc)) - # date_time = fields.Datetime.to_string(pytz.timezone(self.env.context['tz']).localize(fields.Datetime.from_string(date_time), is_dst=None).astimezone(pytz.utc) + timedelta(hours=24)) - return date_time + # def _combine_date_and_time(self, date, time_float): + # """ Combine a date and a float time (e.g. 13.5) into a datetime object. """ + # hours = int(time_float) + # minutes = int((time_float - hours) * 60) + # import pytz + # date_time = datetime.combine(date, datetime.min.time()) + timedelta(hours=hours, minutes=minutes) + # # if time_float > 0: + # date_time = fields.Datetime.to_string(pytz.timezone(self.env.context['tz']).localize(fields.Datetime.from_string(date_time), is_dst=None).astimezone(pytz.utc)) + # # date_time = fields.Datetime.to_string(pytz.timezone(self.env.context['tz']).localize(fields.Datetime.from_string(date_time), is_dst=None).astimezone(pytz.utc) + timedelta(hours=24)) + # return date_time @api.model diff --git a/odex25_hr/employee_requests/views/hr_personal_permission.xml b/odex25_hr/employee_requests/views/hr_personal_permission.xml index 0d5901d4e..77400b18c 100644 --- a/odex25_hr/employee_requests/views/hr_personal_permission.xml +++ b/odex25_hr/employee_requests/views/hr_personal_permission.xml @@ -7,7 +7,7 @@ tree,form,calendar - + hr.personal.permission.calendar hr.personal.permission @@ -25,58 +25,54 @@
-
- - - + + + + - + - - - + + + - +