From ac1ec35af0fe9ef92f7f70fa5ffcb94a689d30fb Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Mon, 18 Feb 2019 13:05:05 +0000 Subject: [PATCH] [FIX] hr_payroll: Convert a method into a helper function --- addons/hr_payroll/models/resource.py | 6 +++--- addons/hr_payroll/views/hr_benefit_views.xml | 5 ++--- addons/resource/models/resource.py | 5 +++-- addons/resource/models/resource_mixin.py | 22 ++++++++++---------- 4 files changed, 19 insertions(+), 19 deletions(-) diff --git a/addons/hr_payroll/models/resource.py b/addons/hr_payroll/models/resource.py index 25985687c11..b989eb4ab4a 100644 --- a/addons/hr_payroll/models/resource.py +++ b/addons/hr_payroll/models/resource.py @@ -2,7 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import models, fields, api - +from odoo.addons.resource.models.resource_mixin import timezone_datetime class ResourceCalendar(models.Model): _inherit = 'resource.calendar' @@ -61,8 +61,8 @@ class ResourceMixin(models.AbstractModel): domain = [('benefit_type_id', 'in', benefit_type_ids)] # naive datetimes are made explicit in UTC - from_datetime = self._timezone_datetime(from_datetime) - to_datetime = self._timezone_datetime(to_datetime) + from_datetime = timezone_datetime(from_datetime) + to_datetime = timezone_datetime(to_datetime) day_total = self._get_day_total(from_datetime, to_datetime, calendar, resource) # actual hours per day diff --git a/addons/hr_payroll/views/hr_benefit_views.xml b/addons/hr_payroll/views/hr_benefit_views.xml index 6aa46656a4c..12fc3b40729 100644 --- a/addons/hr_payroll/views/hr_benefit_views.xml +++ b/addons/hr_payroll/views/hr_benefit_views.xml @@ -45,8 +45,7 @@ if records: - - + @@ -67,7 +66,7 @@ if records:
-
diff --git a/addons/resource/models/resource.py b/addons/resource/models/resource.py index fd0e8260fc5..53bdf87ce09 100644 --- a/addons/resource/models/resource.py +++ b/addons/resource/models/resource.py @@ -11,6 +11,7 @@ from pytz import timezone, utc from odoo import api, fields, models, _ from odoo.addons.base.models.res_partner import _tz_get from odoo.exceptions import ValidationError +from odoo.osv import expression from odoo.tools.float_utils import float_round # Default hour per day value. The one should @@ -211,10 +212,10 @@ class ResourceCalendar(models.Model): resource_ids = [resource.id, False] if resource else [False] domain = domain if domain is not None else [] - domain = domain + [ + domain = expression.AND([domain, [ ('calendar_id', '=', self.id), ('resource_id', 'in', resource_ids), - ] + ]]) # express all dates and times in the resource's timezone tz = timezone((resource or self).tz) diff --git a/addons/resource/models/resource_mixin.py b/addons/resource/models/resource_mixin.py index 68541f891c0..f1dc84564da 100644 --- a/addons/resource/models/resource_mixin.py +++ b/addons/resource/models/resource_mixin.py @@ -12,6 +12,12 @@ from odoo.tools import float_utils ROUNDING_FACTOR = 16 +def timezone_datetime(time): + if not time.tzinfo: + time = time.replace(tzinfo=utc) + return time + + class ResourceMixin(models.AbstractModel): _name = "resource.mixin" _description = 'Resource Mixin' @@ -75,7 +81,7 @@ class ResourceMixin(models.AbstractModel): def _get_day_total(self, from_datetime, to_datetime, calendar, resource): """ - @return dict with hours of attendance in each day between `from_datetime` and `to_datetime` + :return: dict with hours of attendance in each day between `from_datetime` and `to_datetime` """ # total hours per day: retrieve attendances with one extra day margin, @@ -88,12 +94,6 @@ class ResourceMixin(models.AbstractModel): day_total[start.date()] += (stop - start).total_seconds() / 3600 return day_total - def _timezone_datetime(self, time): - if not time.tzinfo: - time = time.replace(tzinfo=utc) - return time - - def _get_work_days_data(self, from_datetime, to_datetime, compute_leaves=True, calendar=None, domain=None): """ By default the resource calendar is used, but it can be @@ -109,8 +109,8 @@ class ResourceMixin(models.AbstractModel): calendar = calendar or self.resource_calendar_id # naive datetimes are made explicit in UTC - from_datetime = self._timezone_datetime(from_datetime) - to_datetime = self._timezone_datetime(to_datetime) + from_datetime = timezone_datetime(from_datetime) + to_datetime = timezone_datetime(to_datetime) day_total = self._get_day_total(from_datetime, to_datetime, calendar, resource) @@ -137,8 +137,8 @@ class ResourceMixin(models.AbstractModel): calendar = calendar or self.resource_calendar_id # naive datetimes are made explicit in UTC - from_datetime = self._timezone_datetime(from_datetime) - to_datetime = self._timezone_datetime(to_datetime) + from_datetime = timezone_datetime(from_datetime) + to_datetime = timezone_datetime(to_datetime) day_total = self._get_day_total(from_datetime, to_datetime, calendar, resource)